【发布时间】:2022-02-03 20:27:56
【问题描述】:
我创建了链接到文件的动态 JChekbox。我想看看通过动作监听器检查了哪些。我试过 getSource(),我试过 getState() 都没有工作...
for (int f = 0; f < numberCheckBox[0]; f++) {
String line1 = tableLines[f].toString().trim();
String[] dataRow1 = line1.split("/");
checkBoxList[f] = new JCheckBox(Arrays.toString(dataRow1).replace("[", "").replace("]", ""));
Checkp.add(checkBoxList[f]);
System.out.print(checkBoxList[f]);
}
save.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(files));
Object[] tableLines = br.lines().toArray();
numberCheckBox[0] = tableLines.length;
for (int j = 0; j < numberCheckBox[0]; j++) {
if(e.getSource() == finalCheckBoxList[j]){
if(e.getStateChange() == 1){
}
}
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
【问题讨论】:
-
您需要做的就是获取 ActionEvent 的源并将该对象转换为 JCheckBox。然后您可以使用 getText() 方法。无需检查状态。
-
好吧,您可能想使用
isSelected来确定按钮是否被选中 -
我确实使用了 isSelected 但效果不佳。
-
@boualpso 那你做错了,因为
isSelected对我来说工作得很好,是查找按钮当前选定状态的最佳解决方案