2013-05-03 51 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

相關問題