【问题标题】:Encapsulate JavaFX properties in NetBeans 8?在 NetBeans 8 中封装 JavaFX 属性?
【发布时间】:2023-09-29 16:41:01
【问题描述】:

这是我在 * 上的第一个问题,所以我希望这不是一个愚蠢的问题 :-)

有没有办法在 NetBeans 8 中自动封装 JavaFX 属性?

假设我们要封装这个字段:

private SimpleIntegerProperty id;

当我进入 Refactor > Encapsulate Fields 时,我得到这些行:

public SimpleIntegerProperty getId() {
    return this.id;
}

public setId(SimpleIntegerProperty id) {
    this.id = id;
}

但我想得到那个:

public Integer getId() {
    return id.get();
}

public void setId(Integer id) {
    this.id.set(id);
}

public SimpleIntegerProperty idProperty() {
    return id;
}

有简单的方法吗? 谢谢。

【问题讨论】:

    标签: java netbeans properties javafx encapsulation


    【解决方案1】:

    无需重构,您只需转到 Source->Insert Code 并选择 Add JavaFX Property。 然后,在对话框中,为您的属性命名,即id,如有必要,请提供默认值,选择属性类型,即IntegerProperty,然后单击确定。

    那么这就是你得到的:

    private final IntegerProperty id = new SimpleIntegerProperty();
    
    public int getId() {
        return id.get();
    }
    
    public void setId(int value) {
        id.set(value);
    }
    
    public IntegerProperty idProperty() {
        return id;
    }
    

    最后,如果需要,您可以手动将简单类型int 更改为Integer

    【讨论】:

    • 我怎么在上下文菜单中没有“添加JavaFX属性”选项?