是否可以使JToggle文本取决于其状态?

时间:2013-05-03 12:36:06

标签: java swing jtogglebutton itemlistener changelistener

是否可以将切换按钮上的文本设置为“ON”(如果已选中),如果不是,则设置为“OFF”? 我正在尝试使用此代码:

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

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

5 个答案:

答案 0 :(得分:4)

您的代码几乎是正确的。

必须将其放入切换按钮的更改侦听器中。

    toggleButton.addChangeListener(new ChangeListener() {
        @Override
        public void stateChanged(ChangeEvent event) {
            if (toggleButton.isSelected()){
                toggleButton.setText("ON");
            } else {
                toggleButton.setText("OFF");
            }
        }
    });

答案 1 :(得分: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");
        }
    }
});

答案 2 :(得分: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");
      }
   }
});

答案 3 :(得分:1)

只需在你的togbut中添加一个动作监听器:

togbut.AddActionListener(this);

并在ActionPerformed()方法中添加您的代码 此外,我不认为JToggleButton可以具有除Selected!Selected之外的其他状态 所以你可以改变你的if结构:

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

答案 4 :(得分: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
    //
    }