【发布时间】:2012-09-24 09:22:18
【问题描述】:
您好,我想知道。如何使用 JButton 将变量设置为 true 或 false,反之亦然?我的第一个想法是创建变量,如
private boolean value1, value2;
还有类似的按钮
private JButton toggle1, toggle2;
//见下面的代码
问题是它不会以某种方式对按钮做出反应。这种方式可以吗还是我必须使用其他方法?
编辑:这是相关代码。 (我的 ActionListener)
public void actionPerformed(ActionEvent e) {
if( e.getSource() == toggle1 ) {
if(aan1 == false) {
aan1 ^= true;
System.out.println(aan1);
}
else if(aan1 == true) {
aan1 ^= false;
}
}
try {
// controleer of de ingevulde waarde tussen de 0 en de 15 is
if( e.getSource() == burn && Integer.parseInt(textfield.getText()) < 16 && Integer.parseInt(textfield.getText()) > 0) {
// brand kaars
if( height > 15 && aan1 == true) {
int aantal = Integer.parseInt(textfield.getText());
height -= aantal;
}
if( height2 > 15 && aan2 == true) {
int aantal = Integer.parseInt(textfield.getText());
height2 -= aantal;
}
// opnieuw tekenen
repaint();
}
else {
JOptionPane.showMessageDialog(null, "error: vul een getal tussen de 0 en 15 in!"); // alertbox melding
}
}
catch(NumberFormatException error) {
JOptionPane.showMessageDialog(null, "error: een van de velden bevat geen cijfer of is niet ingevuld!"); // alertbox melding
}
}
【问题讨论】:
-
1. 这种方式有可能还是我必须使用其他方法?当您不提供相关代码时很难说(创建JButton和action/ActionListener) 2. if ( value1==false) 更短且更易读的版本是
if(!value1)3. 要切换一个值,只需写value1 = !value1;4. 在您的操作方法中重新声明一个局部变量value1!!!这只是找麻烦 -
@GuillaumePolet 我发布了 actionlistener,现在如果我使用按钮,它会从 false 变为 true,但如果我再次点击它,它就不会变回来..
-
去掉包装
if(!aan) -
我再次对其进行了修改,但我仍然获得了单向更改。一旦它是真的,它就不会再假了。
-
对不起,我理解错了!现在可以了,非常感谢!