首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

怎么表示JCheckBox是否被选中

2012-08-17 
如何表示JCheckBox是否被选中有些人说可以JCheckBox.isSelected(),其实不对,因为该方法是继承自JButton,只

如何表示JCheckBox是否被选中
有些人说可以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也会增加内容。
是否还有其他办法,请指教。

[解决办法]

Java code
import javax.swing.JFrame;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);                }            });    }}
[解决办法]
好像是isSelectedItem()吧
[解决办法]
监听JcheckBox的改变事件,记录一个boolean变量,随着改变而切换其值,从而保证与是否选中同步

热点排行
Bad Request.