2012-12-25 30 views
2

我想知道如何打印JComboBox內的所有項目。我不知道如何去做這件事。我知道如何打印出所選的項目。我只需要它,當我按下按鈕時,它會打印出JComboBox中的每個選項。如何打印JComboBox中的所有項目?

+0

將表明我們一些關於你的項目,它們是什麼,以及如何操縱它們......這將是更好 – Parth

+4

簡單地得到通過'getModel其模型()'然後通過模型中使用可用的方法進行迭代從模型*必須*實現的'javax.swing.ListModel'接口。 –

回答

9

入住這

public class GUI extends JFrame { 

    private JButton submitButton; 
    private JComboBox comboBox; 

    public GUI() { 
     super("List"); 
    } 

    public void createAndShowGUI() { 

     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setLayout(new FlowLayout()); 
     submitButton = new JButton("Ok"); 
     Object[] valueA = new Object[] { 
      "StackOverflow","StackExcange","SuperUser" 
     }; 
     comboBox = new JComboBox(valueA); 

     add(comboBox); 
     add(submitButton); 
     submitButton.addActionListener(new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent e) { 
       ComboBoxModel model = comboBox.getModel(); 
       int size = model.getSize(); 
       for(int i=0;i<size;i++) { 
        Object element = model.getElementAt(i); 
        System.out.println("Element at " + i + " = " + element); 
       } 
      } 
     }); 
     pack(); 
     setVisible(true); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       GUI gui = new GUI(); 
       gui.createAndShowGUI(); 
      } 
     }); 
    } 
} 
4

我知道這是一個老問題,但我發現它更容易跳過ComboBoxModel中。

String items = new String[]{"Rock", "Paper", "Scissors"}; 
JComboBox<String> comboBox = new JComboBox<>(items); 

int size = comboBox.getItemCount(); 
for (int i = 0; i < size; i++) { 
    String item = comboBox.getItemAt(i); 
    System.out.println("Item at " + i + " = " + item); 
}