2014-12-07 58 views
2

我在GUI,它使用一個ArrayList數據有JList打印JList中的所有內容輸出

ArrayList Cruise = new ArrayList(); 
    Cruise.add("Scottish to Greek Waters"); 
    Cruise.add("Greek to Scottish Waters"); 

    JScrollPane scrollPane = new JScrollPane(); 
    CruiseList = new JList(Cruise.toArray()); 
    CruiseList.setPreferredSize(new Dimension(200, 200)); 
    scrollPane.setViewportView(CruiseList); 
    CruiseList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
    CruiseList.setSelectedIndex(0); 
    CruiseList.setVisibleRowCount(6); 
    listPanel.add(scrollPane); 
    Frame1.setVisible(true); 

我有一個按鈕 - 列出所有郵輪,其中一次點擊應顯示此作爲輸出:

"Scottish to Greek Waters" 
"Greek to Scottish Waters" 

然而,當點擊該按鈕時,它僅顯示所選列表選項作爲輸出。

這是我到目前爲止有:

listallCruises.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent event) { 
     String AllCruises = CruiseList.getSelectedValue().toString(); 
     System.out.print("All Cruises:\n" + AllCruises + CruiseList.getModel() + "\n"); 
    } 
}); 

如何在點擊按鈕,打印出的所有元素列表中?

+0

請了解常見的Java命名(命名約定 - 例如'EachWordUpperCaseClass','firstWordLowerCaseMethod()' ,'firstWordLowerCaseAttribute',除非它是'CONSTANT')並且一致地使用它。 – 2014-12-07 16:08:32

回答

1

由於您正在調用的方法是getSelectedValue(),所以您正在輸出所選值。

來顯示所有的值,你必須得到的模型,並通過迭代值,就像這樣:

int size = CruiseList.getModel().getSize(); 
StringBuilder allCruises = new StringBuilder("All cruises:"); 
for(int i = 0; i < size; i++) { 
    allCruises.append("\n").append(CruiseList.getModel().getElementAt(i)); 
} 
System.out.print(allCruises); 
+0

工作完美!感謝您的幫助,非常感謝。 – Freddy 2014-12-07 16:13:36