m@rcwabo
Messages postés6Date d'inscriptionjeudi 20 octobre 2016StatutMembreDernière intervention 3 mai 2019
-
21 oct. 2016 à 00:32
m@rcwabo
Messages postés6Date d'inscriptionjeudi 20 octobre 2016StatutMembreDernière intervention 3 mai 2019
-
3 mai 2019 à 17:05
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
m@rcwabo
Messages postés6Date d'inscriptionjeudi 20 octobre 2016StatutMembreDernière intervention 3 mai 2019 3 mai 2019 à 17:05
Merci.
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024127 22 oct. 2016 à 16:45
Bonjour m@rcwabo,
En premier lieu, je signale qu'il est nécessaire d'avoir swing-layout.jar dans son classpath pour compiler et exécuter ton code, en raison des dépendances
org.jdesktop.layout.*
Ensuite, ce code se veut, je cite "Une simple application des threads en java", or il n'en est rien, puisque hormis le code généré automatique par Netbeans, on n'utilise pas de threads.
D'ailleurs, parlons du code généré automatiquement par Netbeans, d'une part il ne permet pas d'apprendre à programmer en Java puisque l'éditeur fait toute la partie graphique, d'autre part le code généré est particulièrement affreux, sans parler de la nécessité d'ajouter des dépendances comme mentionné plus haut.
Ainsi donc, si on reprends le code, on peut allègrement simplifier le tout, en commençant par la méthode
Ici, j'ai fait un vrai traitement de thread, en utilisant un ExecutorService qui va automatiquement être appelé par Java toutes les secondes, ce qui est plus fiable que ta boucle
while(true)
avec des
Thread.sleep(1000);
qui ne prennent pas en compte le temps que tu passes à effectuer chaque action d'affichage.
Remarque, depuis Java 8 on peut simplifier l'écriture des interface fonctionnelles (comme Runnable) avec des lambda expressions. Exemple :
Quant au code de l'interface graphique, une fois qu'on enlève ce qui n'était utile qu'à Netbeans et pas au programme lui même, ça devient super simple.
Notons au passage que dans le code suivant je me suis débarrassé de la dépendance sur swing-layout.jar c'est donc du pur Java.
Un code total de 70 lignes, à comparer aux 190 lignes de ton code initial, pour faire la même chose... il ne faut juste pas laisser Netbeans faire lui même le code !
3 mai 2019 à 17:05
22 oct. 2016 à 16:45
En premier lieu, je signale qu'il est nécessaire d'avoir swing-layout.jar dans son classpath pour compiler et exécuter ton code, en raison des dépendances
Ensuite, ce code se veut, je cite "Une simple application des threads en java", or il n'en est rien, puisque hormis le code généré automatique par Netbeans, on n'utilise pas de threads.
D'ailleurs, parlons du code généré automatiquement par Netbeans, d'une part il ne permet pas d'apprendre à programmer en Java puisque l'éditeur fait toute la partie graphique, d'autre part le code généré est particulièrement affreux, sans parler de la nécessité d'ajouter des dépendances comme mentionné plus haut.
Ainsi donc, si on reprends le code, on peut allègrement simplifier le tout, en commençant par la méthode qui est a priori ton seul code perso.
Ici, j'ai fait un vrai traitement de thread, en utilisant un ExecutorService qui va automatiquement être appelé par Java toutes les secondes, ce qui est plus fiable que ta boucle avec des qui ne prennent pas en compte le temps que tu passes à effectuer chaque action d'affichage.
Remarque, depuis Java 8 on peut simplifier l'écriture des interface fonctionnelles (comme Runnable) avec des lambda expressions. Exemple :
Quant au code de l'interface graphique, une fois qu'on enlève ce qui n'était utile qu'à Netbeans et pas au programme lui même, ça devient super simple.
Notons au passage que dans le code suivant je me suis débarrassé de la dépendance sur swing-layout.jar c'est donc du pur Java.
Un code total de 70 lignes, à comparer aux 190 lignes de ton code initial, pour faire la même chose... il ne faut juste pas laisser Netbeans faire lui même le code !