我知道在创建按钮时,如下一个和上一个,代码可能有点长,以使这些按钮起作用。
我的教授给了我们这个例子来创建下一个按钮:
private void jbtnNext_Click() {
JOptionPane.showMessageDialog(null, "Next" ,"Button Pressed",
JOptionPane.INFORMATION_MESSAGE);
try {
if (rset.next()) {
fillTextFields(false);
}else{
//Display result in a dialog box
JOptionPane.showMessageDialog(null, "Not found");
}
}
catch (SQLException ex) {
ex.printStackTrace();
}
}
尽管如此,我真的不明白短语和简单if语句是如何使下一个按钮起作用的。我看到fillTextFields(false)
使用了一个布尔值,你需要在我认为的代码的开头初始化该布尔值。我放了private fillTextFields boolean = false;
,但这似乎不对......
我只是希望有人可以更好地解释它。谢谢:))
答案 0 :(得分:1)
好吧,fillTextFields(true);
是一个函数调用,当你传入一个真/假标志时它会做一些事情(你必须看到函数内部的代码才能找到它的确切作用)。 / p>
字段声明private fillTextFields boolean = false;
无效,您应该在名称前提供类型,例如:private boolean fillTextFields = false;
。除了无效的语法,该标志实际上没有做任何事情,特别是如果你没有在任何地方使用它。
我不明白你希望在jbtnNext_Click()
方法中看到什么......当你声明你的按钮并在UI上点击它时,就会调用这个方法。它不会使按钮工作,即使您在jbtnNext_Click()
方法中没有任何内容,该按钮也能正常工作。例如:
private void jbtnNext_Click() {
// The button will still work, but it simply won't do anything
}
获取按钮功能取决于您查看的功能按钮。点击下一个/上一个时应该发生什么?
更新:
我以为我需要布尔值 宣言使 “fillTextFields(false)”工作。
fillTextFields
方法是否在某处给你?如果是,那么你不需要声明任何东西,更不用说变量了。如果它已经提供,那么你只需调用方法,就是这样。如果没有提供,那么你需要声明它:
private void fillTextFields(bool shouldFill)
{
if(shouldFill)
{
// fill the text fields
}
// possibly have an else statement if you need to do something else here
}
否则,您在该功能中看到的只是为了转到数据库中的下一条记录所需要做的一切。
答案 1 :(得分:1)
我认为提供的代码有点简短,无法提供更好的解释,发布fillTextFields的代码会更有帮助。
我能猜到程序正在做的是它从数据库中检索一些数据。下一个按钮允许程序遍历已返回的项目。
按下下一个按钮后,会显示一个消息框,让您“知道”按钮确实已被按下。
rset.next返回true,列表中有另一个元素(从数据库中检索),如果没有,则返回false。
如果它返回true,则调用fillTextFields方法,我猜这些方法在屏幕上显示数据(即使没有我可以推测的代码)。如果没有任何内容,则会显示一个显示“未找到”的消息框。
关于你的问题
private fillTextFields boolean = false;
fillTextFields是一种方法,您无法为方法指定值。此外,在Java中,当声明方法和变量时,类型将在名称之前写入,例如
private int number;
public float myMethod() { }
答案 2 :(得分:0)
除非您使用按钮注册操作,否则下一个按钮将不会执行任何操作。我的意思是,无论你定义下一个按钮的位置如何:
private JButton nextButton = new JButton("Next");
这会创建一个标签为“下一步”的按钮。可能还有一些用于定位按钮的附加代码。为了使该按钮在单击时执行任何操作,它需要在其上设置Action,或者必须添加ActionListener。很多时候,创建按钮的类实现了ActionListener,并且有一个响应点击的方法,如:
nextButton.addActionListener(this);
...
...
...
public void actionPerformed(ActionEvent e) {
// some method implementation
}
单击按钮时会调用actionPerformed方法,因为您已在按钮上注册了动作侦听器。你教授的代码中是否有这样的内容?