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入口来分别触发函数。
展开
展开全部
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();
}
}
更多追问追答
追答
用: ItemListener ,不要用ActionListener
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询