2013-04-08 2 views
-1
private void cmd_nextActionPerformed(java.awt.event.ActionEvent evt) {  

    pst=conn.prepareStatement("select * from questions where subject= ?"); 
      pst.setString(1, "websites"); 
      rs=pst.executeQuery(); 
    while(rs.next()) 
      { 

       qs=rs.getString("question"); 
       option1=rs.getString("option1"); 
       option2=rs.getString("option2"); 
       option3=rs.getString("option3"); 
       txt_quest.setText(qs); 
       jcb_opt1.setText(option1); 
       jcb_opt2.setText(option2); 
       jcb_opt3.setText(option3); 

     } 
    catch(Exception ex) 
    { 
     JOptionPane.showMessageDialog(null, ex); 
    } 
      } 

Я хочу получить следующую строку из таблицы при нажатии кнопки next и предыдущей строки при нажатии кнопки previous. Есть ли простой способ сделать это ...?Как отображать следующие и предыдущие записи при нажатии на следующую и предыдущую кнопку на Java?

+0

Похоже, вы хотите использовать 'CardLayout'. – mre

+0

Лучше всего выгрузить все строки в структуру данных, такую ​​как список. Затем вы сохраняете индекс текущей опции. Когда вы нажмете дальше, увеличьте индекс. Когда вы нажимаете предыдущий, уменьшайте индекс. Всегда указывайте опцию в текущем индексе. –

+0

can u plz дайте мне демо –

ответ

1

Вы не должны «выберите * из вопросов» в методе, где вы просто хотите получить rs.next(). Если вы хотите получить rs.previous(), вы бы снова «выбрали»? Поместите свой выбор в начале вашей программы.

Есть три случая, которые необходимо учитывать для хорошо спроектированной cmd_nextActionPerformed:

  1. Ваш DB-таблица пуста или имеет только один вход. В этом случае следующая кнопка должна быть отключена, так как следующей записи нет.

  2. У вас есть следующая запись. Получите данные и обновите JTextFields. Следующая кнопка должна быть включена.

  3. Вы находитесь в конце. После проверки rs.next() и если rs.isAfterLast() возвращает true, вам нужно перейти к rs.last() и остаться там. Следующая кнопка должна быть отключена.

Хорошая новость заключается в том, что cmd_previousActionPerformed симметрична.

+0

Может ли сказать, как использовать приращение в строках, чтобы автоматически получить следующую строку ...? –

+0

rs.next() делает это автоматически. Проверьте 3 аспекта относительно местоположения и размера вашего результирующего набора. –

0

на следующий,

rs.next() 

предыдущего,

rs.previous(); 
Смежные вопросы