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

Agents de placement/Fenêtres Java Discussion :

Un JPanel qui ne prend pas toute ma JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 22
    Points : 14
    Points
    14
    Par défaut Un JPanel qui ne prend pas toute ma JFrame
    Bonjour !

    J'ai un petit soucis qui est tout bête mais que je n'arrive pas à résoudre, ce qui est d'autant plus rageant. Voilà :
    J'ai une classe SurfaceDessin qui étend JPanel. Je veux que cette classe soit le content pane d'une JFrame pour pouvoir facilement dessiner dedans etc...
    Seulement, quoique je fasse, l'objet SurfaceDessin ne prend pas toute la JFrame !!

    J'ai beau redéfinir getPrefferedSize, peindre à partir de 0,0, jongler avec tous les Layout, rien ne fonctionne...

    Voici une capture d'écran, SurfaceDessin est en blanc et la JFrame en vert :

    Je voudrais que toute la fenêtre soit blanche !

    Voici le code de SurfaceDessin et du main (crade mais c'est pour des tests rapide et du coup il est retourné dans tous les sens) :
    Code JAVA : 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
    class SurfaceDessin extends JPanel{
     
    	private int x = 75,y = 100;
    	SurfaceDessin(){
    		super(); 
    		setBackground(Color.WHITE);
    		setAlignmentX(0); setAlignmentY(0);
    	}
     
    	public void paintComponent(Graphics g){
    		super.paintComponent(g);
    		Graphics2D g2d = (Graphics2D) g;
    		g2d.setColor(Color.RED);
    		g2d.drawRect(x,y,50,10);
    	}
     
    	public Dimension getPreferredSize(){ return new Dimension(300,150);}
    	public int getX(){
    		return x;
    	}
     
    	public void setX(int x){
    		this.x = x;
    	}
    }

    Code JAVA : 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
    class MaFenetre extends JFrame{
    	MaFenetre(){
    		/*Cette technique place la création de l'interface dans l'EDT(Event Dispatch Thread) afin d'éviter les "blocages" du programme
    		 * en gros on lance un thread spécifique à la création de l'interface */
    		SwingUtilities.invokeLater(new Runnable() {
    			public void run() {
    				setTitle("Graph2D");
    				setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    				setBackground(Color.GREEN);
    				setSize(300,150);
     
    				pan = new SurfaceDessin();
    				setContentPane(pan);
     
     
    				pan.addMouseListener(new EcouteClic(pan));
     
    				//Les deux prochaines lignes sont obligatoires pour que le panel puisse "capter" les évènements claviers
    				pan.setFocusable(true);
    				pan.requestFocus();
     
    				pan.addKeyListener(new EcouteTouche(pan));
    			}
    		});
    	}
     
    	private SurfaceDessin pan;
    }
    ]

    Merci d'avance pour votre aide !

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu redéfinis getX(), ce qui impacte la position de ton composant...

    a++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 22
    Points : 14
    Points
    14
    Par défaut
    Alors là, un grand merci...
    C'était effectivement ça, mais c'est bizarre j'aurai juré avoir la même erreur sans avoir redéfini getX...
    Enfin bref, ce n'était pas le même getX (c'est vraiment codé à l'arrache) je n'ai pas songé que je surchargeais une méthode de JPanel et encore moins que cela impacterait l'agencement de l'interface.

    Encore un grand merdi en tout cas !=D

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

Discussions similaires

  1. Macro qui ne prend pas en compte toutes les valeurs d'un tableau
    Par bentor22 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/01/2013, 10h27
  2. ListView qui ne prend pas toute la place qu'il faut.
    Par ABandApart dans le forum Composants graphiques
    Réponses: 6
    Dernier message: 23/07/2011, 19h52
  3. Div qui ne prend pas toute la largeur
    Par kidseb dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 12/09/2008, 19h18
  4. [JAR] Archive qui ne prend pas en compte librairie externe
    Par Shiryu44 dans le forum Général Java
    Réponses: 3
    Dernier message: 22/04/2005, 13h59
  5. [JFrame] événement qui ne prend pas
    Par Ymer dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 24/11/2004, 13h54

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