【问题标题】:Printing all content of a JList as output打印 JList 的所有内容作为输出
【发布时间】:2014-12-07 15:48:02
【问题描述】:

我的 GUI 中有一个 JList,它使用 ArrayList 作为数据:

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

我有一个按钮 - List all Cruises,一旦点击它就会显示为输出:

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

然而,点击按钮后,它只显示selected列表选项作为输出。

这是我目前所拥有的:

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

如何在单击按钮后打印出列表中的所有元素?

【问题讨论】:

  • 请学习常见的 Java 命名法(命名约定 - 例如EachWordUpperCaseClassfirstWordLowerCaseMethod()firstWordLowerCaseAttribute,除非它是 CONSTANT)并始终如一地使用它。

标签: java swing user-interface jlist


【解决方案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);

【讨论】:

  • 完美运行!感谢您的帮助,非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-25
  • 1970-01-01
  • 1970-01-01
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
  • 2013-03-20
相关资源
最近更新 更多