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 :

Erreur à la compilation application JavaFX


Sujet :

JavaFX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut Erreur à la compilation application JavaFX
    Bonjour à tous.


    Je suis débutant en java.

    J'essai de faire une interface utilisateur avec JavaFX.

    Mon problème est que j'ai des erreurs à la compilation :
    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
    Executing C:\Users\Florent\Documents\NetBeansProjects\TasksList\dist\run1007862620\TasksList.jar using platform C:\Program Files\Java\jdk1.8.0_152\jre/bin/javaException in Application start method
    java.lang.reflect.InvocationTargetException
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
    	at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
    Caused by: java.lang.RuntimeException: Exception in Application start method
    	at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
    	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$154(LauncherImpl.java:182)
    	at java.lang.Thread.run(Thread.java:748)
    Caused by: java.lang.IllegalArgumentException: Children: duplicate children added: parent = Grid hgap=0.0, vgap=0.0, alignment=TOP_LEFT
    	at javafx.scene.Parent$2.onProposedChange(Parent.java:454)
    	at com.sun.javafx.collections.VetoableListDecorator.add(VetoableListDecorator.java:206)
    	at TasksPackage.MainTasksList.start(MainTasksList.java:108)
    	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$161(LauncherImpl.java:863)
    	at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$174(PlatformImpl.java:326)
    	at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294)
    	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    	at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
    	... 1 more
    Exception running application TasksPackage.MainTasksList
    Java Result: 1
    Voici mon 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
    122
    123
    124
    125
    126
    127
    128
    package TasksPackage;
     
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.control.Label;
    import javafx.scene.control.ListView;
    import javafx.scene.control.RadioButton;
    import javafx.scene.control.TextArea;
    import javafx.scene.control.TextField;
    import javafx.scene.control.ToggleGroup;
    import javafx.scene.layout.GridPane;
    import javafx.stage.Stage;
     
     
    /**
     *
     * @author Flow
     */
    public class MainTasksList extends Application {
     
        @Override
        public void start(Stage primaryStage) {
     
     
     
            GridPane root = new GridPane();
     
            GridPane progressTasks = new GridPane(); // root 0,0
            GridPane progressTasksDetails = new GridPane(); // progressTasks 1,0
            GridPane newTask = new GridPane(); // root 0,2
     
            ListView lvTasks = new ListView(); // progressTasks 0,0
     
     
            Label lblProgressTaskName = new Label("Nom : "); // progressTasksDetails 0,0
            Label lblProgressTaskDescription = new Label("Description : "); // progressTasksDetails 0,1
            Label lblNewTaskName = new Label("Nom :"); // newTask 0,0
            Label lblNewTaskDescription = new Label("Description : "); // newTask 0,1
            Label lblAddNewTasl = new Label("Ajouter une tache"); // root 0,1
     
            TextField tfProgressTaskName = new TextField(); // progressTasksDetails 1,0
            TextField tfNewTaskName = new TextField(); // newTask 0,1
     
            TextArea taProgressTaskDescription = new TextArea(); // progressTasksDetails 1,1
            TextArea taNewTaskDescription = new TextArea(); // newTask 1,1
     
     
            final ToggleGroup RbProgressGroup = new ToggleGroup();
            RadioButton rbProgressTaskToDo = new RadioButton("A faire"); // progressTasksDetails 0,2
            rbProgressTaskToDo.setToggleGroup(RbProgressGroup);
            RadioButton rbProgressTaskDone = new RadioButton("Terminée"); // progressTasksDetails 1,2
            rbProgressTaskDone.setToggleGroup(RbProgressGroup);
            final ToggleGroup RbNewGroup = new ToggleGroup();
            RadioButton rbNewTaskTodo = new RadioButton("A faire"); // newTask 0,2
            rbNewTaskTodo.setToggleGroup(RbNewGroup);
            RadioButton rbNewTaskDone = new RadioButton("Terminée"); // newTask 1,2
            rbNewTaskDone.setToggleGroup(RbNewGroup);
     
            Button btnDelete = new Button("Supprimer"); // progressTasksDetails 0,3
            Button btnAdd = new Button("Ajouter"); // newTask 0,3
     
     
     
            root.setConstraints(progressTasks, 0, 0);
            root.add(lblAddNewTasl, 0, 1);
            root.setConstraints(newTask, 0, 2);
     
            progressTasks.add(lvTasks, 0,0);
            progressTasks.setConstraints(progressTasksDetails, 1,0);
     
            progressTasksDetails.add(lblProgressTaskName, 0,0);
            progressTasksDetails.add(tfProgressTaskName, 1,0);
            progressTasksDetails.add(lblProgressTaskDescription, 0,1);
            progressTasksDetails.add(taProgressTaskDescription, 1,1);
            progressTasksDetails.add(rbProgressTaskToDo, 0,2);
            progressTasksDetails.add(rbProgressTaskDone, 1,2);
            progressTasksDetails.add(btnDelete, 0,3);
     
            newTask.add(lblNewTaskName, 0,0);
            newTask.add(tfNewTaskName, 1,0);
            newTask.add(lblNewTaskDescription, 0,1);
            newTask.add(taNewTaskDescription, 1,1);
            newTask.add(rbNewTaskTodo, 0,2);
            newTask.add(rbNewTaskDone, 1,2);
            newTask.add(btnAdd, 0,3);
     
     
     
            root.getChildren().add(progressTasks);
            root.getChildren().add(progressTasksDetails);
            root.getChildren().add(newTask);
            root.getChildren().add(lvTasks);
            root.getChildren().add(lblProgressTaskName);
            root.getChildren().add(lblProgressTaskDescription);
            root.getChildren().add(lblNewTaskName);
            root.getChildren().add(lblNewTaskDescription);
            root.getChildren().add(lblAddNewTasl);
            root.getChildren().add(tfProgressTaskName);
            root.getChildren().add(tfNewTaskName);
            root.getChildren().add(taProgressTaskDescription);
            root.getChildren().add(taNewTaskDescription);
            root.getChildren().add(rbProgressTaskToDo);
            root.getChildren().add(rbProgressTaskDone);
            root.getChildren().add(rbNewTaskTodo);
            root.getChildren().add(rbNewTaskDone);
            root.getChildren().add(btnDelete);
            root.getChildren().add(btnAdd);
     
     
     
            Scene scene = new Scene(root, 1000, 800);
     
     
            primaryStage.setTitle("Liste de tâches à faire");
            primaryStage.setScene(scene);
            primaryStage.show();
        }
     
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            launch(args);
        }
     
    }

    Malgré différentes recherches, je ne trouve pas de solution.
    C'est peut être un truc tout bête (ou pas).

    Merci d'avance pour votre aide.

    Pour info, j'utilise NetBeans 8.2

    Au plaisir de vous lire.

  2. #2
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut
    Voila le truc qui a le don de m’agacer :
    Je pose la question pour un problème dont je cherche la solution désespérément depuis un bon moment et la, je trouve la solution.

    Malgré le fait qu'il me semble nécessaire de rattacher tour le éléments au root, il ne faut pas.
    Il suffit simplement d'y rattacher les autre Layout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            root.getChildren().add(progressTasks);       
            root.getChildren().add(progressTasksDetails);
            root.getChildren().add(newTask);
    et pas plus comme je l'avait fait.

    Toutefois, je ne comprend pas pourquoi il ne faut pas non plus y ratacher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    // root.getChildren().add(lblAddNewTask);
    étant donné qu'il ne fait parti d'aucun autre Layout ?

    Merci beaucoup a tous

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    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 900
    Billets dans le blog
    54
    Par défaut
    Ben déjà c'est pas à la compilation mais à l'exécution et ensuite l'erreur est claire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Caused by: java.lang.IllegalArgumentException: Children: duplicate children added: parent = Grid hgap=0.0, vgap=0.0, alignment=TOP_LEFT
    On ne peut pas mettre deux fois le même noeud dans un même parent.
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/03/2014, 22h32
  2. Erreur compilation application Android & MySQL
    Par karamovic dans le forum Android
    Réponses: 4
    Dernier message: 27/04/2012, 18h11
  3. Erreur de compilation dans une application .net
    Par etincelle01 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 21/04/2010, 07h36
  4. Erreur rencontree en compilant application java
    Par djk-inf dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 27/10/2009, 19h05
  5. Application d'opération sur les fractions : erreurs de compilation
    Par int828 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 10/10/2009, 14h09

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