【问题标题】:Javafx ListView refreshingJavafx ListView 刷新
【发布时间】:2012-06-18 18:53:42
【问题描述】:

有没有办法在 Javafx 2.1 中强制 ListView 刷新而不重新加载列表并更改所选值?

可观察列表由字符串组成,因此更改其值是不可行的。

【问题讨论】:

标签: listview javafx-2


【解决方案1】:

试试:

...
ObservableList<String> olist = ... 
ListView<String> listv = ...
...
listv.setItems(null); 
listv.setItems(olist);

【讨论】:

  • 感谢您的回答。我已经尝试过了,它可以工作,但是当你每秒刷新一次时,它会导致某些字段闪烁,这很烦人。我发现了另一种更精细的方法,可以很好地满足我的需求。如果有人需要,请询问,我会发布它。
  • @betaman,请发布您的解决方案 - 我遇到了同样的问题 :( 谢谢!
  • @bennyl 在我上面发布的 Jira 链接中有很多解决方案,比我的更好。选择一个并借此机会投票,以便他们在未来的 Javafx 版本中修复它。 javafx-jira.kenai.com/browse/RT-22599
  • @MustafaErdemKöşk 我刚刚用我的代码发布了一个答案。希望对您有所帮助。
【解决方案2】:

SimpleStringProperty之类的属性包装字符串值并更改此属性的值应该是可行的。

【讨论】:

  • 谢谢乌鲁克。这是一个可能的解决方案。但我非常希望 ListView 和 TableView 中有某种“刷新”命令
  • 我刚刚创建了它:javafx-jira.kenai.com/browse/RT-22599。任何希望实现此功能的人都可以访问该地址并为该功能投票。
【解决方案3】:

我用:

private static final ObservableList<String> lists = FXCollections.observableArrayList();
...


synchronized(lists) {
        List<String> lsts = new ArrayList<>();
        lsts.addAll(lists);
        lists.clear();
        lists.addAll(lsts);            
    }

【讨论】:

  • 什么是synchronized
猜你喜欢
  • 2017-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多