单击两个按钮如何从 MySQL 数据库中检索记录?
- 如果用户单击 NEXT 按钮,它应该只在各种
JLabel
. - 如果用户点击 PREVIOUS 按钮,它应该只显示以前的记录。
- 如果用户到达最后一条记录,则应禁用 NEXT 按钮。
- 同样,如果用户是第一次记录,则应禁用 PREVIOUS 按钮。只有当用户可以移动到上一个记录时才应该启用它。
您必须自己实现行为,使用 ResultSet 语句方法,在本例中为 next() 和 previous() 方法
该方法返回一个布尔值,指示是否有下一条或上一条记录,您可以使用它来启用和禁用您的按钮
查看此链接以了解如何使用 JDBC 语句
http://docs.oracle.com/javase/tutorial/jdbc/basics/processingsqlstatements.html
假设 nextBtn 和 PreviousBtn 是你和你的 Bouttons 和 res 你的 ResultSet,我们需要两个变量(hasNext 和 hasPrevious)来保存我们按钮的状态,你可以参考下面的代码片段,你必须适应你的情况,它不会直接工作。
private boolean hasNext = false;
private boolean hasPrevious = false;
public void updateBtnState() {
nextBtn.setEnabled(hasNext);
previousBtn.setEnabled(hasPrevious);
}
previousBtn = new JButton(" Previous <<");
previousBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
hasPrevious = res.previous();
if (hasPrevious ) hasNext = true;
// do something
updateBtnState();
}
});
nextBtn = new JButton(" Next >>");
nextBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
hasNext = res.next();
if (hasNext ) hasPrevious = true;
// do something
updateBtnState();
}
});
解决方案是: -
public void actionPerformed(ActionEvent evt) {
//HERE next and pre are Button name;
//rs is REsultSet
if (evt.getSource()==next)
{
try {
if (rs.next())
{
if(rs.isLast())
{
pre.setEnabled(true);
next.setEnabled(false);
}
//do action
}
} catch (SQLException ex) {
Logger.getLogger(DeleteQ.class.getName()).log(Level.SEVERE, null, ex);
}
}
else if (evt.getSource() == pre)
{
try {
if(rs.previous())
{
if(rs.isFirst())
{
pre.setEnabled(false);
next.setEnabled(true);
}
//do action
}
} catch (SQLException ex)
{
Logger.getLogger(DeleteQ.class.getName()).log(Level.SEVERE, null, ex);
}
}
}