Conception Programme Simple avec SWING

gingu Messages postés 1 Date d'inscription mercredi 1 juin 2011 Statut Membre Dernière intervention 1 juin 2011 - 1 juin 2011 à 15:00
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 - 1 juin 2011 à 18:23
Bonjour à tous,

J'ai un programme très simple à réaliser pour l'école. C'est le suivant:

1/ Au départ on a une fenêtre vide avec un panel interne de dimension 100x100
2/ Quand on clique sur le panel principal, un carré de dimension 20x20 doit apparaitre aléatoirement à un point (x,y) aléatoire (x et y entiers compris entre 0 et 80), mais sans se superposer avec d'autres carrés déjà présents.
3/ Si il n'y a pas d'emplacement possible, le carré n'est pas affiché et un message d'erreur est affiché dans une boite de dialogue.
4/ Quand on double clique sur le panel, tous les carrés présents bougent vers le haut seulement si une collision n'est pas détectée (haut de l'écran ou un autre carré). Les carrés doivent bouger de 1 pixel à la fois et doivent finir par tous d'arrêter.
5/ On peut faire une réinitialisation du panel avec un bouton "Nettoyer" situé en bas de la fenêtre principale.

J'ai dans l'idée de créer trois classes. Un main, une classe fenêtre, et une classe carré (qui va gérer l'affichage et le mouvement des carrés). Voilà mes connaissances s'arrêtent là. Je dois fournir ce travail très bientôt et donc tous les conseils sont bons à prendre. J'en appelle aux âmes charitables du Javafr pour me guider et m'inspirer.

A+
Gingu

3 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 370
1 juin 2011 à 15:52
Oui, ce que tu dis est une bonne idée, il faudra que tu utilises les threads pour déplacer tes carrés.

Commence et coder et quand tu auras un soucis, pose tes questions sur ce forum.
0
Utilisateur anonyme
1 juin 2011 à 18:11
Il peut être intéressant de définir ta classe Carre comme héritant de JComponent.
Dans cette classe, tu dessines dans paintComponent ton objet.
Ensuite, tu fais un thread qui bougera en effet tes carrés en changeant leur position par setLocation().

Comme l'a dit Julien39, commence par coder, on pourra surement t'aider par la suite.

Bon dev

--
Pylouq (actuellement jongleur de clavier AZERTY et de clavier QWERTZ)
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
1 juin 2011 à 18:23
Salut,

les class graphique java te fournissent tous les outils nécéssaire rendant cette exercice asser simple... meme les colisions entre tes squares peuvent n etre gére qu avec un simple opérateur booleen et donc un minimum de code ;o) ...
Et tu devra en effet prévoir un thread pour le mouvement de tes formes ;o)

Et pour ta class 'Carré' tu devrais plutot faire du model/vue avec un renderer (partie representation de la forme) et un model de donnée (description de la forme)...
ensuite c est ton Board (panel) qui devrai gérer la partie affichage visible de l affichage;o) car c est lui qui fournit le context graphics... ;o)
le mouvement tu devrais aussi le gérrer dans un class à part qui modifirrait les models de données et demanderai le rafraichissement du Board ;o)


il y a plusieurs exemples de sources dans ce sens sur le site... la partie la plus délicate devrait etre de rendre le mouvemnt fluide et pas trop rapide ;o) ... tu peux aussi gerer l affichage ;o) en fps ;o) mais commme ca situation et le plus souvent static ;o) ce n est pas forcement judicieux ;o)

Bonne prog ;o)

GodConan ;o)
0
Rejoignez-nous