有些人说可以JCheckBox.isSelected(),其实不对,因为该方法是继承自JButton,只要点击JCheckBox,该函数就会返回true,也就是说如果该JCheckBox原状态为勾选上,后来你又把它勾选掉,该函数仍然返回true。可以这样子试一下:
ArrayList<String> rst = new ArrayList<String>();
JCheckBox box= new JCheckBox();
if(box.isSelected()){
rst.add(box.getText());
}可以看出当把该box去掉勾选时,rst也会增加内容。
是否还有其他办法,请指教。
ArrayList<String> rst = new ArrayList<String>();
JCheckBox box= new JCheckBox();
if(box.isSelected()){
rst.add(box.getText());
}可以看出当把该box去掉勾选时,rst也会增加内容。
是否还有其他办法,请指教。
import javax.swing.JCheckBox;
import java.awt.event.ActionEvent;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
import java.awt.event.ActionListener;
public class JCheckBoxExample {
public static void main(final String[] args) {
java.awt.EventQueue.invokeLater(new Runnable(){
@Override public void run(){
final JFrame frame = new JFrame("JCheckBox Exmaple");
final JCheckBox check = new JCheckBox("Switch");
check.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println(check.isSelected());
}
});
check.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
System.out.println(e.getStateChange() == ItemEvent.SELECTED ? "Selected" : "Deselected");
}
}); frame.add(check);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}
});
}
}