JavaFX et multi-Interface
Bonjour,
J'aimerais poser une petite question :
Classe : FXMLDocumentController :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| public void endFX() throws InterruptedException {
try {
// Localisation du fichier FXML.
final URL url = getClass().getResource("endFXML.fxml");
// Création du loader.
final FXMLLoader fxmlLoader = new FXMLLoader(url);
// Chargement du FXML.
final AnchorPane root = (AnchorPane) fxmlLoader.load();
// Création de la scène.
final Scene scene = new Scene(root);
final Stage stage = new Stage();
stage.setScene(scene);
stage.show();
stage.requestFocus();
Label tf = (Label) root.getChildren().get(3);
tf.setText(""+scoreJ);
Timer timer = new Timer();
TimerTask task = new TimerTask(){ //Thread pour mettre ma 2e page en focus constant
@Override
public void run() {
Platform.runLater(new Runnable() {
public void run() {
stage.toFront();
}
});
}
};
timer.scheduleAtFixedRate(task, 0, 10);
} catch (IOException ex) {
System.err.println("Erreur au chargement: " + ex);
}
System.out.println("Score ok");
} |
Donc là on est dans notre controller principale et va ouvrir une autre fenêtre pour gérer la BBD et enregistrer les scores etc
Classe EndFXMLController :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| @FXML
public void buttonclickedsubmit(MouseEvent me) throws Throwable{ //Il y a un bouton submit et on appuie dessus
String url = "jdbc:mysql://localhost:3306/taquinladder";
String user = "utilisateur";
String passwd = "pcw123";
String score = ScoreL.getText();
int scoreI = Integer.parseInt(score);
name = tfP.getText();
try { //On gère notre BBD
Class.forName("com.mysql.jdbc.Driver").newInstance();
System.out.println("Driver O.K.");
conn = DriverManager.getConnection(url, user, passwd);
System.out.println("Connexion effective !");
st = conn.createStatement();
st.executeUpdate("INSERT INTO ladder (pseudo, score) VALUES('"+ name+"',"+scoreI+")");
st.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("marche pas");
}
} |
Ce que je voudrais faire c'est de faire stage.close() dans EndFXMLController une fois qu'on a rentré nos résultats dans la base de données et dire au Thread de s'arrêter ou bien le faire dans FXMLDocumentController en mode, on arrête le focus une fois qu'on a appuyé sur le bouton et en plus de ça on ferme la page et le Thread.
Mais je ne vois pas comment faire ^^'
Merci de votre aide :)