Вы вызываете контроллер, а затем немедленно вызываете пользователя, который имеет значение null.
LoginController loginController = new LoginController ();
String User = loginController.CurrentUsername();
Редактировать:
Я бы просто создал класс User с атрибутами gettersи устанавливает и создает его из основного класса
public class Person {
private String userName;
private String someUsefulValue;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getSomeUsefulValue() {
return someUsefulValue;
}
public void setSomeUsefulValue(String someUsefulValue) {
this.someUsefulValue = someUsefulValue;
}
@Override
public String toString() {
return "Person [userName=" + userName + ", someUsefulValue=" + someUsefulValue + "]";
}
Затем, в вашем основном классе, используйте его:
Person user = new Person();
public String getCurrentUser() {
return user.getUserName();
}
public void setUser(Person p) {
this.user = p;
}
Внутри вашего контроллера входа вам нужно иметь ссылку наmainApp, что-то вроде:
// Reference to the main application.
private MainApp mainApp;
/**
* Called to give a reference back to itself.
*/
public void setMainApp(MainApp mainApp) {
this.mainApp = mainApp;
}
Когда вы загружаете контроллер и FXML, вы устанавливаете ссылку на mainApp:
LoginController controller = loader.getController();
controller.setMainApp(this);
Наконец, когда вы входите в приложение, если оноХорошо, просто сохраните пользователя в mainApp User:
Person loginUser = new Person();
loginUser.setUserName(txtUserName.getText());
loginUser.setSomeUsefulValue(txtBlablabla.getText());
mainApp.setUser(loginUser);
Вот и все, теперь вы можете вызывать данные пользователя из любого места, используя getCurrentUser () в основном классе.
Я надеюсьэто может вам помочь.