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 :

probleme(s) tutoriel code.makery.ch etape 02


Sujet :

JavaFX

Vue hybride

grub_fr probleme(s) tutoriel... 09/06/2022, 15h42
bouye 1) Caused by:... 10/06/2022, 01h44
grub_fr Bonjour Ben ecoute,... 10/06/2022, 08h14
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    conducteur autocar
    Inscrit en
    Janvier 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : conducteur autocar
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2020
    Messages : 67
    Par défaut probleme(s) tutoriel code.makery.ch etape 02
    Bonjour a vous,

    J'ai trouvé un tutoriel (que j'imagine vs connaissez tous) à l'adresse:
    https://code.makery.ch/fr/library/ja...utorial/part2/

    C'est un peu compliqué pr mon niveau ms bon... j'aimerai qd meme le faire fonctionner avt de redescendre d'1 cran ds mes aspirat°:
    Je vous mets le retour console d'erreur (ou des..?), le code et ensuite... je serai tt disposé a vous remercier pr votre aide.

    Code console : 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
    javafx.fxml.LoadException: 
    /media/sambano/home_HDD_EXTERNE/Documents/java/workspace_eclipse/JavaFX_Test04_Code_Makery_Ch/bin/ch/makery/address/view/PersonOverview.fxml
    
    	at javafx.fxml@18.0.1/javafx.fxml.FXMLL...XMLLoader.java:2707)
    	at javafx.fxml@18.0.1/javafx.fxml.FXMLL...XMLLoader.java:2677)
    	at javafx.fxml@18.0.1/javafx.fxml.FXMLL...XMLLoader.java:2548)
    	at javafx.fxml@18.0.1/javafx.fxml.FXMLL...XMLLoader.java:2516)
    	at JavaFX_Test04_Code_Makery_Ch/ch.makery.address.MainApp.showPersonOverview(MainApp.java:131)
    	at JavaFX_Test04_Code_Makery_Ch/ch.makery.address.MainApp.start(MainApp.java:85)
    	at javafx.graphics@18.0.1/com.sun.javaf...ncherImpl.java:847)
    	at javafx.graphics@18.0.1/com.sun.javaf...tformImpl.java:484)
    	at javafx.graphics@18.0.1/com.sun.javaf...tformImpl.java:457)
    	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    	at javafx.graphics@18.0.1/com.sun.javaf...tformImpl.java:456)
    	at javafx.graphics@18.0.1/com.sun.glass...ispatcher.java:96)
    	at javafx.graphics@18.0.1/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    	at javafx.graphics@18.0.1/com.sun.glass...plication.java:316)
    	at java.base/java.lang.Thread.run(Thread.java:833)
    Caused by: java.lang.reflect.InvocationTargetException
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    	at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:77)
    	at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
    	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    	at javafx.base@18.0.1/com.sun.javafx.re...ethodUtil.java:275)
    	at javafx.fxml@18.0.1/com.sun.javafx.fx...hodHelper.java:84)
    	at javafx.fxml@18.0.1/javafx.fxml.FXMLL...XMLLoader.java:2673)
    	... 13 more
    Caused by: java.lang.NullPointerException: Cannot invoke "javafx.scene.control.TableColumn.setCellValueFactory(javafx.util.Callback)" because "this.firstNameColumn" is null
    	at JavaFX_Test04_Code_Makery_Ch/ch.makery.address.view.PersonOverviewController.initialize(PersonOverviewController.java:52)
    	... 24 more

    dc là, je pense avoir (peut-etre) 1 erreur L 131 (la L85 est l'appel a la methode ou se trouve la L131)
    le code (Ma L131 est en gras):
    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
    public void showPersonOverview() {
            try {
                // Load person overview.
                FXMLLoader loader = new FXMLLoader();
                loader.setLocation(MainApp.class.getResource("view/PersonOverview.fxml"));
                AnchorPane personOverview = loader.load();
    
                // Set person overview into the center of root layout.
                rootLayout.setCenter(personOverview);
    
                // Give the controller access to the main app.
                PersonOverviewController controller = loader.getController();
                controller.setMainApp(this);
    
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    on peut encore ecrire cette L: AnchorPane personOverview = (AnchorPane) loader.load();
    Eclipse ne marque pas d'erreur a ce niveau.

    Dc pr ceci, apres recherche
    certains disent que le chemin du fichier fxml au-dessus n'est pas bon. Qu'il faut y mettre 1 slah dvt et/ou 1 "../"
    J'ai essayé les 2, cele n'a aucun effet.
    1 autre explication sur la page:
    https://living-sun.com/fr/java/44697...on-javafx.html

    Je cite:
    Le message d'erreur indique que le type d'un champ de votre classe de contrôleur ne correspond pas au type déclaré dans le fichier fxml. Plus précisément, votre contrôleur déclare un champ de type MainApp appelé mainApp, mais votre fichier fxml tente d’injecter un AnchorPane dans ce domaine.
    dc:
    Ds le fichier du controleur nommé: PersonOverviewController.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private MainApp mainApp;
    Et ds le fichier fxml nommé: PersonOverview.fxml, il est vrai que je n'ai aucune balise MainApp, juste des balises <AnchorPane>

    Que faut il faire?
    echanger mon <AnchorPane> par 1 <MainApp> (il me semble que j'ai déjà essayé ms je vais refaire)

    J'ai bien evidemment vérifié que j'ai bien un fx:controller déclaré et valide. Ce qui est le cas.

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    La seconde erreur est tt en bas du retour console (en gras également)
    dc direct° le fichier: PersonOverviewController.java L52:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       private void initialize() {
            // Initialize the person table with the two columns.
            //firstNameColumn.setCellValueFactory(cellData -> cellData.getValue().firstNameProperty());
        	firstNameColumn.setCellValueFactory(cellData -> cellData.getValue().getFirstName());
    
            lastNameColumn.setCellValueFactory(cellData -> cellData.getValue().lastNameProperty());
        }
    et dc j'ai ces 2L (ms je me concentre sur la 1°) qui me renvoient une valeur null

    Ds la class Person, il y a 2 constructeurs
    - celui par défaut qui initialise avec des attributs null
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public Person() {
            this(null, null);
        }
    et 1 constructeur qui initialise les attributs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public Person(String firstName, String lastName) {
            this.firstName = new SimpleStringProperty(firstName);
            this.lastName = new SimpleStringProperty(lastName);
     
            // Some initial dummy data, just for convenient testing.
            this.street = new SimpleStringProperty("some street");
            this.postalCode = new SimpleIntegerProperty(1234);
            this.city = new SimpleStringProperty("some city");
            this.birthday = new SimpleObjectProperty<LocalDate>(LocalDate.of(1999, 2, 21));
        }
    et ds le fichier MainApp.java, on initialise la ObservableList personData avec des instances de la classe Person avec les 2 paramètres, dc sans valeur null.
    Dc prquoi j'ai un retour avec valeur null?

    J'ai regardé 2 dépots github qui présente leur version et il semblerait que j'ai qque chose de très très resemblant (ms le "très très ressemblant" entraîne l'erreur(s))
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Enfin 1 dernière question eclipse:
    comment faire pr avoir un retour console complet?

    Voilà, qqu'un pr me dépatouiller du cambouis SVP.

    Merci bien a vous
    grub

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 899
    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 899
    Billets dans le blog
    54
    Par défaut
    1)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Caused by: java.lang.NullPointerException: Cannot invoke "javafx.scene.control.TableColumn.setCellValueFactory(javafx.util.Callback)" because "this.firstNameColumn" is null
    	at JavaFX_Test04_Code_Makery_Ch/ch.makery.address.view.PersonOverviewController.initialize(PersonOverviewController.java:52)
    L'erreur est a la ligne 52 de PersonOverviewController.java car la valeur de firstNameColumn est null (c'est écrit dans la trace !!!!!). Cela vient probablement d'un mauvais fx:id dans le FXML équivalent (le code du FXML est pas visible dans le didacticiel donc peut pas verifier).

    2) et 3) a voir une fois 1) réglé et du code permettant de tester ça posté.
    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

  3. #3
    Membre confirmé
    Homme Profil pro
    conducteur autocar
    Inscrit en
    Janvier 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : conducteur autocar
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2020
    Messages : 67
    Par défaut
    Bonjour

    Ben ecoute, c'etait bien un pble de fx:id

    L'etape 02 fonctionne correctement. Faut que je prenne le coup de nommer ts les controles.
    Je te remercie pr ton aide et te souhaite 1 bonne journée (we).

    grub.

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

Discussions similaires

  1. probleme dans le code
    Par vivu dans le forum C++
    Réponses: 41
    Dernier message: 14/11/2005, 18h13
  2. Probleme avec le code
    Par vivu dans le forum C++
    Réponses: 10
    Dernier message: 29/10/2005, 20h52
  3. petit probleme dans un code : theoreme de pythagore
    Par ETI-trian dans le forum C++
    Réponses: 3
    Dernier message: 15/10/2005, 13h13
  4. [Struts] Problème de génération code HTML
    Par GNK dans le forum Struts 1
    Réponses: 4
    Dernier message: 08/09/2005, 16h10

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