0
我想在不同的FXML場景的控制器之間傳遞數據。但我無法將數據傳遞給另一個控制器。 這是我的第一個控制器。不能在JavaFX控制器之間傳遞數據
public class FXMLDocumentController {
Session session;
private static Stage myStage;
@FXML
private Button button;
@FXML
private TextField txtAd;
@FXML
private TextField txtSifre;
@FXML
void handleButtonAction(ActionEvent event) {
session = NewHibernateUtil.getSessionFactory().openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
Query query = session.createQuery("from Userss where ad = :code and sifre = :sifre");
query.setParameter("code", txtAd.getText().trim());
query.setParameter("sifre", txtSifre.getText().trim());
if (query.list().size() == 1) {
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Giriş");
alert.setHeaderText(null);
String s = "This is an example of JavaFX 8 Dialogs... ";
alert.setContentText(s);
alert.showAndWait();
}
tx.commit();
} catch (Exception e) {
if (tx != null) {
tx.rollback();
}
} finally {
try {
session.close();
FXMLLoader loader = new FXMLLoader(getClass().getResource("FXMLDevam.fxml"));
DevamController devamController = loader.getController();
devamController.as("aaaaaaaaaaaaaaaaaaaaa");
AnchorPane login = (AnchorPane) loader.load();
Scene scene = new Scene(login);
myStage.setTitle("asd");
myStage.setScene(scene);
} catch (IOException ex) {
Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
static void setStage(Stage stage) {
myStage = stage;
}
}
這是第二控制器。
public class DevamController implements Initializable {
String as ;
@FXML
private Label lblAd;
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
lblAd.setText(as);
}
public void as (String a){
as = a;
}
}
我在這行得到NullPointerException異常:
devamController.as("aaaaaaaaaaaaaaaaaaaaa");
我已經試過這一點,它不工作: JavaFX: passing data between Controllers is always null
我已經看到你在評論的其他鏈接中回答。但我不明白。我試圖做幾個小時。它現在有效。非常感謝。 –