2014-12-07 31 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