2016-02-19 2 views
0

Я получаю исключение NullPointerException при попытке получить доступ к Button из метода initialize().NullPointerException при попытке доступа к кнопке JavaFX

Я выделил строку, которая вызывает исключение.

public class MyController implements Initializable { 
    @FXML 
    public Button connect; 

    public MyController() throws IOException { 
     FXMLLoader loader = new FXMLLoader(getClass().getResource("Layouts/ClientLayout.fxml")); 
     loader.setController(this); 
     Parent root = loader.load(); 
     Stage stage = new Stage(); 
     stage.setScene(new Scene(root, 460, 470)); 
     stage.show(); 
    } 

    @Override 
    public void initialize(URL location, ResourceBundle resources) { 
     connect.setOnAction(e -> { // this line causes the nullpointerexception 
      connect.setDisable(true); 
     }); 
    } 
} 
+0

Вы уверены, что у ClientLayout.fxml есть fx: id для кнопки со связью? – subash

ответ

0

Вы не инициализировали свою кнопку. Проверьте FXML. Он должен содержать правильный Fx: ID:

<Button fx:id="connect" graphicTextGap="2.0" layoutX="716.0" layoutY="274.0" mnemonicParsing="false"> 

Вы должны также определить, что делать, чтобы на действия с добавлением метода OnAction в вашем FXML:

<Button fx:id="connect" graphicTextGap="2.0" layoutX="716.0" layoutY="274.0" mnemonicParsing="false" onAction="#handleConnectButtonAction"> 

и в контроллере вместо ввода это в методе инициализации:

@FXML 
private void handleConnectButtonAction(ActionEvent event){ 
    connect.setDisable(true);   
} 
Смежные вопросы