1

在 Pro JavaFX 2.0 书的“牛铃”示例中,单选模型声明如下:

public SingleSelectionModel genreSelectionModel;

然后稍后在没有构造函数的情况下使用实例。

public void addListenerToGenreSelectionModel {
    genreSelectionModel.selectedIndexProperty().addListener(...); };

我的问题是newfor在哪里SingleSelectionModel?正如我所看到的,变量只是被声明但对象没有被创建,就像前面例子中的 IntegerProperties 一样。

4

1 回答 1

1

变量不是genreSelectionModel由另一个函数调用初始化的吗?

喜欢 :

    genreSelectionModel = listView.getSelectionModel()

编辑: 在快速查看谷歌书籍(第 26-29 页)在线提供的示例后,您所指的似乎是类中字段的声明。这不必在类内部初始化。您可以将其视为一个类属性,一旦您声明了自定义类型的对象(包含未初始化的变量),您就可以稍后在程序中给它一个值

现在,不要误会我的意思,如果你试图在没有初始化的情况下访问这个属性,它将返回一个空指针异常。但是正如书中所做的那样,您可以创建一个对象,然后用另一个函数返回的值初始化变量。

    AudioConfigModel acModel = new AudioConfigModel();

    acModel.genreSelectionModel = genreChoiceBox.getSelectionModel();
    acModel.genreSelectionModel.selectFirst();

在第一行,genreSelectionModel 属性为空。在第二行有一个可见性的空白行在第三行,您在属性中放入了对genreChoiceBox 自己的selectionModel 的“引用”。然后在第四个你调用你刚刚实例化的属性上的一个函数

于 2013-07-29T07:05:29.957 回答