这就是我要做的:创建一个JButton
,单击时,其setText()
将更改为Happy
,然后再次单击时,其setText()
将更改为Sad
。基本上,我希望它在单击时在Happy
和Sad
之间切换。(对不起,糟糕的解释)
问题是该按钮仅在我第一次单击它时更改文本(从 Happy
到 Sad
)。再次单击时,它不会更改文本。
这是我的切换方法代码:
boolean toggleButton = true;
JButton button = new JButton("Sad");
public void changeButtonText() {
if(toggleButton = true) {
toggleButton = false;
button.setText("Happy");
} else if (toggleButton = false) {
toggleButton = true;
button.setText("Sad");
}
}
然后,我有了我的 ActionListener:
class ButtonListener implements ActionListener {
public void actionPerformed (ActionEvent event) {
changeButtonText();
}
}
button.addActionListener (new ButtonListener());
您正在为if
语句中的toggleButton
赋值。请使用==
,或者更好的是,if (toggleButton)
和if (!toggleButton)
。为什么布尔值需要else if
?
public void changeButtonText() {
toggleButton = !toggleButton;
button.setText(toggleButton ? "Happy" : "Sad");
}