初始化方法中@FXML对象为空

时间:2015-12-16 19:16:36

标签: javafx-8

我有一个(缩短的)java FX类:

public class MyReportController extends
    javafx.application.Application implements Initializable {

@FXML
private CustomTextField autoTextField;
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {


    TextFields.bindAutoCompletion(autoTextField, ServiceLocator
            .getInstance().getMeasurementService()
            .getAllMeasurementNumbers());
}......

调用initialzie方法,但autoTextField(以及所有其他FXML组件)为空。

Application使用main方法从另一个类启动。 首先,我在控制器类中使用了带有结果的主方法,控制器类被实例化了两次。 我认为我目前的问题与此有关。

1 个答案:

答案 0 :(得分:1)

您必须在FXML中使用相同的fx:id声明作为要注入的属性名称。例如,在FXML中,CustomField控件声明应该具有fx:id=autoTextField。这种方式依赖性将在初始化时受到损害。

第二件事,请不要使用扩展Application的控制器类。这里没有任何意义。从控制器的不同类启动应用程序,并且FXMLLoader

将自动创建一次控制器类实例