IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Objet de forme hexagonale


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Points : 90
    Points
    90
    Par défaut Objet de forme hexagonale
    Bonjour,

    pour un traitement particulier, j'ai créé un composant dérivé du JPanel.
    J'essaye maintenant desesperement de faire en sorte que mon JPanelAlv soit de forme hexagonale. J'ai cherché partout comment faire... en vain.

    Auriez-vous des pistes à me donner pour trouver comment faire pour donner à mon objet une forme hexagonale?

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Dessiner un Hexagone dessus (redéfinition de la méthode paintComponent de ton JPanel pou pouvoir le faire) et redéfinir la méthode isOpaque pour qu'elle renvoie toujours false (afin que le fond du panel ne soit pas desssiné par swing)

    ++
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Points : 90
    Points
    90
    Par défaut
    Hum oui, très bonne idée merci!

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Points : 90
    Points
    90
    Par défaut
    Bonjour,
    j'ai un complément de question ^^

    J'ai donc maintenant mon composant qui peut avoir n'importe quelle forme.
    Je souhaite gérer le clic de l'utilisateur. Or, si il clique sur le carré, dans une surface non déssinée, celà marche quand même. Idem pour le getToolTipText?

    j'ai essayé de redefinir le contains, en vain...
    Des idées?

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Il nous est difficile de te repondre de maniere plus precise sans code montrant la methode que tu utilises.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Je dirais pareil que bouye...
    Mais maintenant, sache que tu peux récuperer la position de la souris (que ce soit quand tu cliques, ou quand elle se déplace) par un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void mouseClicked(MouseEvent e) {
          int posX = e.getX();
          int posY = e.getY();
    }
    Il te suffit ensuite de vérifier que tu te trouves bien dans ton hexagone...

    PS : J'ai pris mouseClicked() comme exemple... ça marche avec toutes les méthodes qui utilisent un MouseEvent...

    ++
    Pas de questions technique par MP, les forums sont là pour ça.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Points : 90
    Points
    90
    Par défaut
    J'ai enfin répsolu mon problème.
    Il s'agisait bien tout simplement de la méthode contains qu'il fallait surcharger...

    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
    40
    41
    42
    43
    44
    45
    46
     
    public class HexagonalPosition extends JPanel{
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	private Polygon p = null;
     
    	public HexagonalPosition (int len, int i, int j) {
    		super();
    		// ....
    	}
     
    	/* Toujours isOpaque a false */
    	@Override public boolean isOpaque() {
    		return false;
    	}
     
    	@Override
    	protected void paintComponent(Graphics g) {
    		Graphics2D gdD = (Graphics2D)g;
     
    		/* polygone */
    		gdD.setColor(Color.WHITE);
    			gdD.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.2f ));
    		gdD.drawPolygon(getPolygone());
    	}
     
    	public boolean isGrillePrintable(){
    		return showGrille;
    	}
     
    	public boolean isThereHovercraft(){
    		return hovercraft!=null;
    	}
     
    	@Override
    	public boolean contains(Point p) {
    		return contains(p.x, p.y);
    	}
     
    	@Override
    	public boolean contains(int x, int y) {
    		return getPolygone().contains(x, y);
    	}
    }
    J'avais oublié qu'il y avait deux méthodes contains a surcharger Le Onclick et tout le toutin vérifient si el curseur contient le polygone avant, donc on est bon

    Merci a tous pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Comment associer une macro sur un objet inséré "formes" ?
    Par Scatmax dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 25/01/2010, 08h49
  2. Insérer dans du Web.UI un objet Windows.Form
    Par lilou77 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/06/2007, 15h17
  3. Réponses: 3
    Dernier message: 23/04/2007, 13h29
  4. [VB6] Modification des propriétés d'un objet de form dans un module
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 09/06/2006, 09h46
  5. [C#] passage d'objet entre forms
    Par kooljy dans le forum Windows Forms
    Réponses: 4
    Dernier message: 26/04/2006, 06h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo