JavaFX: NullPointerException при вызове метода - PullRequest
0 голосов
/ 16 мая 2018

У меня проблема в том, что когда я вызываю свой метод loginerroroutput в контроллере Java из другого класса в другом пакете. Я не могу изменить метку (fx:id="loginerrormessage") с помощью setText. Я получаю NullPointerException как ошибку. Метод вызывается, но метка не найдена. Когда я вызываю этот метод (loginerroroutput) через метод моего контроллера, он работает.

Код контроллера

package gui;


import javafx.fxml.FXML;
import javafx.scene.control.Label;

import java.net.URL;
import java.util.ResourceBundle;

public class LoginController {

    private ResourceBundle resources;

    private URL location;

    @FXML
    public Label Loginerrormessage;

    //  Aufruf vom Eventbus für alle Fehler für das Login-> Fehlerausgabe als String wird angezeigt
    public void loginerroroutput(String string){   
        System.out.println(string);                  //Console output string
        Loginerrormessage.setText(string);           // Console output null

    }
    public void initialize() {
    }
}

Код FXML

Я почти уверен, что это метод initialize(), потому что я думаю, что этот метод отвечает за процессы пост-обработки.

Спасибо за ваши советы и предложения.

1 Ответ

0 голосов
/ 16 мая 2018

Вы должны сохранить любой объект LoginController в любом месте, чтобы вызвать именно этот объект.

Например:

FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getClassLoader().getResource("loginController.fxml"));
LoginController loginController = loader.getController();
AnyWhereStorage.setLoginController(loginController);  

А потом в любом месте:

AnyWhereStorage.getLoginController.loginerroroutput("Error");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...