2

我无法弄清楚如何执行以下操作。我试图让用户使用我的清单检查他想要的书籍,但我无法弄清楚如何保存他的选择(检查的书籍)以确定他必须支付的价格。这是我的清单代码:

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,我从文件中读取),旁边有一个复选框。我需要帮助来弄清楚如何“保存”他的选择,以便我可以将它存储在另一个书籍数组列表中。

4

2 回答 2

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 将触发

于 2013-04-04T18:46:06.993 回答
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]);
}

现在您可以轻松检查每个复选框的状态,例如,您可以通过 checkboxes[0] 引用第一个复选框

于 2013-04-04T18:48:23.983 回答