JAVA JCheckBox事件处理问题

我有8个JCheckBox,jcb1,...jcb8.。有一数组int[]add={0,0,0,0,0,0,0,0}用来存放复选框是否选中的标识。jcb1选中则设定add... 我有8个JCheckBox,jcb1,...jcb8.。有一数组int[] add = {0,0,0,0,0,0,0,0}用来存放复选框是否选中的标识。jcb1选中则设定add[0]=1,没选中设定add[0]=-1;...;jcb8选中则设定add[7]=8,没选中设定add[7]=-1.这个怎样实现呢?我后面的程序就是要循环8次根据switch(add[i])选择case入口来分别触发函数。 展开
 我来答
kevintop3
推荐于2016-04-07 · TA获得超过1.5万个赞
知道小有建树答主
回答量:890
采纳率:100%
帮助的人:531万
展开全部
package com;

import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class Test3 {

private JCheckBox jCheckBox0 = new JCheckBox("0");
private JCheckBox jCheckBox1 = new JCheckBox("1");
private JCheckBox jCheckBox2 = new JCheckBox("2");
private JCheckBox jCheckBox3 = new JCheckBox("3");
private JCheckBox jCheckBox4 = new JCheckBox("4");
private JCheckBox jCheckBox5 = new JCheckBox("5");
private JCheckBox jCheckBox6 = new JCheckBox("6");
private JCheckBox jCheckBox7 = new JCheckBox("7");

private int[] add = { -1, -1, -1, -1, -1, -1, -1, -1 };

public Test3() {

JFrame f = new JFrame();
f.setSize(400, 400);
JPanel jPanel = new JPanel();
jPanel.setSize(400, 400);
f.add(jPanel);

ItemListener itemListener = new ItemListener() {
JCheckBox jCheckBox;

public void itemStateChanged(ItemEvent e) {
jCheckBox = (JCheckBox) e.getSource();

if (jCheckBox.isSelected()) {
add[Integer.valueOf(jCheckBox.getText())] = 1;
} else {
add[Integer.valueOf(jCheckBox.getText())] = -1;
}

}
};

jPanel.add(jCheckBox0);
jPanel.add(jCheckBox1);
jPanel.add(jCheckBox2);
jPanel.add(jCheckBox3);
jPanel.add(jCheckBox4);
jPanel.add(jCheckBox5);
jPanel.add(jCheckBox6);
jPanel.add(jCheckBox7);

jCheckBox0.addItemListener(itemListener);
jCheckBox1.addItemListener(itemListener);
jCheckBox2.addItemListener(itemListener);
jCheckBox3.addItemListener(itemListener);
jCheckBox4.addItemListener(itemListener);
jCheckBox5.addItemListener(itemListener);
jCheckBox6.addItemListener(itemListener);
jCheckBox7.addItemListener(itemListener);

f.show();
}

public static void main(String[] args) {
new Test3();
}

}
更多追问追答
追问

这每个checkbox都是规定死了,所以你这个方法肯定行不通啊亲!我现在就是

运行程序界面时勾选了也都全部返回-1

追答
用: ItemListener ,不要用ActionListener
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式