Как узнать, какой автоматически сгенерированный флажок выбран? - PullRequest
0 голосов
/ 09 декабря 2011

Я должен создать магазин бытовой техники в 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 предметами.Но теперь сложная часть: как узнать, какой флажок выбран ??Так что я могу сделать кнопку сделать заказ.Он может найти только значение последней сгенерированной кнопки (то есть из последнего элемента базы данных)

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!");
           }

Проблема будет решена, если я смогу создать больше флажков с именами переменных, как со счетчиком 'Я из цикла FOR.Тогда я могу проверить, есть ли флажок1, флажок2, флажок3... выбран?Но как?

Заранее спасибо, Дидерик Верстраете, студент-бизнес-инженер Гент

1 Ответ

0 голосов
/ 09 декабря 2011

Вы можете сделать несколько флажков и сохранить их для последующего использования в массиве или коллекции.Если ваш 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());
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...