IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaFX Discussion :

Problème d'affichage avec un borderpane


Sujet :

JavaFX

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2021
    Messages : 7
    Par défaut Problème d'affichage avec un borderpane
    Bonjour,

    Je fais appel à vous car je n'arrive pas à trouver la solution de mon problème.
    Contexte : lorsque j'appuie sur un des boutons " ajouterCategorie", "ajouterLien" etc, je change d'interface. Le problème est que, lorsque j'appuie sur le bouton Accueil (qui lance la fonction ecranAccueil() ), comme j'ai l'impression que comme j'ai mis la ligne suivante : borderpane.setCenter(root) dans la fonction "changerInterface", à chaque fois que j'appuie sur le bouton EcranAccueil, j'ai cela comme résultat à l'affichage :

    Nom : pbaffichage.png
Affichages : 262
Taille : 35,4 Ko

    Mon but est de revenir à l'interface initiale lorsque j'appuie sur Accueil

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
     
    public class EcranDeDemarrage implements Initializable {
    //=======================================================================
     
        @FXML
        private Button previousButtonVariable;
        @FXML
        private Button nextButtonVariable;
        @FXML
        private Button ajouterCategorieVariable;
        @FXML
        private Button ajouterLienVariable;
        @FXML
        private Button afficherCategorieVariable;
        @FXML
        private Button manuelUtilisationVariable;
        @FXML
        private Button ecranAccueilVariable;
        @FXML
        private BorderPane borderPane;
    //=======================================================================
     
        private String currentState; // represente dans quelle interface on se situe a un moment donne
        private String previousState; // 
        private String nextState; 
     
        private Stage stageFromClass = new Stage();
        public void pointDeDepart(Stage stage) throws IOException {
            this.stageFromClass = stage;
            FXMLLoader fxmlLoader = new FXMLLoader(RunMe.class.getResource("ecranAccueil.fxml"));
            Scene scene = new Scene(fxmlLoader.load(), 650, 270);
     
            // pour mettre un logo
            String path = "C:\\Users\\yacin\\OneDrive\\Desktop\\sources_classification java project\\src\\demonslayer.png";
            File file = new File(path);
            String localUrl = file.toURI().toURL().toString();
            Image image = new Image(localUrl, false);
            stage.getIcons().add(image);
            // fin logo
            stage.setTitle("Classifieur");
            stage.setScene(scene);
            stage.setMaximized(true);
     
            stage.show();
        }
     
        @FXML
        protected void ajouterCategorie() {
            changerInterface("ajouterCategorie");
        }
     
        @FXML
        protected void ajouterLien() {
            changerInterface("ajouterLien");
        }
     
        @FXML
        protected void afficherCategorie() {
            changerInterface("afficherCategories");
        }
     
        @FXML
        protected void manuelUtilisation()
        {
            changerInterface("manuelUtilisation");
        }
     
        @FXML
        protected void ecranAccueil(){
           changerInterface("ecranAccueil");
     
        }
     
        //------------------------------------------------------------------------------------------------
     
        @Override
        public void initialize(URL url, ResourceBundle resourceBundle) {
            String ss = "nextButton.png";
            String ss2 = "previousButton.png";
     
            f1(ss,nextButtonVariable);
            f1(ss2,previousButtonVariable);
     
            f2(previousButtonVariable,65,10);
            f2(nextButtonVariable, 65,10);
     
            f2(ajouterCategorieVariable, 140,350);
            f2(ajouterLienVariable, 140,350);
            f2(afficherCategorieVariable, 140,350);
     
            manuelUtilisationVariable.setPrefSize(140,350);
        }
     
        private void changerInterface(String interfaceEntree) {
            Parent root = null;
            try {
                root = FXMLLoader.load(getClass().getResource(interfaceEntree + ".fxml"));
     
            } catch(IOException ex) {
                System.out.println("il y a une erreur dans 'changer interface'");
            }
            borderPane.setCenter(root);
        }
        private void f1(String ss, Button button)
        {
            String path = "C:\\Users\\yacin\\OneDrive\\Desktop\\sources_classification java project\\src\\" + ss ;
     
            Image image = new Image(path);
            ImageView imageView = new ImageView(image);
            imageView.setFitHeight(20);
            imageView.setPreserveRatio(true);
            button.setGraphic(imageView);
        }
        private void f2(Button button, double longueur, double largeur)
        {
            button.prefWidthProperty().bind(borderPane.widthProperty());
            button.prefWidthProperty().bind(borderPane.heightProperty());
            button.setMaxSize(longueur,largeur); 
        }
     
    }
    Merci d'avance !

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 897
    Billets dans le blog
    54
    Par défaut
    Déjà en tant que tel, le code donne surtout l'impression que tu vas charger et ajouter à ta scène une nouvelle instance de ton écran d'accueil à chaque fois que tu cliques sur ce bouton. Ce qui correspond sans doute à ce que tu as sur ta capture.

    Le 1er écran d'accueil est ajouté à la scène dans la fenêtre
    Le 2nd écran d'accueil est ajouté dans le border pane du 1er
    Le 3e écran d'accueil est ajouté dans le border pane du 2nd
    ...
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Problème d'affichage avec IE
    Par sheepk dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 11/11/2005, 13h00
  2. Réponses: 6
    Dernier message: 19/05/2005, 11h06
  3. problème d'affichage avec printf
    Par sorari dans le forum C++
    Réponses: 12
    Dernier message: 08/03/2005, 18h30
  4. Réponses: 6
    Dernier message: 19/10/2004, 13h46
  5. Problème d'affichage avec trace
    Par WriteLN dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2003, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo