說我有一個獲取JToggleButton中
JToggleButton but = new JToggleButton("OK") ;
現在我需要的but
狀態點擊時。我的意思是我需要知道它是否被點擊。
說我有一個獲取JToggleButton中
JToggleButton but = new JToggleButton("OK") ;
現在我需要的but
狀態點擊時。我的意思是我需要知道它是否被點擊。
您還可以使用的ItemListener的itemStateChanged方法類似如下:
JToggleButton jtb = new JToggleButton("Press Me");
jtb.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent ev) {
if(ev.getStateChange()==ItemEvent.SELECTED){
System.out.println("button is selected");
} else if(ev.getStateChange()==ItemEvent.DESELECTED){
System.out.println("button is not selected");
}
}
});
你想知道在使用jtb
後者狀態方法
System.out.println(jtb.isSelected());
if(jtb.isSelected()){
System.out.println("button is selected");
} else {
System.out.println("button is not selected");
}
要響應點擊,請將ActionListener添加到JToggleButton。要找到它的狀態,就像JRadioButton一樣,將其稱爲isSelected()方法。
對於例如,
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import javax.swing.JToggleButton;
public class ToggleTest {
public static void main(String[] args) {
JToggleButton toggleBtn = new JToggleButton("Toggle Me!");
toggleBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JToggleButton tBtn = (JToggleButton)e.getSource();
if (tBtn.isSelected()) {
System.out.println("button selected");
} else {
System.out.println("button not selected");
}
}
});
JOptionPane.showMessageDialog(null, toggleBtn);
}
}
更重要的是要點答案。 + 1'd – KJW
恐怕依靠事件排序。如果在內部按鈕切換偵聽器之前調用'actionPerformed',則會得到[相反結果](https://weblogs.java.net/blog/alexfromsun/archive/2011/06/15/swing-better-world-聽衆)。 – maaartinus
是的一個很好的方式來實現這個,1+ :) –
謝謝@哈利歡樂。這是一個很好的闡述... :) – Dewsworld
由於Java8可以使用lambda表達式 but.addItemListener((ItemEvent ev) - > {/ *您的代碼* /} –