问题标签 [observablelist]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
321 浏览

javafx - 可变对象属性监听

如果我有一个SortedList<PlanItem>按它们排序的对象IntegerProperty rankProperty,并决定编辑这些项目(在它们的源列表中),我怎么知道发生了变化?list.get(2).setRank(3)例如,如果我使用,那么我需要 SortedList 来响应并重新排列自己。我不打算逐个浏览并为它们的属性添加一个侦听器。例如,可能有 30 个属性。我只想让 ObsList 知道发生了变化。

到目前为止,我知道的唯一方法是将 PlanItems 视为不可变的,并且仅在编辑索引上使用 set()。这样,SortedList 确实会捕捉到变化。但我想让我的 PlanItems 可变。它使编码逻辑更容易(尽管不是非常线程安全)。

更新:以下在 ListChangeListener 中触发 wasUpdated()。我只希望它触发一次。

0 投票
0 回答
1268 浏览

javafx - javafx - 如果我更改 ObservableList 的属性,表不会更新

我有这个项目:

和一张桌子:

我还有一个按钮,而不是添加一个项目:

另一个修改第一行的文本:

如果我按下 modifyPerson 按钮更新文本,我可以在第一行看到修改,但如果在我添加新项目之前按下 addPerson 按钮,表格不再刷新。我打印了可观察列表,并且该项目已正确更新,但单元格保持旧值。获得修改的唯一方法是删除并添加一个新项目(请参阅 modifyPerson() 上的 2 个注释行

提前致谢。

这里是完整的代码: 文件 Person.java

文件FXMLDocumentController.java

这里的文件Table.java

并且比 FXML FXMLDocumen.fxml

0 投票
1 回答
736 浏览

tableview - JavaFX8:字符串不显示在 TableView 中

我有以下问题:我尝试用数组填充 JavaFX8 中的 tableview。所以,我尝试将数组作为一行添加到 tableview 中。当按下回车键时,我在我的 FXML 文件的控制器中运行此代码。这是代码:

transactionOverview 是我的表格视图,而 String[] 只是我的实际 String[] 的占位符。我尝试以多种方式创建我的表格视图:

它们都不起作用。问题是 tableview 获得了一个额外的行,我可以选择它,但是现在 tableview 中可以看到字符串值。不知道有没有加进去。

我的代码基于Javafx 2.2 - 动态表格视图 - 表格数据(来自 Jitendra Pareek 的回答),我选择了这个解决方案,因为我不想使用额外的类来填充我的表格视图。

任何帮助表示赞赏!

0 投票
1 回答
6148 浏览

java - JavaFX 我无法通过 observableList 填充 tableview

我在填充 Tableview 时遇到问题。当我运行此代码时,我的 tableview 具有与 Observablelist 相同数量的记录,但没有任何内容可见。

任何想法?一个不理解一些像 cellvalueProperty。这对我的例子有用吗?谢谢。

0 投票
1 回答
675 浏览

java - jSoup 从网页中获取数据并在 JavaFX TableView 中显示

我想从此网页获取日期、距离和鳍列:http ://www.gbgb.org.uk/raceCard.aspx?dogName= Ballymac%20Monleek 并在 JavaFX 的 TableView 中显示该数据。

我将如何使用 jSoup 选择指定的列,然后将这些列放入 TableView?

我当前的代码只能从该网页中获取“Fin”列 - 我发现很难弄清楚如何获取其他两列,然后我不确定如何将它们放入可观察列表中显示在表格视图中。

谢谢罗伯

0 投票
1 回答
829 浏览

java - ObservableList:如何可靠地检测 setAll?

在某些情况下,有必要检测 - 在 ListChangeListener 中,无需控制列表本身 - “所有数据已换出”,即当我们需要清除某些状态(如选择)时 - 在全新数据上,旧状态毫无意义。

全新的数据可以通过

  • list.setAll(...)
  • list.set(otherObservableList) 如果列表是 ListProperty

考虑可以在 setAll 上触发哪种类型的更改(c 是更改,items 是观察到的列表,“subChangeCount”伪代码用于计算子更改):

这似乎允许进行实用程序检查,例如:

相比之下,内部 fx 代码, fi 在收听 ComboBox 的项目时:

存储旧的 itemCount 并将其与当前的 removedSize 进行比较(我对此感到不舒服,旧的状态对于我的口味来说太陈旧了),但是我很有可能在我的方法中遗漏了一些东西。

问题是:

在哪种情况下我的实用程序方法会失败(核心方法会正确检测到 setAll)?

0 投票
1 回答
3190 浏览

javafx - JavaFx - 在包含 ObservableList 的 TableView 中显示对象

我有一个类Person,它在其他属性中包含一个ObservableList<Car>. 现在我想在 a 中显示数据TableView,使其看起来像这样:

如何让 JavaFX 提取类列表Person并为该列表中的每个项目创建一行?

0 投票
3 回答
14840 浏览

listview - JavaFX 排序 ListView

我的应用程序中有一个 ListView,我想对条目进行排序。如果添加了新条目,我还希望列表自动排序。

为此,我使用了一个 SortedList。Java API 说“ObservableList 中的所有更改都会立即传播到 SortedList。”。

当我在下面运行我的代码时,命令行的输出正是我所期望的。但是 ListView 没有排序。

我怎样才能做到这一点?谢谢!

命令行输出:

0 投票
1 回答
218 浏览

java - OutOfMemoryError 和 ObservableList 进入 ComboBox 的问题

我在 javafx2 中制作了一个 fxml 文件。

我有一个 Person 对象列表。此列表的名称是Entries。我有一个 ObservableList myObservableList,. 在这里面我想贴标签。每个标签必须包含一对图像人物和他的名字的文字。我写了这段代码:

它工作正常,但是在放置了一些图像之后,JVM 给了我以下错误消息:

此错误来自代码行 image1 = new Image("file:"+currentEntry.getIcon());

最后,我想将 myObservableList 的所有元素放入一个 ComboBox 项中。为此,在 java 控制器的 Initialize 方法中,我写了:

我确信我在 javafx 方面没有足够的经验,而且我不知道我必须如何处理,因为我有一个组合框,在所有项目的同一单元格中都有一对图标和文本。

我要非常感谢 Peter Duniho 和 PakkuDon 帮助我提高文本中的英语水平。

0 投票
1 回答
2419 浏览

java - 为什么 JavaFX 中没有 ObservableQueues?

为什么 JavaFX 中没有 ObservableQueue?如果我们查看 FXCollections 的 Java 9 文档(只是想看看 8 是否有任何更改),我们会看到用于创建 Observable 集、列表和映射的静态辅助方法。还有一些方法可以创建 Observable 浮点和整数数组。但是,没有办法创建 ObservableQueue。Java中的Queue接口有很多有趣的实现,包括ArrayDeque、DelayQueue、ConcurrentLinkedQueue、PriorityQueue等。JavaFX中不支持创建ObservableQueues背后的逻辑是什么。