我无法弄清楚如何执行以下操作。我试图让用户使用我的核对表检查他想要的书籍,但我无法弄清楚如何保存他的选择(已检查的书籍)以确定他必须支付的价格。这是我的清单代码:
for(int k=0;k<catalogue.getCatalogue().size();k++)
{
frame.add(new JCheckBox(catalogue.cat.get(k).toString()));
}
frame.setLayout(new FlowLayout());
frame.setSize(900,900);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){System.exit(0);}});
它只显示书籍列表(目录是包含书籍的Arraylist,我从文件中读取),旁边有一个复选框。我需要帮助找出如何“保存”他的选择,以便我可以将它存储在另一个书籍的arraylist中。
答案 0 :(得分:0)
JCheckBox[] checkboxArray = new JCheckBox[catalogue.getCatalogue().size()];
for(int k=0;k<catalogue.getCatalogue().size();k++)
{
checkboxArray[k] = new JCheckBox(catalogue.cat.get(k).toString());
frame.add(checkboxArray[k]);
}
//
you can also add a ItemListener to your checkboxs
private class CheckBoxListener implements ItemListener
{
public void itemStateChanged(ItemEvent e)
{
if(e.getSource() == check1)
{
if(check1.isSelected())
{
//do something
}
}
}
}
JCheckBox[] checkboxArray = new JCheckBox[catalogue.getCatalogue().size()];
CheckBoxListener listener = new CheckBoxListener();
for(int k=0;k<catalogue.getCatalogue().size();k++)
{
checkboxArray[k] = new JCheckBox(catalogue.cat.get(k).toString());
checkboxArray[k].addItemListener(listener);
frame.add(checkboxArray[k]);
}
//现在当一个盒子被检查时,一个ItemEvent会发生攻击
答案 1 :(得分:0)
您应该使用JCheckLists的Array / ArrayList。例如:
JCheckBox[] checkboxes = new JCheckBox[catalogue.getCatalogue().size()];
然后:
for(int k=0;k<catalogue.getCatalogue().size();k++)
{
checkboxes[k] = new JCheckBox(catalogue.cat.get(k).toString()));
frame.add(checkboxes[k]);
}
现在您可以轻松检查每个复选框的状态,例如,您可以通过复选框[0]
引用第一个复选框。