JButton切换方法无法按预期工作

Nic*_*ick 1 java user-interface swing jbutton

这是我正在尝试做的事情:创建一个JButton,当点击时,setText()它将变为Happy,然后再次点击时,setText()它将变为Sad.基本上,我希望它在点击之间Happy和之间切换Sad.(抱歉可怕的解释)

问题是该按钮仅在我一次单击它时(从HappySad)更改文本.再次单击时,它不会更改文本.

这是我的切换方法的代码:

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");
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,我有我的ActionListener:

class ButtonListener implements ActionListener {
    public void actionPerformed (ActionEvent event) {
        changeButtonText();
    }
}

button.addActionListener (new ButtonListener());
Run Code Online (Sandbox Code Playgroud)

Squ*_*yMo 8

toggleButtonif语句中分配值.请使用==或更好的if (toggleButton)if (!toggleButton).为什么你还需要else if布尔值?

public void changeButtonText() {
   toggleButton = !toggleButton;
   button.setText(toggleButton ? "Happy" : "Sad");
}
Run Code Online (Sandbox Code Playgroud)