如何在没有属性getter的情况下使用FXML创建类实例

时间:2017-11-17 09:48:06

标签: java javafx properties fxml fxmlloader

我有一个自定义类,我使用JavaFX FXML加载器来创建对象。

我可以使用带有count属性的setter的简单测试类重现我的问题:

public class MyBlock {
    int count;
    public MyBlock(){

    }
    public void setCount(int i){
        count = i;
    }
}

FXML文件是:

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import com.mycode.io.base.*?>
<?import com.mycode.io.elements.*?>


<Header fx:id="header"  xmlns:fx="http://javafx.com/fxml/1" >
    <children>
        <MyBlock fx:id="chartWindow" count="5"/>
    </children>
</Header>

当我运行应用程序时,我收到错误,指向&#34; MyBlock&#34; FXML中的一行。

  

javafx.fxml.LoadException:

我对FXMLLoader的理解是它使用setter来设置属性。我花了一段时间才弄清楚错误是由于我没有count属性的吸气剂造成的。因此,通过将getter代码添加到我的类中,一切都很完美。

public class MyBlock {
    int count;
    public MyBlock(){

    }
    public void setCount(int i){
        count = i;
    }
    // added getter
    public int getCount(){
        return count;
    }
}

我已经阅读了Java FX 8.0 FXML简介以及&#34; Property Elements&#34;他们提到你需要一个二传手,但没有提到需要一个吸气剂。

我的问题有两个问题。为什么FXMLLoader需要getter才能使用setter?有没有办法使用FXML加载器而不必为每个属性编写getter。

0 个答案:

没有答案