我试图做一个按钮,当它被按下时,开关一个布尔值。我已经使用类似的格式来打开/关闭其他模块,并且它完美地工作。然而,出于某种原因,我不知道,布尔我试图分配变量从不切换。布尔没有在构造函数中设置
下面是创建布尔代码:
boolean rainbow = false;
panels.add(new Panel("Hub", 50, 50, false) {
public void loadElements() {
getElements().add(new ElementBoolean("Rainbow", rainbow));
}
});
这里是框类,它得到了布尔变量,应该钮开启/关闭。
private String label;
private boolean property;
public ElementBoolean(String label, boolean property) {
super(label);
this.label = label;
this.property = property;
}
@Override
public void mouseClicked(int mX, int mY, int button)
{
switch(button) {
case 0: {
if(!isSelected(mX, mY)) return;
this.property = !this.property;
break;
}
}
}
同样,这种格式工作正常办理其他模块,但用于切换布尔从未分配,因为它被认为“财产”布尔“彩虹”。因此,布尔型'属性'正确切换,但变量'彩虹'保持为假。如果我错过了一些非常简单的东西,我很抱歉,我只是不明白为什么这不起作用。
没有堆栈跟踪,因为它不会产生任何错误。
有一些很好的进一步阅读这里:HTTP://计算器。com/questions/40480/is-java-by-reference-or-pass-by-value – JETM
是否使它成为“最终布尔彩虹”改变了什么? – vikingsteve