可以说我有一堂课:
public class Dummy {
private String name;
private String someOtherProperty;
public String getName() {
return name;
}
}
我有一个此类的ArrayList ArrayList<Dummy> dummyList;
是否可以使用对象名称属性作为选择选项来创建JavaFX ComboBox,而无需ArrayList<String>
使用对象名称创建新的JavaFX
ComboBox ?
伪代码:
ObservableList<Dummy> dummyO = FXCollections.observableArrayList(dummyList);
final ComboBox combo = new ComboBox(dummyO); // -> here dummyO.name?
(可选)理想情况下,虽然应该显示名称,但在选择了一个选项后,该名称combo.getValue()
应该返回给我所选的Dummy的引用,而不仅仅是名称。那可能吗?
您可以使用自定义方式cellFactory
来显示适合您需求的项目:
ComboBox<Dummy> comboBox = ...
Callback<ListView<Dummy>, ListCell<Dummy>> factory = lv -> new ListCell<Dummy>() {
@Override
protected void updateItem(Dummy item, boolean empty) {
super.updateItem(item, empty);
setText(empty ? "" : item.getName());
}
};
comboBox.setCellFactory(factory);
comboBox.setButtonCell(factory.call(null));
设置或返回作为指定COMAddIn 对象的基础的对象。Object 类型,可读写。 说明 此属性主要用于使一个COMAddIn 能够与另一个COMAddIn 进行通信。 示例 以下示例返回与 COM 加载项msodraa9.ShapeSelect 相关联的对象。 Dim objBaseObject As Object Set objBaseObject = _ Application.COMAd
我希望将JavaFX属性用于UI绑定,但我不希望它们出现在我的模型类中(请参见在模型类中使用JavaFX.Beans属性)。我的模型类有getter和setter,我想基于这些创建属性。例如,假设一个实例具有和方法,我将编写 希望会触发对的调用。但这似乎不起作用。我错过了什么?
主要内容:JavaFX属性的类型,读/可写属性,只读属性,JavaFX JavaBean,属性更改事件JavaFX属性存储控件的内部状态,并允许我们监听来自JavaFX UI控件的状态更改。JavaFX属性可以彼此绑定。绑定行为允许属性根据来自另一个属性的更改值来同步其值。 JavaFX属性的类型 有两种类型的JavaFX属性: 读写(Read/Writable) 只读(Read-Only) JavaFX的属性包含实际值,并提供更改支持,无效支持和绑定功能。所有JavaFX属性类都位于包命名空间
我试图将Lombok与JavaFX属性结合使用: 这将为属性本身生成getter和setter: null getID():int 集合id(int id) GetIdProperty():SimpleIntegerProperty getName():string setName(字符串名称) GetNameProperty():SimpleStringProperty ... 这在龙目岛支持吗
问题内容: 我熟悉Java,但是刚开始学习JavaFX,尤其是学习JavaFX属性。我了解Oracle的以下示例所示的基本设计模式: 我不明白的是什么时候/为什么要使用getter和setter方法,而不是直接使用Property? 我在想的是,您可能希望在getter和/或setter中有一些自定义代码,这些代码可能对数据做一些前后操作/验证,但是如果您创建自定义getter和/或setter,
我正在维护一个对象。我的对象结构是Id、name和一些其他细节。我需要删除一个带有一些id值的对象,比如(10),我不想遍历列表。有什么解决方案吗?