如何查找选中了哪个自动生成的复选框



我必须在java中创建一个五金店,其中客户可以从带有复选框的列表中选择他想要订购的项目,并带有旋转键的数量。我可以通过for循环生成项目列表(项目来自对数据库的查询,并在arrayList中返回)

这是for循环:

        ArrayList stringList = new ArrayList();
     stringList = cond.getOnderdelen(); // he gets the items from the database (method in other class)

    itemArea.add(new JLabel("Naam en prijs")); // itemArea is my JPanel
    for (int i = 0; i < stringList.size(); i++) {
            System.out.println(stringList.get(i));
            String item = (String) stringList.get(i);
            String checknummer = Integer.toString(i);
            check = new JCheckBox(checknummer);
            check.setText(item);
            JSpinner spin = new JSpinner();
            itemArea.setLayout(new BoxLayout(itemArea, BoxLayout.Y_AXIS));
            itemArea.add(check); // I add the components to the JPanel..
            itemArea.add(spin);

我得到一个漂亮的10+项目的盒子布局。但现在棘手的部分:如何知道哪个复选框被选中??所以我可以创建一个make ORDER按钮。它只能找到最后生成的复选按钮的值(所以从数据库的最后一项)

if(e.getSource() == orderBtn) 
       {
           System.out.println("Button has been pressed");
           state = check.isSelected(); // state is a boolean variable.
           if(state == true)
           {
               System.out.println("True: checkbox is selected!");
           }

问题将得到解决,如果我可以使更多的复选框与变量名称,如计数器' I '从FOR循环。然后我可以检查是否checkbox1, checkbox2, checkbox3…被选中?但如何?

提前感谢,Diederik•韦斯特拉特学生商务工程师根特

您可以创建多个复选框并将其保存以供稍后在数组或集合中使用。如果你的ActionListener在上面的类之外,你将不得不以某种方式将复选框集合传递给ActionListener。如果你使用一个匿名的,你可以直接引用你的复选框。

 public class MyWindow extends JFrame()
 {
      private List<JCheckBox> checkboxes = new LinkedList<JCheckBox>();
      public MyWindow()
      {
         for (int i = 0; i < numOrders; ++i)
            checkboxes.add(new JCheckBox(String.valueOf(i));
      }
      // Not sure where you're action listener is, but here's the callback
      public void actionPerformed(ActionEvent event)
      {
          for (JCheckBox checkbox : checkboxes)
             System.out.println(checkbox.isSelected());
      }

相关内容

  • 没有找到相关文章

最新更新