2013-05-03 55 views
0

如果选择JToggle按钮上的文本,如果不选中,将其设置为“OFF”,是否可以将其设置为“ON”? 我使用这个代码:是否有可能使JToggle文本取决于其状态?

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

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

+0

你把这段代码放在哪里?在您注册了该切换按钮的更改事件的Listener中? – Kai 2013-05-03 12:38:14

回答

4

你的代码几乎是正确的。

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

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

或ItemListener,ActionListner – mKorbel 2013-05-03 12:42:59

1

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

togbut.AddActionListener(this); 

而在actionPerformed()方法中添加代码。
此外,我不认为一个JToggleButton中可以有比Selected!Selected其他国家 所以,你可以changee你如果结构是:

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

你有一个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

嗯试试这个:

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"); 
     } 
    } 
}); 
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 
    // 
    } 
+0

或者你可以使用这个方法,@Gilbert Le Blanc建议你......如果它更好,我的或他的依赖于你想要捕捉的动作的次数。 – Dworza 2013-05-03 12:46:44

相关问题