我試圖做一個按鈕,當它被按下時,開關一個布爾值。我已經使用類似的格式來打開/關閉其他模塊,並且它完美地工作。然而,出於某種原因,我不知道,布爾我試圖分配變量從不切換。布爾沒有在構造函數中設置
下面是創建布爾代碼:
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