我有一个 gui 类,它具有链接到一个 ActionListener
的三个不同的 JButton
。
在 ActionListener
类中,我希望这三个 JButton
之间进行交互,从而允许程序“记住”之前单击了哪个按钮。
例如:
- 如果点击了button1 --> 记住这一点,
- 然后,当接下来单击“button2”时:执行与单击“button1”相关的操作。
换句话说,如果button1点击,现在在if子句中检查button2点击。
现在 getActionCommand()
不允许我使用嵌套的 if 语句,因为它只检查当前单击的按钮并且没有“内存”。
public void actionPerformed(ActionEvent e){
if (Integer.parseInt(e.getActionCommand()) == 0){
System.out.println("This is Jug 0");
// wont be able to print the following
if (Integer.parseInt(e.getActionCommand()) == 1){
System.out.println("This is Jug 1 AFTER jug 0"); //I will never be able to print this
}
}
}
最佳答案
据我了解您正在寻找待办事项......
因此,实现此目的的一种方法是创建一个 boolean 值实例变量,因此如果之前单击了按钮,则该变量将被设置为 true,然后您可以在方法内部检查该标志是否已设置为 true。 这种方法的缺点是,一旦单击一次,该标志将始终为真。您必须实现一种方法来重置此标志。
private boolean hasButtonOneBeenPressed = false; //set this to true when the button has been clicked
public void actionPerformed(ActionEvent e){
if (Integer.parseInt(e.getActionCommand()) == 0 && !hasButtonOneBeenPressed){
System.out.println("This is Jug 0");
// wont be able to print the following
} else if(Integer.parseInt(e.getActionCommand()) == 1 && hasButtonOneBeenPressed){
System.out.println("This is Jug 1 AFTER jug 0");
} else {
//do something else
}
}
关于Java 操作监听器和 JButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39984960/