[java] gestionnaire de mise en page : connaitre la ligne-colonnes

gestionnaire de mise en page : connaitre la ligne-colonnes [java] - Java - Programmation

Marsh Posté le 13-01-2003 à 16:41:28    

Bonjour tout le monde!!!
 
voila j'utilise le gestionaire de mise en page : gridlayout
et je rajoute les boutons un par un...
 
je voudrais dc savoir comment je dois faire pour connaitre la ligne colonne de l'element cliqué???
 
je ne sais pas si je suis assez claire en fait...
 
merci de votre aide
 
 [:z_cool]


---------------
Je Suis En Phase Creative...
Reply

Marsh Posté le 13-01-2003 à 16:41:28   

Reply

Marsh Posté le 13-01-2003 à 17:52:56    

je ne sais pas pkoi tu as besoin de ca (ca me parait assez étrange).
 
Ce n'est pas récupérable directement je pense. Tu peux faire un un getComponents() sur le parent. Il va te retourner un tableau de components. Pour chacun des components, tu testes si l'instance est la même (==) que la source de l'évenement.
Quand tu tombes sur le bon, tu notes l'index du tableau.  
 
Ensuite, tu fais une division entière par le nombre de lignes de ton GridLayout pour avoir le numéro de ligne et un modulo de cet index sur le nombre de colonnes de ton GridLayout pour avoir le numéro de colonne

Reply

Marsh Posté le 13-01-2003 à 22:30:09    

benou a écrit :

je ne sais pas pkoi tu as besoin de ca (ca me parait assez étrange).

+1

Reply

Marsh Posté le 13-01-2003 à 23:37:57    

ouais, en programmation objet, c'est même carrément une hérésie!

Reply

Marsh Posté le 14-01-2003 à 17:51:20    

Ben en fait je compte faire un taquin
et donc le gestionnaire le plus simple est bien GridLayout non?
donc apres qd je veux déplacer une case... ca me permettrait de savoir la ligne colonne de cet element et de voir s'il peut se deplacer ou pas...
 
mais bon j'ai trouvé une autre solution...
 
Merci qd mm  
 
=)
 [:totoz6]


---------------
Je Suis En Phase Creative...
Reply

Marsh Posté le 14-01-2003 à 18:20:07    

Ah...Pour un taquin, les Layout, par contre, je pense que tu risques de te faire pas mal chier...Pour ma part, j'y serais allé brute en codant une représentation graphique avec une sous-classe de Canvas.


Message édité par gfive le 14-01-2003 à 18:21:07
Reply

Marsh Posté le 14-01-2003 à 22:18:09    

gfive a écrit :

Ah...Pour un taquin, les Layout, par contre, je pense que tu risques de te faire pas mal chier...Pour ma part, j'y serais allé brute en codant une représentation graphique avec une sous-classe de Canvas.

+1. Les Layout spafait pour ske tu penses.


---------------
Le site de ma maman
Reply

Marsh Posté le 14-01-2003 à 22:43:32    

Cherrytree a écrit :

+1. Les Layout spafait pour ske tu penses.

spour quoi alors? [:xx_xx]


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 14-01-2003 à 22:59:28    

--greg-- a écrit :

spour quoi alors? [:xx_xx]

Pour le positionnement d'objets graphiques, mais seulement pour ça.


---------------
Le site de ma maman
Reply

Marsh Posté le 14-01-2003 à 23:46:05    

Cherrytree a écrit :

Pour le positionnement d'objets graphiques, mais seulement pour ça.

:jap:
(apres relecture du topic plus attentivement :D)


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 14-01-2003 à 23:46:05   

Reply

Marsh Posté le 15-01-2003 à 11:07:35    

ah oui???
 
ben mince alors!!
car en fait j'ai fait un tableau stockant la position des boutons!!! --> huumm
 
 
sous Canvas... :(  
c'est qu'en fait je my connais pas trop...
Bon je verrai bien!!!
 
 
En tt cas merci!!!  [:z_cool]  [:totoz6]  


---------------
Je Suis En Phase Creative...
Reply

Marsh Posté le 15-01-2003 à 14:06:25    

bah, c'est pas super compliqu", en fait : tu crées une sous-classe de Canvas, et tu redéfinis sa méthode paint(Graphics) pour qu'elle dessine ce que tu veux à l'intérieur...A vue de nez, comme ça, je ferais un sous-classe genre  
 

Code :
  1. class TaquinUI extends Canvas {
  2.   private ArrayList cases;
  3.   public void paint(Graphics g) {
  4.       //dessine les bords ici...
  5.       //dessin des cases :  
  6.       Case case;
  7.       Iterator it = cases.iterator();
  8.       while (it.hasNext()) {
  9.           case = (Case) it.next();
  10.           case.draw(g);
  11.       }
  12. }
  13. public Case getCase(int x, int y) {
  14.   //Te retourne l'objet Case où se situe le point x,y (facile, si la case connaît sa position et sa taille)
  15. }

 
 
où Case est une classe qui définit une case de ton taquin : position, etc, etc...
 
Et pour savoir où le monsieur a cliqué, tu fait implémenter MouseListener à ta classe TaquiUI, et dans la méthode mouseClicked(MouseEvent e); tu utlises e.getX(), et e.getY() avec getCase(x, y) pour savoir quelle case a été cliquée..
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed