이 문제는 매우 흔한 일이지만, 옵션이 부족합니다. 모든 해결책을 시도했지만 아무것도 나를 위해 일하고 있지 않습니다.JavaFX - 값을 전달하는 중
내가하려는 것은 단순히 1 JFX 창에서 다른 값으로 전달하는 것입니다.
여기 여기
public void login(ActionEvent event){
try{
if(loginModel.isLogin(txtUsername.getText(), txtPassword.getText())){
try {
((Node)event.getSource()).getScene().getWindow().hide();
Stage primaryStage = new Stage();
FXMLLoader loader = new FXMLLoader();
mainViewController sendHello = loader.<mainViewController>getController();
sendHello.getUser(txtUsername.getText());
Pane root = loader.load(getClass().getResource("mainView.fxml").openStream());
primaryStage.setTitle("Kcalculator");
primaryStage.setScene(new Scene(root));
primaryStage.setResizable(false);
primaryStage.show();
} catch (IOException e) {
e.printStackTrace();
}
} else{
Alert alert1 = new Alert(Alert.AlertType.INFORMATION);
alert1.setTitle("Login failed");
alert1.setHeaderText(null);
alert1.setContentText("The username or password you have entered is invalid.");
alert1.showAndWait();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
하고, 임은 여전히 "성공적인"로그인 후 NullPointerException이 점점 몇 가지 솔루션을 시도 후 내 mainViewController
클래스
public class mainViewController implements Initializable{
@FXML
private Label userLbl = new Label();
public void getUser(String user){
userLbl.setText("Welcome " + user);
}
@Override
public void initialize(URL location, ResourceBundle resources) {
}
}
입니다 loginController
클래스 안에 내 login
방법이다. fx:controller
속성은 물론이 작업을 수행하려면 올바른 값을 할당 할 필요가
FXMLLoader loader = new FXMLLoader();
// load fxml
Pane root = loader.load(getClass().getResource("mainView.fxml").openStream());
// get controller created using fx:controller attribute in the fxml
mainViewController sendHello = loader.<mainViewController>getController();
// use controller
sendHello.getUser(txtUsername.getText());
참고 : loader.getController
이 null
이외의 아무것도 반환하기 전에