怎么做JCheckBox的全选和全不选的按钮 我做了个简单的界面,上面有几个JCheckBox和2个JButton我想给做成点一个按钮就把JCheckBox全选的,然后按另一个的时候就全都不选的。请教各位!!!麻烦大家帮我看看,最好给出几行按钮动作的关键语句。谢谢!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【HoneyChenyu】截止到2008-07-03 09:33:04的历史汇总数据(不包括此帖):发帖的总数量:5 发帖的总分数:110 结贴的总数量:5 结贴的总分数:110 无满意结贴数:2 无满意结贴分:70 未结的帖子数:0 未结的总分数:0 结贴的百分比:100.00% 结分的百分比:100.00% 无满意结贴率:40.00 % 无满意结分率:63.64 % 敬礼! 给两个按钮添加两个事件监听器然后在监听函数中设置JCheckBox的选中状态这里有详细的方法是用说明,你可以借鉴一下http://java.sun.com/docs/books/tutorial/uiswing/components/button.html 全部选中的按钮的事件监听器可以如下写public void actionPerformed(ActionEvent e) { checkbox1.setSelected(true); checkbox2.setSelected(true); ... }同理全部取消选中的事件监听器代码如下public void actionPerformed(ActionEvent e) { checkbox1.setSelected(false); checkbox2.setSelected(false); ... } 完整的发不上来,我就发主要的了 private static final int NUM = 10; private JCheckBox[] items = new JCheckBox[NUM]; private static final String[] ITEMS_TITLE = {"RxPkt", "TxPkt", "RxMCast", "TxMCast", "RxBCast", "TxBCast", "RxByte", "TxByte", "RxDropped", "TxDropped"}; private JButton btnSelectAll = new JButton("全选"); private JButton btnSelectInverse = new JButton("反选"); private JButton btnClearSelect = new JButton("全不选"); private JButton btnSubmit = new JButton("确定"); for(int i = 0; i < NUM; i++) { items[i] = new JCheckBox(ITEMS_TITLE[i]); //...... // 监听JCheckBox的状态切换 // 此处必须为ItemListener,因为ActionListener只响应用户激发的状态改变,而不会响应程序自动激发的状态改变。 items[i].addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { checkSelect(e); } }); } // 全选 btnSelectAll.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { selectAll(); } }); // 反选 btnSelectInverse.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { selectInverse(); } }); // 全不选 btnClearSelect.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { clearSelect(); } }); /** * 选中全部JCheckBox */ public void selectAll() { for(int i = 0; i < NUM; i++) { items[i].setSelected(true); } } /** * 反向选择JCheckBox(只选择原来未选择的) */ public void selectInverse() { for(int i = 0; i < NUM; i++) { items[i].setSelected(!items[i].isSelected()); } } /** * 全部不选 */ public void clearSelect() { for(int i = 0; i < NUM; i++) { items[i].setSelected(false); } } /** * JCheckBox的ItemStateChanged事件需要执行的操作,选择时selectedNum++,取消选择时selectedNum-- * 这样可以保证selectedNum的值永远等于当前选择的JCheckBox个数 * ,最后只需判断selectedNum的值即可设置“确定”按钮的可用状态。 * @param e ItemEvent JCheckBox状态切换事件 */ public void checkSelect(ItemEvent e) { if(((JCheckBox)e.getSource()).isSelected()) { selectedNum++; } else { selectedNum--; } btnSubmit.setEnabled(selectedNum > 0); } http://java.sun.com/docs/books/tutorial/uiswing/components/button.html 怎么把word格式转换为PDF格式 请问JBuilder2007怎样生成exe文件,谢谢 ArrayList排序加跌代器遍例 java中的“不等于”能用<>吗? 关与JButton的问题 请问什么样的应用程序不能顺利改成Applet? 一个数据库查询问题 请人做 java 小型的个人信息管理软件 人民币结算 想学JAVA,应该装什么版本的工具,哪能下载? 各位大虾,我现在再用SA(System Architect)做项目设计,有谁知道怎样用SA将Java源代码倒成类图? 读取不到cookie中值的问题 UDP广播收不到
楼主【HoneyChenyu】截止到2008-07-03 09:33:04的历史汇总数据(不包括此帖):
发帖的总数量:5 发帖的总分数:110
结贴的总数量:5 结贴的总分数:110
无满意结贴数:2 无满意结贴分:70
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:40.00 % 无满意结分率:63.64 %
敬礼!
然后在监听函数中设置JCheckBox的选中状态
这里有详细的方法是用说明,你可以借鉴一下
http://java.sun.com/docs/books/tutorial/uiswing/components/button.html
public void actionPerformed(ActionEvent e) {
checkbox1.setSelected(true);
checkbox2.setSelected(true);
... }
同理全部取消选中的事件监听器代码如下
public void actionPerformed(ActionEvent e) {
checkbox1.setSelected(false);
checkbox2.setSelected(false);
... }
private static final int NUM = 10; private JCheckBox[] items = new JCheckBox[NUM];
private static final String[] ITEMS_TITLE = {"RxPkt", "TxPkt", "RxMCast", "TxMCast", "RxBCast", "TxBCast", "RxByte", "TxByte", "RxDropped",
"TxDropped"};
private JButton btnSelectAll = new JButton("全选"); private JButton btnSelectInverse = new JButton("反选"); private JButton btnClearSelect = new JButton("全不选"); private JButton btnSubmit = new JButton("确定");
for(int i = 0; i < NUM; i++)
{
items[i] = new JCheckBox(ITEMS_TITLE[i]);
//...... // 监听JCheckBox的状态切换
// 此处必须为ItemListener,因为ActionListener只响应用户激发的状态改变,而不会响应程序自动激发的状态改变。
items[i].addItemListener(new ItemListener()
{
public void itemStateChanged(ItemEvent e)
{
checkSelect(e);
}
});
}
// 全选
btnSelectAll.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
selectAll();
}
}); // 反选
btnSelectInverse.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
selectInverse();
}
});
// 全不选
btnClearSelect.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
clearSelect();
}
});
/**
* 选中全部JCheckBox
*/
public void selectAll()
{
for(int i = 0; i < NUM; i++)
{
items[i].setSelected(true);
}
} /**
* 反向选择JCheckBox(只选择原来未选择的)
*/
public void selectInverse()
{
for(int i = 0; i < NUM; i++)
{
items[i].setSelected(!items[i].isSelected());
}
}
/**
* 全部不选
*/
public void clearSelect()
{
for(int i = 0; i < NUM; i++)
{
items[i].setSelected(false);
}
} /**
* JCheckBox的ItemStateChanged事件需要执行的操作,选择时selectedNum++,取消选择时selectedNum--
* 这样可以保证selectedNum的值永远等于当前选择的JCheckBox个数
* ,最后只需判断selectedNum的值即可设置“确定”按钮的可用状态。
* @param e ItemEvent JCheckBox状态切换事件
*/
public void checkSelect(ItemEvent e)
{
if(((JCheckBox)e.getSource()).isSelected())
{
selectedNum++;
}
else
{
selectedNum--;
} btnSubmit.setEnabled(selectedNum > 0);
}