相关疑难解决方法(0)

在模型类中使用javafx.beans属性

在模型类中使用JavaFX bean属性是否正确?

我想知道在模型类中使用属​​性是否能够更容易地使用视图组件绑定它们是一个好习惯.我不担心将来这些库的可用性,因为我的程序将在JRE8或更高版本上运行,但在模型类中使用JavaFX库的性质让我持怀疑态度,我担心当前和未来的不兼容性,特别是因为我想使用Hibernate来持久保存这些属性.

注意:我使用纯JavaFX环境,在我的应用程序中永远不需要Swing兼容性.

java persistence hibernate model javafx

24
推荐指数
2
解决办法
1万
查看次数

JavaBean包装与JavaFX属性

我想将JavaFX属性用于UI绑定,但我不希望它们出现在我的模型类中(请参阅在模型类中使用javafx.beans属性).我的模型类有getter和setter,我想根据这些创建属性.例如,假设一个实例bean用的方法String getName()setName(String name),我会写

 SimpleStringProperty property = new SimpleStringProperty(bean, "name")
Run Code Online (Sandbox Code Playgroud)

期待这property.set("Foobar")会触发一个电话bean.setName.但这似乎不起作用.我错过了什么?

java model-view-controller model javafx javabeans

21
推荐指数
1
解决办法
8676
查看次数

在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的基础列表.

链接程序的"模型"和"视图"的最简单方法就是将"模型"类更改为具有ObservableList < MachineMonitor >而不是ArrayList < MachineMonitor >但是(转到问题主题)我觉得这非常混乱,因为它混合了"模型"和"查看"代码.

一种天真的方法是对TableView 使用ObservableList < MachineMonitor >并保留我的ArrayList < MachineMonitor >的使用.但是,根据JavaFX规范,对ObservableList < MachineMonitor >所做的更改不会影响基础List.

鉴于此,是为了解决这一难题,以便为ObservableList一个ChangeListener的最佳方式< MachineMonitor >该"传播"到ObservableList <所做的更改MachineMonitor >到底层"模型"的ArrayList < MachineMonitor >?也许把它放在一个名为MachineMonitorController的类中?

这种临时解决方案看起来非常混乱且非理想.

我的问题是:在这种情况下,保持"模型"和"视图"之间几乎完全分离的最佳方法是什么?

java model-view-controller javafx arraylist observablelist

12
推荐指数
2
解决办法
3488
查看次数