0

如果选择了 JToggle 按钮,我是否可以将文本设置为“ON”,如果没有,则设置为“OFF”?我正在尝试使用此代码:

    if(togbut.isSelected()){
        togbut.setText("ON");
    }
     else if(!togbut.isSelected()){
           togbut.setText("OFF");
    }

但它不起作用。我使用 NetBeans 7.3。

4

5 回答 5

4

您的代码几乎是正确的。

它必须放在切换按钮的更改侦听器中。

    toggleButton.addChangeListener(new ChangeListener() {
        @Override
        public void stateChanged(ChangeEvent event) {
            if (toggleButton.isSelected()){
                toggleButton.setText("ON");
            } else {
                toggleButton.setText("OFF");
            }
        }
    });
于 2013-05-03T12:41:10.127 回答
2

您必须在该切换按钮上附加一个ItemListener

final JToggleButton togbut = new JToggleButton();
togbut.addItemListener(new ItemListener() {

    @Override
    public void itemStateChanged(ItemEvent e) {
        if (e.getStateChange() == ItemEvent.SELECTED) {
            togbut.setText("ON");
        } else {
            togbut.setText("OFF");
        }
    }
});
于 2013-05-03T12:43:38.907 回答
2

嗯试试这个:

JToggleButton togbut = new JToggleButton("Click");
togbut.addItemListener(new ItemListener() {
   public void itemStateChanged(ItemEvent ev) {
      if(ev.getStateChange()==ItemEvent.SELECTED){
        togbut.setText("ON");
      } else if(ev.getStateChange()==ItemEvent.DESELECTED){
        togbut.setText("OFF");
      }
   }
});
于 2013-05-03T12:43:56.583 回答
1

您需要将ItemListener接口添加到使用JToggleButton. 实现应该是这样的:

public class MyClassThatUsesToggleButton implements  ItemListener{

    //
    // some code
    //
    JToggleButton toggleButton;

    public void itemStateChanged(ItemEvent e) {
        if(e.getStateChange() == ItemEvent.SELECTED)
        {
            toggleButton.setText("On!");
            totalGUI.setBackground(Color.green);
        }
        else
        {
            toggleButton.setText("Off");
            totalGUI.setBackground(Color.red);
        } 
    //
    // some more code
    //
    }
于 2013-05-03T12:45:21.043 回答
1

只需向您的 togbut 添加一个动作侦听器:

togbut.AddActionListener(this);

并在 ActionPerformed() 方法中添加您的代码。
此外,我认为 JToggleButton 不能有其他状态Selected!Selected 因此您可以将 if 结构更改为:

if(togbut.isSelected()){
    togbut.setText("ON");
} else {
    togbut.setText("OFF");
}
于 2013-05-03T12:42:47.530 回答