2011-12-09 9 views
0

私はハードウェアショップをJavaで作成する必要があります。ここで、顧客は、リストから注文したいアイテムをチェックボックスで選択し、数量をスピナーで選択することができます。私が手どの自動生成チェックボックスが選択されているかを調べる方法は?

 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); 

:私はこれが私のforループであるため、ループ(アイテムがデータベースにクエリから来て、ArrayListの中に戻る)

を通じて項目のリストを生成することができます10以上のアイテムで素敵なboxlayout。 しかし、今は難しい部分:どのチェックボックスが選択されているかを知る方法は?だから私はボタンを作ることができます注文。 それが唯一の私が「私はカウンターと同じように、variabel名でより多くのチェックボックスを作ることができるならば、問題が解決されるだろう(そのデータベースの最後の項目から)最後に生成されたチェックボタン

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のいずれかをチェックできます。 ..選択されていますか? どのように?事前に

おかげで、 Diederik Verstraete 学生ビジネスエンジニアゲント

答えて

0

あなたは複数のチェックボックスを作成し、配列またはコレクションで後で使用するためにそれらを保存することができます。上記のクラスの外部に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()); 
     } 
+0

すみません、ありがとう、私はそれを動作させることができると思います。しかしisChecked()メソッドは動作しません。また、checkboxes.add(新しいJCheckBox(i));整数ではなく値としての文字列が必要なので間違っています。 – user1090211

+0

大丈夫ですが、あなたはそのアイデアを得ていますよね? Editted - あなたはisSelected()を使うことができます。 – jeff

関連する問題