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 :

[Noob] Polygon + Layout


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Par défaut [Noob] Polygon + Layout
    Bonjours, je commence à programmer en JAVA, et je commence à comprendre les layouts, j'ai aucun probleme pour mettre des boutons et tous, mais lorsque je viens pour melanger boutons + dessins, j'y arrive pas...
    j'explique :::

    Je veux mettre des boutons en haut et que ca dessine genre un polygone selon le bouton que j'ai peser... un genre dans mon BorderLayout.NORTH j'met mes boutons et la j'ouvdrais mettre mon Polygon dans le sud, mais la seul maniere je connais de dessiner un Polygon c'est dans le paint (où je peux récuper le context graphics) ... mais si je dessine mon Polygon dans le paint... mes boutons sont mis par dessus mon Polygon..

    J'imagine que ca doit être tres simple vue les quelques heures seulement que j'ai en JAVA... Merci d'avance et un gros chocolat à celui qui trouve mon pb.

  2. #2
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Par défaut
    Personne ne peut m'aider ?!?! Pcq j'ai vraiment l'impression que c'est un rien du tout.. mais j'y arrive pas. l'affichage des Layout, des boutons qui gère ça ? Est-ce paint, pcq si oui, je pourrait peut-être dessiner les boutons que je desire ? (bien que je ne sache pas comment ).

    Dans l'attente d'une réponse future.

  3. #3
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Je pense qu'il faut que tu fasses un panel qui contient les boutons que tu places en haut, puis un autre panel que tu mets au centre (ou au sud). De cette façon tu n'auras pas de problème de superposition... Car là, j'ai bien l'impression que tu fais tout dans le même, me fourvoye-je ?

  4. #4
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Par défaut
    Bah en fait c'est le fillPolygon que je sais pas ou le mettre, cela me semble etre une méthode du contexte graphics donc g.fillPolygon... mais le problème est que comment je peut récupérer ce context graphics sans passer par paint ou sinon quand je passe dans paint comment je dit, fillPolygon dans mon Panel2 ?!

  5. #5
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Je m'explique,

    Tu déclares une classe héritant de JPanel, dedans tu redéfinis la méthode paintComponent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.fillPolygon();//...
    }
    Ensuite tu fais une méthode Dessine
    Cette méthode appelle paint(); qui va appeler paintComponent implicitement et déssiner ton polygone.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 97
    Par défaut
    Tu peux aussi créer une buffered image du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Image buffered_image = createImage (width, height);
    Graphics2D g2 = (Graphics2D) buffered_image.getGraphics ();
    Tu fais des dessins sur cette image avec le context graphique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    g2.fillRect (...);
    g2.drawPolygon (...).
    ...
    g2.dispose ();
    buffered_image.flush();
    Ensuite tu mets cette image sur ton bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    JButton btn = new JButton (new ImageIcon (buffered_image));

  7. #7
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Par défaut
    Sozie, ton truc qui extends JPanel, j'ai essayer, mais en vaint voici mon code :::
    Pour mon app principale, qui extends JFrame
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	public DessinerCarte()
    	{
    		super("Carte du Monde");
    		SurfaceCarte Carte = new SurfaceCarte();
    		getContentPane().add(Carte);
    		setVisible(true);
    		setSize(new Dimension(300,300));
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    Voici la classe que j'ai faite, d'apres ce que j'ai cru en comprendre.
    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
     
    public class SurfaceCarte extends JPanel
    {
    	public SurfaceCarte()
    	{
    		//paint();
    		JButton MonBouton = new JButton("Click me");
    		add(MonBouton);
    	}
    	public void paintComponent(Graphics g) 
    	{
    		Polygon[] Poly;
     
    		Poly = new Polygon[2];
    		Poly[0] = new Polygon();
    		Poly[0].addPoint(20,110);
    	    Poly[0].addPoint(60,30);
    		Poly[0].addPoint(100,110);
    		Poly[1] = new Polygon();
    		Poly[1].addPoint(110,110);
    		Poly[1].addPoint(150,30);
    		Poly[1].addPoint(190,110);
     
    		//stdDraw.Polygon()
        	super.paintComponent(g);
        	g.fillPolygon(Poly[0]);
    		g.fillPolygon(Poly[1]);
    	} 
    }

  8. #8
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    C'est parceque tu as mis ton boutons dans ta classe héritant de JPanel.
    Pour résumer :
    -tu crées ta frame et lui attribus un BorderLayout
    -tu ajouter le bouton au NORTH
    -tu ajoute une instance de ta classe hériant de JPanel au centre ( ou au sud, comme tu veux ! )

    ...
    private JButton btn = new JButton("un bouton");
    ...
    public DessinerCarte()
    {
    super("Carte du Monde");
    SurfaceCarte Carte = new SurfaceCarte();
    getContentPane.setLayout(new BorderLayout(15,15));
    getContentPane.().add(btn,BorderLayout.NORTH);
    getContentPane().add(Carte,BorderLayout.CENTER);

    setVisible(true);
    setSize(new Dimension(300,300));
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    Désolé pour la balise code, sinon je ne pouveais pas mettre en gras.

Discussions similaires

  1. [Débutant][swt][layout]
    Par Stessy dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 28/07/2003, 18h21
  2. Comment detecter un polygon sous le curseur
    Par FreshVic dans le forum OpenGL
    Réponses: 2
    Dernier message: 04/07/2003, 10h48
  3. Triangulation de Polygones
    Par seb_lisha dans le forum DirectX
    Réponses: 1
    Dernier message: 01/07/2003, 12h40
  4. [Algo] Point à l'intérieur d'un polygone ?
    Par kebby dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/05/2003, 13h22
  5. une ligne et un polygone convexe
    Par rekam dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 20/12/2002, 10h39

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