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

 Java Discussion :

Ajout d'objet graphique à un JPanel


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 13
    Par défaut Ajout d'objet graphique à un JPanel
    Bonjour a tous,
    Je suis entrain de faire un TP que le prof nous a donnez, et je n'y arrive pas, le but c'est d'avoir 2 JPanel, l'un une Zone outils avec des Dessin, et l'autre une Zone de dessin, et lorsque on a appuis sur un Bouton, on ajouté un rectangle ou une ellipse dans le JPanel zoneDessin.
    Le code est très moche, mais c'est le Tp qui veut ça.
    quand j'appuie sur le bouton, je sais que le bouton a était utilisé grâce a un println, mais rien ne s'affiche.
    si a la place du this.repaint() je met un this.setVisible(true) dans la méthode actionPerformed, j'arrive a affiché un élément en (0,0), mais si je reclique, le 2 éme qui devrait apparaître en (0,0) apparaît plutôt en (0,250) et si j'appuis une 3 éme fois, le 2éme élément remonte en (0,125), jusqu’à que toute les formes soit les une sur les autres en décalé après plusieurs cliques.
    Je ne comprend pas le problème.
    Les classe Ellipse et Rectangle on était faite par mon prof, ce n'est pas celle de base dans swing.
    je vous met le code a la suite.
    Merci beaucoup de votre aide.

    Question bonus : pourquoi eclipse demande de rajouter ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static final long serialVersionUID = 1L;
    quand je fait extends JFrame

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    package Tp1.fr.unice.l3.formes;
     
    public class editeurImages extends JFrame implements ActionListener{
    	JPanel zoneOutil = new JPanel();
    	JButton boutonR = new JButton("Rectangle");
    	JButton boutonE = new JButton("Ellipse");
    	JPanel zoneDessin = new JPanel();
     
    	public editeurImages(){
     
     
    		Dimension taille = new Dimension(120,30);
     
    		// Fenetre
    		this.setTitle("Editeur d'image");
    		this.setSize(500,500); 
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setLayout(new BorderLayout());            
     
    		// Dessin
     
     
    		boutonR.addActionListener(this);
    		boutonE.addActionListener(this);
    		zoneDessin.setBackground(Color.WHITE); 
    		zoneDessin.setLayout(new BoxLayout(zoneDessin, BoxLayout.PAGE_AXIS));        
     
    		// Boite à outils        
    		boutonR.setMaximumSize(taille);
    		boutonE.setMaximumSize(taille);
    		zoneOutil.add(boutonR);
    		zoneOutil.add(boutonE);    
    		zoneOutil.setLayout(new BoxLayout(zoneOutil, BoxLayout.PAGE_AXIS));
     
     
    		// Affichage
     
    		this.getContentPane().add(zoneDessin, BorderLayout.CENTER);
    		this.getContentPane().add(zoneOutil, BorderLayout.WEST);
    		this.setVisible(true);   
     
    	}
    	@Override
    	public  void actionPerformed(ActionEvent e)
    	{
    		if(e.getSource() == boutonR){
    			Point a = new Point(40,100);
    			Rectangle rect1 = new Rectangle(a, 80, 50);   
    			zoneDessin.add(rect1);
     
    			System.out.println("Bouton rectangle !");
     
    		}else if(e.getSource() == boutonE){
     
    			Point b = new Point(0,0);
    			Ellipse ellipse = new Ellipse(b, 80, 50);   
    			zoneDessin.add(ellipse);
    			System.out.println("Bouton ellipse !");
    		}
     
    	this.repaint();
     
    	}
     
     
    	public static void main(String[] args){
    		new editeurImages();    
    	}
     
     
    }

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    salut,

    Regarde ce tuto, il t'approtera des réponses:
    http://duj.developpez.com/tutoriels/java/dessin/intro/

Discussions similaires

  1. Ajout d'objets graphiques depuis une autre classe
    Par metalamania dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 27/07/2010, 15h55
  2. Ajouter objets graphiques sous VC++
    Par thom314 dans le forum VC++ .NET
    Réponses: 0
    Dernier message: 17/05/2010, 09h46
  3. Réponses: 22
    Dernier message: 04/04/2007, 15h24
  4. [Swing][graphics]objets graphiques qui s'effacent
    Par TylerKnoxx dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 11/08/2004, 16h36
  5. Réponses: 3
    Dernier message: 09/02/2003, 01h09

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