问题标签 [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.
java - Java Observablelist 副本
我有一个要克隆的 ObservableLists 列表,但是以这种方式,如果我调整克隆列表中的数据,它不会更改主列表上的数据。
每当我打电话
它还从 mainData 列表中删除数据。我不太明白为什么它不起作用。
javafx - JavaFX:在鼠标单击时突出显示 VBox 并在未聚焦时更改颜色
当我进行鼠标单击事件时,我想更改 VBox 的背景(聚焦)颜色,而其他(兄弟)应该更改为另一种(未聚焦)颜色。
所以,我在下面这样编码..
首先,我用一些 VBox 制作了一个 ObservableList。
但是,一旦我单击 menuVBox1,就会发生空指针异常。
请帮我这个..
java - 收集器 lambda 返回可观察列表
Collectors 是否可以向我返回 ObservableArrayList?有点像这样:
javafx - 在过滤器 TextField 中输入文本时,ListView 没有变化
编辑 ---显示对象类,在初始化方法中添加代码,删除以前的过滤器方法,并从 FXML 中删除 TextField 的 OnAction。---
我第一次尝试解决这个问题导致了许多 Android 问题,所以我在这里。
我使用 JavaFX、Scenebuilder 和 FXML 制作了一个简单的 GUI。此 GUI 模拟工厂车间的库存,并且可以从ObservableList
. 它还应该根据String
用户在 a 中输入的部分 s过滤对象TextField
。
这在该程序的前身中很简单,因为它都是通过命令行完成的;但是,我遇到了一个以前从未见过的新问题。
每个对象打印一个带有用户指定前缀的伪随机 ID 号(F 代表花,W 代表杂草,H 代表草本,Fn 代表真菌)、名称、颜色和布尔属性,例如“荆棘”、“香味” ,“可食用”等。这些由单选按钮确定。例如,如果用户输入一个新花的所有值,它会打印为:“ID:F-21,名称:玫瑰,颜色:红色,刺?假,香味?真”
这是我最初的 ObservableList 和 FilteredList:
这是我的 Plant 类和一个子类(有 4 个完全相同)以显示它们在列表中的显示方式(布尔值是单选按钮):
子类
由于下面答案中的建议,这就是我在初始化方法中的内容。问题是没有任何改变:
我的目标是实时过滤 ObservableArrayList,而不是使用一个按钮来过滤和显示新场景中的项目。我已经看到了这个实现,并且非常喜欢这个功能。
感谢您提供的任何帮助。
javafx - 维护可观察列表的副本
我正在尝试在表视图上创建撤消重做功能。为此,我尝试制作可观察列表(表视图数据)的副本并将其保持为原始以供进一步参考。
现在,我对 所做的任何更改都table
应该只反映在tableData
而不是originalList
. 但是两个列表都带有更新的数据。
控制台中的输出是
如何维护不应更新的原始副本?
PS:我只有 Observable 列表tableData
作为输入,无论我得到的值是什么来源tableData
,我都不能使用相同的来源来填充originalList
。
javafx - 是否可以创建只读的可观察列表?
我有可观察的列表ObservableList<Integer> list = FXCollections.observableArrayList()
。
在 getter 方法中,list
我想返回只读的可观察列表,例如:
然后收听只读列表
所以基本上我想返回与原始列表同步的 ObservableList 列表,以便用户可以注册ListChangeListener
和观察更改事件,但同时防止用户更改原始列表。
java - JavaFX 的 ListChangeListener.Change.getRemoved() 可以返回不连续的项目吗?
问题
当从 中删除项目时,会触发ObservableList
一个更改事件getFrom()
,其中给出了删除的位置并getRemoved()
给出了已删除项目的列表。文档说:
该
getRemoved()
方法返回已被替换或从列表中删除的元素列表。
它没有这样说明,但我认为它暗示项目列表是原始列表的连续子列表。我已经用这个假设写了很多代码,但是现在遇到了TreeTableView
's selection model 的困难,它的行为不是那样的。
例子
以具有三个“节点”行的简单树表为例。如果我选择这三行...
...然后单击并仅选择中间行...
...触发的更改事件treeTableView.getSelectionModel().getSelectedItems()
如下所示:
在单个更改事件中,它报告“节点 1”和“节点 3”已从selectedItems
列表的索引 0 中删除。
我本来希望该Change
对象有两个单独的删除事件,由next()
调用分隔。第一次调用next()
会告诉我“节点 1”在索引 0 处被删除,第二次调用next()
会告诉我“节点 3”在索引 1 处被删除。但是不,我得到一个事件,两行都在一次。
问题
真的可以getRemoved()
退回不连续的物品吗?这是我对列表更改事件如何工作的误解,还是其中的一个错误TreeTableView
?
通常我会犹豫归咎于标准库,但这不会是我在 JavaFX 中发现的第一个错误,所以这并非不可想象。
更新
如果我添加对 的调用setShowRoot(false)
,则行为会发生变化。我得到了我的期望,删除分为两部分:
另外,这是我的MCVE:
java - 配置扫描本地文件系统的 TreeView 以仅包含具有文件类型的文件夹
好的,所以我使用了该网站 http://www.java2s.com/Tutorials/Java/JavaFX/0660__JavaFX_Tree_View.htm的第二个代码块,其中指出“以下代码从本地文件系统创建动态树”
我不明白这段代码是如何工作的,以便根据我的需要对其进行自定义。特别是最重要的方法,似乎没有一个地方可以添加“仅将文件夹添加到包含 mp3 文件的子目录”中。我认为它可能需要更复杂的东西,例如通过并删除文件夹的东西。老实说,我不确定。
我试图在我的程序中使用这段代码来显示 mp3 文件。这个想法是让两个treeViews并排,左侧显示文件夹的层次结构到其中包含mp3文件的文件夹(并且不显示其中没有mp3文件的其他文件夹),右侧显示文件这些文件夹中只有 mp3 文件类型。下面有一个截图。
这是我到目前为止在 VBox 中返回 TreeView 的代码。有两段代码被注释掉了。首先是由于java: 在目录和子目录中根据文件名搜索文件不希望搜索我的 C: 驱动器。(我不知道为什么)。所以我把它改成了只扫描我的 D:(分区驱动器)。第二个来自我获得主要代码段的网页。此代码已移至处理的外部类。以及处理多个驱动器的厚颜无耻的代码。
java - 具有来自多个类的数据的 Javafx 表视图
我用 1 类的不同数据填充我的 tableview 没有问题。但它不适用于我的多个课程。知道如何解决吗?我已经在 stackoverflow 上查看了类似的问题。但他们都无法帮助我。如果您对“回调”类提出任何建议,请向我提供完整的导入,因为那里有几个回调类。
进一步的问题:如何在 TableCell 的 HashSet 中显示实例的某个属性。所以我在我的TaskControl 类中有一个HashSet。在那个 HashSet 中有“ProjectControl”类的实例。ProjectControl 的每个实例都具有“name”或“id”等属性。
如果可能的话,我想在 1 个表格单元格中表示项目实例的所有名称。也许作为一个用逗号分隔的字符串(project1,project2,project3 ...)。
任务类(缩短了很多)我的TaskControl类继承自这个类
javafx - 表格未更新为新行
我终于把内容放到了我的表中(因为我已经掌握了这个谜团很久了!)。现在我想向列表中添加新项目并自动更新表格。我认为 ObservableList 可以解决问题,但似乎还有更多。你能给我一个解决方案吗?
控制器类:
FXML: