以下是我尝试做的事情:创建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());
答案 0 :(得分:8)
您要在if
语句中为==
分配值。请使用if (toggleButton)
或更好的if (!toggleButton)
和else if
。为什么你还需要public void changeButtonText() {
toggleButton = !toggleButton;
button.setText(toggleButton ? "Happy" : "Sad");
}
来表示布尔值?
<a>