Tag: observablelist

使用HashMap填充TableView,HashMap将在HashMap更改时更新

我关注过这篇文章 使用tableview绑定hashmap(JavaFX) 并创建了一个由HashMap数据填充的TableView。 TableView通过从map.entrySet()创建一个ObservableList并将该ObservableList移交给TableView的构造函数,从名为map的HashMap接收其数据。 (代码如下) 但是,虽然它是带有SimpleStringProperty的ObservableList ,但是当对底层HashMap进行更改时,TableView不会更新。 这是我的代码: public class MapTableView extends Application { @Override public void start(Stage stage) throws Exception { try { // sample data Map map = new HashMap(); map.put(“one”, “One”); map.put(“two”, “Two”); map.put(“three”, “Three”); // use fully detailed type for Map.Entry TableColumn<Map.Entry, String> column1 = new TableColumn(“Key”); column1.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Map.Entry, String>, ObservableValue>() […]

复制ObservableList java

我有一个MasterData,它是一个ObservableList和filteredData,它也是一个ObservableList。 然后,我想用它来设置filter时显示过滤后的数据 ,但也可以在必要时恢复 ,这里是MCVE: package br; import javafx.collections.FXCollections; import javafx.collections.ObservableList; public class Main{ private static ObservableList masterData = FXCollections.observableArrayList(); private static ObservableList filteredData = FXCollections.observableArrayList(); static Filter filter = new Filter(); public static void addDummy(){ masterData.add(new Foo(“a”,1)); masterData.add(new Foo(“aa”,3)); masterData.add(new Foo(“b”,2)); masterData.add(new Foo(“bb”,4)); masterData.add(new Foo(“c”,3)); } public static void printData(ObservableList list){ for(Foo f: list) System.out.println(f.getName()); […]

为什么JavaFX中没有ObservableQueues?

为什么JavaFX中没有ObservableQueue? 如果我们查看FXCollections的Java 9文档(只是为了查看是否有任何更改),我们会看到静态帮助器方法来创建Observable集,列表和映射。 还有一些方法可以创建Observable浮点数和整数数组。 但是,无法创建ObservableQueue。 Java中的Queue接口有许多有趣的实现,包括ArrayDeque,DelayQueue,ConcurrentLinkedQueue,PriorityQueue等。为什么不支持在JavaFX中创建ObservableQueues的原因是什么。

Javafx tableview包含来自多个类的数据

我用1类不同的数据填充我的tableview没有问题。 但是对于我来说,多个class级并不适用。 知道如何解决这个问题吗? 我在stackoverflow上检查了类似的问题。 但他们都不能帮助我。 如果您对“Callback”类提出任何建议,请向我提供完整的导入,因为那里有几个Callback类。 public class MainViewController implements Initializable { @FXML private TableColumn colErledigt; @FXML private TableColumn colPrioritaet; @FXML private TableColumn colBeschreibung; @FXML private TableColumn colProjekt; @FXML private TableView tblView; public final void initialize(final URL location, final ResourceBundle resources) { initializeTableElements(); } public final void initializeTableElements() { colBeschreibung .setCellValueFactory(new PropertyValueFactory(“description”)); colPrioritaet .setCellValueFactory(new PropertyValueFactory(“priority”)); […]

在JavaFX中使用ObservableList是否违反模型 – 视图 – 控制器分离?

我正在尝试研究JavaFX,因为我想将它用作我程序的GUI。 我的问题基本上是概念性的: 到目前为止,我的程序主要是MVC模式的“模型”部分; 也就是说,我的几乎所有代码都是类的意义上的抽象的OO表示,所有代码都是逻辑代码。 由于我不想成为我的程序的唯一用户,我想添加MVC的“视图”部分,以便人们可以轻松地使用和操作我的程序的“模型”部分。 为此,我想使用JavaFX。 在我的“Model”类中,我显然使用了Java Collections API中的各种Lists,Maps和其他类。 为了让我的程序的用户操作这些底层列表和地图,我想在JavaFX中使用Observable(List / Map)接口。 澄清情况的一个具体例子: 假设我有一个MachineMonitor类,每3分钟检查一次机器的某些属性,例如连接是否仍然良好,齿轮转速等等。如果满足某些不等式(比如说速度的话)齿轮下降到1转/秒的速度) MachineMonitor触发RestartMachineEvent。 目前我使用ArrayList < MachineMonitor >来跟踪所有单独的MachineMonitor 。 现在扩展到MVC的“视图”部分,我希望用户能够操作显示MachineMonitor列表的TableView,以便他们可以创建和删除新的MachineMonitor来监视各种机器。 这样我就可以跟踪我的程序用户想要做什么(比如,为机器#5创建一个MachineMonitor来检查齿轮的转/秒是否低于0.5)我使用ObservableList < MachineMonitor >作为TableView的基础List。 链接程序的“模型”和“视图”的最简单方法就是将“模型”类更改为具有ObservableList < MachineMonitor >而不是ArrayList < MachineMonitor >但是(转到问题的主题)我觉得这非常混乱,因为它混合了“模型”和“查看”代码。 一种天真的方法是为TableView使用ObservableList < MachineMonitor >并保留我的ArrayList < MachineMonitor >的使用。 但是,根据JavaFX规范,对ObservableList < MachineMonitor >所做的更改不会影响基础List。 鉴于此,是解决这个难题的最佳方法是为ObservableList < MachineMonitor >创建一个ChangeListener, 它将对ObservableList < MachineMonitor >所做的更改“传播”到底层的“Model”ArrayList < MachineMonitor >? 也许把它放在一个名为MachineMonitorController的类中? […]

如何序列化ObservableList

我正在开发一个javaFx项目,我们必须使用ObservableList来添加Listners。 ObservableList包括人员模型。 但我想通过序列化将整个ObservableList对象存储在一个文件中。 但它给了我一个例外 。 我还对对象Model上的序列化表示赞同,但没有运气。 是否有任何序列化ObservableList的方法? EmployeeModel package com.company.Model; import javax.persistence.*; import java.io.Serializable; /** * Created by Sunny on 1/8/2016. */ @Entity @Table(name = “Employee”, schema = “”, catalog = “PUBLIC”) public class EmployeeEntity implements Serializable { private String empId; private String empAddress; private String empNumber; private String empFirstName; private String empLastName; public EmployeeEntity(String […]