Quelques compléments par rapport à ce que disait Jean.
C'est vrai que le profile, ou la structure, du code généré par
Netbeans
n'est pas très sympa et ne respecte pas certains principes enseignés.
Par exemple celui de limiter, autant que faire se peut, une fonction à
une cinquantaine de lignes maximum. Mais c'est la manière de faire de
Netbeans. Tu verra qu'à l'usage tu en viendras à revenir à cette
règle,
c'est très précieux pour la maintenance.
Tu as peut être remarqué qu'il y a des tags un peu bizarres, comme:
// <editor-fold defaultstate="collapsed" desc="Generated
Code">//GEN-BEGIN:initComponents
En fait c'est la manière qu'a Netbeans pour repérer les parties qu'il
peut modifier/générer lui-même.
Exemple, dans Menu.java:
private void jMenuItem7ActionPerformed(java.awt.event.ActionEvent
evt) {//GEN-FIRST:event_jMenuItem7ActionPerformed
// TODO add your handling code here:
System.exit(0);
this.dispose();
}//GEN-LAST:event_jMenuItem7ActionPerformed
Le "// TODO add your handling code here:" tu peux l'enlever, mais
surtout pas le "//GEN-FIRST:event_jMenuItem7ActionPerformed" ni le
//GEN-LAST:event_jMenuItem7ActionPerformed", sinon tu perds toutes les
facilité de Netbeans de gérer les éléments.
Comme l'a dit Jean ton "Test1.java" ne sert à rien. C'est la classe de
départ créée par Netbeans lors de la création du projet. En fait quand
tu a créé ton "Menu.jar" il y a dedans une fonction "main" qui
permet de
tester, séparément, ton menu. Donc pour rendre ton Test1
fonctionnel il
faut que tu y utilises "Menu.jar".
Avant d'aller plus loin je te conseille d'étudier cette fonction
"main"
ainsi que ses paramètres. Regardes ce que Netbeans a généré dans
"Menu.jar" et essaye de comprendre chacune des lignes. Il y a deux
parties distinctes: le choix du LookAndFeel avec utilisation du
"try...
catch", l'activation de l'interface utilisateur via le "invokeLater".
Finalement c'est le genre de truc qu'on retrouve partout.
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...