私はブール値を押したときにブール値のオン/オフを切り替えるボタンを作ろうとしています。私は既に他のモジュールのオン/オフを切り替えるために同様のフォーマットを使用しています。これは完全に機能します。しかし、私に知られていない何らかの理由で、私は変数を割り当てようとしていないので、決してトグルしません。ここで ブール値がコンストラクタで設定されていません
はブール値を作成するコードです: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;
}
}
}
繰り返しますが、このフォーマットは、他のモジュールを処理するための細かい動作しますが、ブール値を切り替えるためにそれをすることになっているようブール「虹」から「プロパティ」を割り当てされることはありません。したがって、ブール値「プロパティ」は正しく切り替えられますが、変数「レインボー」はfalseのままです。私は非常にシンプルな何かを逃している場合は申し訳ありません、私はちょうどこれが動作していない理由を理解できません。
エラーが発生しないため、スタックトレースはありません。
:あなたが今知っているよう
これ
は、意図的な設計上の決定でした。com/questions/40480/is-java-pass-by-value – JETM「最終ブール虹」の変更は何ですか? – vikingsteve