Re: [ostorybook-dev] Apprentissage |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/ostorybook-dev Archives
]
Bonjour Bernard.
Si j'ai bien compris, tu travailles sous Linux et je vois que tu utilises NetBeans.
Étant personnellement sous Windows (par flemme, et après 10 ans d'Ubuntu, j'ai été dégoûté par l'IHM pourrie qu'ils imposent et sur un portable, Windows offre plus de souplesse) et ayant Eclipse comme IDE, il y aura certainement des questions auxquelles je ne pourrais pas répondre. Je peux toujours tester sur une VM ou au travers du sous-système Linux intégré à Windows, mais pas pour les IHM.
1- MonApplication
Tu as défini ta classe MonApplication comme appartenant au package "monapplication", il faut donc en tenir compte lors du stockage (mettre les trois fichiers .class dans un répertoire local nommé "monapplication") et lors de l'appel (>java monapplication.MonApplication). A noter : il faudrait utiliser l'indentation.
2- TestFrame2
Il est en effet possible, en java, d'importer des packages avec des étoiles "*" dans le chemin. C'est considéré comme de la mauvaise programmation donc à ne pas faire (comme les variables en public, à proscrire, entre autres). Il est très fortement conseillé d'importer les fichiers nécessaires un par un et les IDE sont capables de rechercher tout seuls ce qu'il faut.
3- Test1
Les outils qui fabriquent les classes tout seul, c'est bien pour se former mais ce qu'ils génèrent est souvent très sale et ne correspond pas aux bonnes pratiques (là, par exemple, tout l'IHM est créé dans une seule méthode
qui est trop longue - normalement pas plus de 50 lignes par fonction - et il aurait fallu découper en morceaux (un peu comme dans MonApplication).
Je ne sais pas pourquoi Netbeans plante, je n'ai pas eu de souci avec Eclipe.
A noter : tu as créé deux classes. Test1 ne sert à rien, sa fonction main est vide. L'application se termine donc aussitôt qu'elle est lancée. Menu, lui, fonctionne bien. J'aurais juste à, encore, préconiser de suivre les règles habituelles du code Java, qui demandent à ce que les variables soient en tête de la classe, suivies du ou des constructeurs, avant les méthodes. Et dans les variables, d'abord les constantes (public static final puis private static final) puis les variables de classe (private static) et enfin celles de l'instance (private).
Voila, les quelques réponses et remarques que je peux apporter.
Jean.
Le 07/12/2020 à 14:57, Bernard Méhaut a écrit :
Bonjour à tous deux,
Je vous joins trois projets ( modestes) que j'ai étudiés / réalisés ainsi que les constats / remarques / questions que je me pose.
Exemples
*
*MonApplication.java* ( Recopié du guide / manuel de JM Doudoux dej_20.pdf, p. 67 )
Avec Netbeans, pas de souci, l’exécution se fait bien.
En ligne de commande
Compilation, ok
Exécution :
java MonApplication
Erreur : impossible de trouver ou de charger la classe principale MonApplication
Causé par : java.lang.NoClassDefFoundError: monapplication/MonApplication (wrong name: MonApplication)
J’imagine qu’il s’agir du ClassPath, notion que j’ai survolée.
*
*TestFrame2*
Ok en ligne de commande ( compilation puis exécution)
Ok avec Netbeans (j’ai créé le même projet et j’ai remplacé le fichier créé par le fichier existant)
J’ai constaté que ces cadres écrits sans utiliser d’IDE importaient les classes (import javax.swing.*;).
*
*Test1*
J’ai essayé de réaliser un menu en utilisant JFrame Form. Dans un premier temps, j’ai créé le projet nommé Test1. Le fichier *Test1.java* a été créé. J’ai ensuite créé le fichier *Menu.java* avec JFrame Form. Sous Netbeans, je visualise le projet lorsque je le réalise. Par contre, je ne peux pas l’exécuter. J’obtiens le message d’erreur :
/Erreur : impossible de trouver ou de charger la classe principale test1.Test1/
/Causé par : java.lang.ClassNotFoundException: test1.Test1/
//home/bernard/.cache/netbeans/12.0/executor-snippets/run.xml:111: The following error occurred while executing this line:/
//home/bernard/.cache/netbeans/12.0/executor-snippets/run.xml:68: Java returned: 1/
/BUILD FAILED (total time: 0 seconds)/
Encore un pb de ClassPath ??
En ligne de commande
J’ignore quel fichier compiler. J’ai fait un essai avec les deux, sans succès (c’était attendu, vu l’erreur affichée par ailleurs)
java Test1
Erreur : impossible de trouver ou de charger la classe principale Test1
Causé par : java.lang.NoClassDefFoundError: test1/Test1 (wrong name: Test1)
java Menu
Erreur : impossible de trouver ou de charger la classe principale Menu
Causé par : java.lang.NoClassDefFoundError: test1/Menu (wrong name: Menu)
J’imaginais bien que cela ne fonctionnerait pas car je ne voyais pas comment « lier » les deux fichiers créés.
Merci pour vos retours !
Amicalement
Bernard
Le 06/12/2020 à 17:43, oStorybook a écrit :
Le 06/12/2020 à 16:31, Jean Rébillat a écrit :
Je persiste à penser que reprendre un logiciel et réécrire des parties, ce n'est pas bien.
D'autant plus, pour shef, qu'il est trouvable sur le net :https://github.com/aditosoftware/shef
Juste : il n'est pas sous Maven.
Ce source sur GitHub est inutilisable, il ne comporte aucune référence
au source sur SourceForge ni aucune mention de licence. Il y manque le
SAM et le NOVAWORX.
Le source d'origine de SHEF est placé sous licence LGPL 2.1.
SAM je m'en débarrasse. Reste novaworx, impossible de trouver quoi que
ce soit à son propos. Si tu as une piste...
--
oStorybook5 dev