Bonjour à tous,
Je développe pour mon travail une petite application graphique, et j'ai décidé de tenter d'utiliser JAVA comme language, sachant que je maîtrise correctement le C++ mais qu'il s'agit de ma première application en JAVA.
L'application en question doit être capable de gérer des formes géometriques simples (lignes, polylignes, arcs de cercles, flèches,...) positionnables 'à la souris' afin de définir simplement et visuellement les paramètres d'un simulateur.
Ma première surprise est de n'avoir quasiment rien trouvé dans la bibliotheque java standard pour m'aider (genre vecteur2D avec opérateur redefinis pour faire v=v1+v2 ou v.angle(v2) ) j'avais choisi JAVA en pensant que j'aurais ce genre de trucs dans un langage plus moderne et integré que C++. Mais bon, c'est pas grave (oui, je sais je suis un petit peu provocateur là...)
Ma deuxième surprise est que sous eclipse, je n'ai rien trouvé de gratuit pour m'aider à construire visuellement une interface graphique swing.
J'ai deja lutte pour installer eclipse, je ne me lancerais pas dans le combat pour NetBeans...
J'ai pris sur moi de me taper à la main la définition d'un canvas graphique dans lequel il sera possible d'ajouter les formes geométriques en question.
Mais là je me rends compte que ce que je ne pense pas en java, je m'explique:
je pensait avoir une arborescence de classes des plus basiques du genre:
la question est : quel est (sont) la (les?) méthodes propre(s) pour faire ça ?
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 class VForme { ... void drawIn(Graphics g) { // operations communes a toutes les formes graphiques // genre afficher les points de controles de la forme // pour de deplacement a la souris, ... ... } class Line extends VForme { ... @override void drawIn(Graphics g) { // code specifique g.drawLine(x1,y1,x2,y2); // code commun super.drawIn(g); } } class MultiLine extends Line{ // derive de line pour reprendre les membres genre // line width, etc... ... @override void drawIn(Graphics g) { // code specifique for (int i=0;i<npoint-1;++i) g.drawLine(xi[i],yi[i],xi[i+1],yi[i+1]); // code commun super.super.drawIn(g); // n'existe pas // LA EST MON PROBLEME // PARAIT IL QUE C'EST PARCE QUE JE NE PENSE PAS EN JAVA // CE QUI EST VRAI AU DEMEURANT ((VForme)this).drawIn(g) // aurait marche en C++ pas en JAVA } }
J'ai contourné le problème en créant une méthode commonDrawIn dans VForme qui est appelée par tous les descendants mais je ne trouve pas ça très joli.
Est-ce que si je pensait en java je trouverais ça beau ou est-ce que je n'ai pas l'info sur la façon jolie de le faire en java ? Avis aux experts...
Merci!
Partager