【问题标题】:Refreshing a JList to show new items being added to ArrayList刷新 JList 以显示添加到 ArrayList 的新项目
【发布时间】:2015-02-07 15:26:48
【问题描述】:

我正在设计一个 GUI,用户只需添加船的名称就可以将新船添加到系统中。新船的名称将存储在 ArrayList 中。在我的 GUI 设计中,我实现了一个使用船舶 ArrayList 作为数据的 JList。实现背后的想法是,当向系统添加新船时,JList 也将更新为 JList 中新船的名称。我确定船名已添加到 ArrayList 中,因为在将其作为输出打印时,它会显示,但是,它确实会显示在 JList 上。

我可能在想,有没有我可以制作的刷新方法(如果是这样的话)或调用来刷新框架,因为我假设问题是它需要刷新框架才能更新 JList ?

【问题讨论】:

  • 您需要设置一个新模型,或者让模型触发相应的事件。 AbstractListModel 拥有所有 fireXXX 方法。
  • This question 可能会帮助你

标签: java swing user-interface arraylist


【解决方案1】:

以下是您可能正在寻找的一些 sn-ps 代码:

假设 ArrayList 已经有一些数据开始:

DefaultListModel model = new DefaultListModel();
for(String ship: yourArrayList)
    model.addElement(ship);

list = new JList(model);

然后添加一个函数,将船舶添加到 ArrayList 和 JList:

public void addShip(String ship) {
    yourArrayList(ship);
    ((DefaultListModel) list.getModel()).addElement(ship);
}

现在,当您想添加飞船而不是调用 yourArrayList.add(...) 时,您可以调用 addShip(...)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-05
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    相关资源
    最近更新 更多