尝试在变量中检索并存储用户选择的复选框索引字符串,以供以后使用/引用。选中任何复选框都会返回并显示数组中的最后一个索引。如何在循环中存储具有多个复选框的变量的独立索引?为了清楚起见,我省略了与JFrame/Layout/inports相关的细节。我是Java的新手,但似乎不知道我缺少了什么。如果这个话题很重要,试着挑战自己,为《暗黑破坏神2》创建一个符文计算器,计算哪些符文可以由选定的单个符文制作,假设顺序无关紧要。我知道需要进行重构以使其更加简洁,我只想先让事情正常工作。欢迎任何建议。感谢阅读。
当前代码:
public class HelloWorldSwing extends JFrame implements ItemListener{
JLabel display = new JLabel("Output Field");
JPanel boxpanel = new JPanel();
String[] rune = {"El", "Eld", "Tir", "Nef"};
JCheckBox[] boxes = new JCheckBox[rune.length];
public HelloWorldSwing() {
for(int i = 0; i < boxes.length; i++){
boxes[i] = new JCheckBox(rune[i]);
boxes[i].addItemListener(this);
boxpanel.add(boxes[i]);
}
}
public void itemStateChanged( ItemEvent event ){
for(int i = 0; i < boxes.length; i++){
if(event.getStateChange() == ItemEvent.SELECTED){
String iselected = boxes[i].getText();
display.setText(iselected);
}
}
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
HelloWorldSwing gui = new HelloWorldSwing();
}
});
}
}
如果我手动更改的索引:
String isselected = boxes[0].getText();
它只打印索引0,将数组索引设置为i只打印数组中的最后一个索引。