如何在Java中单击下一个和上一个按钮时显示下一个和上一个记录?

Posted

技术标签:

【中文标题】如何在Java中单击下一个和上一个按钮时显示下一个和上一个记录?【英文标题】:How to Display next and previous records on clicking on next and previous button in Java? 【发布时间】:2013-04-08 19:46:41 【问题描述】:
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 按钮时获取上一行。有什么简单的方法可以做到这一点...?

【问题讨论】:

听起来你会想使用CardLayout 最好的办法是将所有行卸载到像列表这样的数据结构中。然后,您保留当前选项的索引。单击下一步时,增加索引。单击上一个时,减少索引。始终在当前索引处显示选项。 你能给我一个演示吗 您的Resultset rs 已经包含所有关于给定主题的问题行。它使用next()previous() 方法。此外,它还具有 isFirst()isLast() 方法,您可能甚至不需要。因此,您拥有创建所需行为的所有工具。 @user2259027:检查我的答案 【参考方案1】:

您不应该在您只想获取 rs.next() 的方法中“select * from questions”。如果你想得到 rs.previous() 你会再次“选择 *”吗? 将您的选择放在程序的开头。

对于设计良好的 cmd_nextActionPerformed,您需要考虑三种情况:

    您的数据库表是空的,或者只有一个条目。在这种情况下,应该禁用下一个按钮,因为没有下一个条目。

    您有下一个条目。获取数据并刷新 JTextFields。应该启用下一步按钮。

    你在最后。在 rs.next() 检查后,如果 rs.isAfterLast() 返回 true,那么您需要转到 rs.last() 并留在那里。下一步按钮应该被禁用。

好消息是 cmd_previousActionPerformed 是对称的。

【讨论】:

你能告诉我如何使用行中的增量来自动获取下一行...? rs.next() 会自动执行此操作。检查与结果集的位置和大小有关的 3 个方面。【参考方案2】:

接下来,

rs.next()

对于以前的,

rs.previous();

【讨论】:

以上是关于如何在Java中单击下一个和上一个按钮时显示下一个和上一个记录?的主要内容,如果未能解决你的问题,请参考以下文章

列表项单击,在详细活动上从列表视图活动中导航下一个和上一个列表项

如何从数据库c#中创建多年的下一个和上一个按钮

单击卡片以在带有下一个和上一个按钮的弹出窗口上显示其各自的详细信息

Bootstrap 5仅在单击下一个和上一个按钮时使两个轮播同时滑动

按下按钮时显示新的 ViewController 时如何显示 tabBarController

在 DOM 中单击时获取下一个也是唯一的类