【问题标题】:Trying to get model list to display in jList1 when program is run程序运行时试图让模型列表显示在 jList1 中
【发布时间】:2014-01-18 16:58:10
【问题描述】:

我有一个包含书籍的数组列表,每本书都有标题、作者等。我遇到的问题是一旦将该数组转换为模型列表,然后将其显示在 jList1 中程序运行时我的 GUI。

我在下面做的事情是否正确?

public class BookstoreMainScreen extends javax.swing.JFrame {

class Group {

    ArrayList<Object> bookList = new ArrayList<Object>();

    Group() {
        bookList.add(new book("dinosore", "bob", "thus", 40, 310, 34));
    }
}

private DefaultListModel<String> createListModel(ArrayList<String> myListModel) {
    DefaultListModel<String> l = new DefaultListModel<>();
    for (String s : myListModel) {
        l.add(0, s);
    }
    jList1.setModel(createListModel(myListModel));
    return l;
}

编辑:当我运行程序时,我的输出是一个空白列表框,而我想要的是要显示的ArrayList (bookList) 的内容。

【问题讨论】:

  • 你的问题是什么?你能编辑你的帖子说你的输出是什么,你想要的输出是什么?你哪里有问题?
  • 看起来您已经更改了问题中的原始代码,以便它执行其他操作。请不要那样做,真的很烦人!

标签: java swing list user-interface arraylist


【解决方案1】:

仔细查看您的代码...

return 表示,停止处理命令并立即退出该方法,因此return 语句之后的任何内容都不会被执行(finally 块可能例外)

private static DefaultListModel<String> createListModel(ArrayList<String> myListModel) {
    DefaultListModel<String> l = new DefaultListModel<>();

    for (String s : myListModel) {
        l.add(0, s);
    }

    // This causes the. Ethos to exit...
    return l;
    // So these lines won't be executed...
    DefaultListModel jList1 = createListModel(myListModel);
    jList1.setModel(myListModel);

}

话虽如此,如果你喜欢 return 语句到方法的末尾,它将设置一个无限递归方法调用,这将导致 StackOverflowExcception,因为你再次调用 createListModel...

更好的孤例是从方法中删除最后几行并简单地从相同的调用上下文中应用模型...

jList1.setModel(createListModel(myListModel));

例如...

【讨论】:

  • 那么在进行这些更改之后,为了让数组(bookList)显示在我的 gui 上的列表框中需要做的所有事情吗?我以为我必须使用循环或其他东西。在过去的几个小时里,我对一项我认为很简单的任务感到困惑。
  • 您已经在 createListModel 中有一个循环。只要 jList1 的引用与屏幕上的引用相同,那么您应该没有任何问题...
  • 列表显示“项目 1,项目 2”等等,直到 5,在 GUI 的设计中,列表框属性的“模型”字段中应该有什么。对不起,如果我听起来很傻。
  • 在你运行程序之前它不应该改变,但是你的例子中没有足够的代码来知道是否还有其他问题......
猜你喜欢
  • 2021-02-28
  • 2017-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多