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

你好朋友我试图在我的Jave Gui应用程序中显示记录我已经制作了一些代码但是当我点击下一个按钮时它会显示最后一条记录。 有没有其他方法来查看介于两者之间的记录请帮助。

private void bt_nextActionPerformed(java.awt.event.ActionEvent evt) { if(evt.getSource()==bt_previous){ DBUtil util = new DBUtil(); try { Connection con = util.getConnection(); PreparedStatement stmt = con.prepareStatement("SELECT [box_no],[weight],[note_state],[dm_state],[1],[2],[5],[10],[20],[50],[100],[500],[1000] FROM [CNV].[dbo].[soil_det] where rm_id=?"); ResultSet rs; String rm = tf_rm_id.getText().trim(); stmt.setLong(1, Long.parseLong(rm)); rs = stmt.executeQuery(); while (rs.next()) { String a = rs.getString("weight"); txtboxwgt.setText(a); String b = rs.getString("note_state"); cbnotstat.setSelectedItem(b); String c = rs.getString("dm_state"); cbdmnstat.setSelectedItem(c); txtboxno.setText(rs.getString("box_no")); txtRe1.setText(rs.getString("1")); txtRs2.setText(rs.getString("2")); txtRs5.setText(rs.getString("5")); txtRs10.setText(rs.getString("10")); txtRs20.setText(rs.getString("20")); txtRs50.setText(rs.getString("50")); txtRs100.setText(rs.getString("100")); txtRs500.setText(rs.getString("500")); txtRs1000.setText(rs.getString("1000")); } } catch (Exception e) { JOptionPane.showMessageDialog(null, e.getMessage()); } } }`enter code here` 

您需要将数据库代码与GUI代码分开。 您还需要将应用程序分解为更小,更容易编码的步骤。

以下是您的应用程序在启动时需要执行的操作:

  • 打开与数据库的连接。
  • 选择表soil_det的所有键,并将键保存在List中。
  • 选择第一行,然后显示它。

单击下一个按钮时:

  • 从列表中获取下一个密钥。
  • 如果您已经超过列表的末尾,则显示一条消息。
  • 否则,选择当前行并显示它。

单击上一个按钮时:

  • 从列表中获取上一个密钥。
  • 如果您已超过列表的开头,则显示一条消息。
  • 否则,选择当前行并显示它。

以下是您的应用程序在结束时需要执行的操作:

  • 关闭与数据库的连接。

while循环中,您的JTextFields值正在设置和重置,并保持设置为循环中的最后一个值。 对每个按钮单击进行单独调用会产生昂贵的开销,但如果您希望使用此方法,则需要在SQL中使用适当的WHERE子句,该子句仅返回一条记录。 还要考虑使用连接池 。

或者,您可以在JTable显示所有值。

如何使用表格