Java 使用JButton将变量切换为true/false

Java 使用JButton将变量切换为true/false,java,swing,jbutton,Java,Swing,Jbutton,你好,我想知道。如何使用JButton将变量设置为true或false,反之亦然?我的第一个想法是创建如下变量 private boolean value1, value2; 按钮像 private JButton toggle1, toggle2; //请参阅下面的代码 问题是它不会对按钮做出任何反应。这是可能的方式,还是我必须使用其他东西 编辑:这是相关代码。(我的行动听众) public void actionPerformed(ActionEvent e){ 如果(例如getSour

你好,我想知道。如何使用JButton将变量设置为true或false,反之亦然?我的第一个想法是创建如下变量

private boolean value1, value2;
按钮像

private JButton toggle1, toggle2;
//请参阅下面的代码

问题是它不会对按钮做出任何反应。这是可能的方式,还是我必须使用其他东西

编辑:这是相关代码。(我的行动听众)

public void actionPerformed(ActionEvent e){
如果(例如getSource()==toggle1){
如果(aan1==false){
aan1^=真;
系统输出打印LN(aan1);
}
否则如果(aan1==真){
aan1^=假;
}
}
试一试{
//15号工程中0号工程的控制人员为
如果(e.getSource()==burn&&Integer.parseInt(textfield.getText())<16&&Integer.parseInt(textfield.getText())>0){
//卡尔斯品牌
如果(高度>15&&aan1==真){
int aantal=Integer.parseInt(textfield.getText());
高度-=安塔尔;
}
如果(高度2>15&&aan2==true){
int aantal=Integer.parseInt(textfield.getText());
高度2-=安塔尔;
}
//奥普尼乌特肯
重新油漆();
}
否则{
showMessageDialog(null,“错误:vul een getal tussen de 0 en 15 in!”;//警报框合并
}
}
捕获(NumberFormatException错误){
showMessageDialog(null,“错误:een van de velden bevat geen cijfer of is niet ingevuld!”);//警报框合并
}
}

不确定您的具体要求,但要切换布尔值,您可以使用:

value1 = !value1;

然后打印变量:

System.out.println(value1);

不确定您的具体要求,但要切换布尔值,您可以使用:

value1 = !value1;

然后打印变量:

System.out.println(value1);
就这么做

value1 != value1;
这与当前值相反:因此,如果为false,它将变为true,反之亦然

编辑: 应该是:

value = !value;
就这么做

value1 != value1;
这与当前值相反:因此,如果为false,它将变为true,反之亦然

编辑: 应该是:

value = !value;

如果要在按下按钮时切换布尔变量,则应使用
JCheckBox
而不是
JButton
,该按钮具有内部布尔状态,并且会自动更新此变量。该复选框还使此布尔状态对用户可见


当您需要布尔变量时,您可以使用
JCheckBox.isSelected()
方法询问它。

如果您想在按下按钮时切换布尔变量,您应该使用
JCheckBox
而不是
JButton
,因为它具有内部布尔状态,并且会自动更新此变量。该复选框还使此布尔状态对用户可见

当您需要布尔变量时,可以使用
JCheckBox.isSelected()
方法询问它。

如中所建议,可能是一个很好的选择,因为
isSelected()
谓词反映了按钮的状态

state = button.isSelected()
可以找到示例,并且中建议的。

可能是一个很好的选择,因为
isSelected()
谓词反映了按钮的状态

state = button.isSelected()

可以找到一些例子,谢谢!没有;我不知道。。但问题是我的jButton不起作用。if(e.getSource()==toggle1){如果我点击按钮,什么都不会发生。谢谢!我不知道..但问题是我的jButton不工作。if(e.getSource()==toggle1){如果我点击按钮,什么也不会发生。我在做一个必须使用按钮的练习。复选框不是这里的选项:)@Reshad复选框是
JToggleButton
,它反过来是
AbstractButton
…所以它是一个按钮我在做一个必须使用按钮的练习。复选框不是这里的选项:)@Reshad checkbox是一个
JToggleButton
,它又是一个
AbstractButton
…所以它是一个按钮1。这样可能吗,还是我必须使用其他东西?很难说当你没有提供相关的代码时(创建JButton和action/ActionListener)2.if(value1==false)简短且可读性更强的版本是
if(!value1)
3.要切换值,只需写入
value1=!value1;
4.在操作方法中重新声明局部变量
value1
!!!这只是查找trouble@GuillaumePolet我发布了actionlistener,现在如果我使用按钮,它会从false变为true,但如果我再次单击它,它不会变回..移除包装
如果(!aan)
我再次修改了它,但我仍然得到了单向更改。一旦它为真,就不会再为假。很抱歉,我理解错了!它现在可以工作了,非常感谢!1.是否有可能这样做,或者我必须使用其他方法?很难说你没有提供相关的代码(创建JButton和action/ActionListener)2.如果(value1==false)如果(!value1),则较短且可读性更强的版本为
if
3.要切换值,只需写入
value1=!value1;
4.在操作方法中重新声明局部变量
value1
!!!这只是查找trouble@GuillaumePolet我发布了actionlistener,现在如果我使用按钮,它会从false变为true,但如果我再次单击它,它不会变回..移除包装
if(!aan)
我再次修改了它,但我仍然得到了单向更改。一旦它为真,就不会再为假。很抱歉,我理解错了!它现在可以工作了,非常感谢!但我认为这也是一种不使用按钮的方法。不幸的是,我必须使用按钮来打开或关闭它。这与按钮配合使用会非常好吗?只要将它扔到你的actionlistener中即可(或者它是如何被调用的,因为我已经编写了一段时间的java:))但我认为这也是一种不用按钮的方法