Java et les containers !!!

Résolu/Fermé
jo-concept - 16 mai 2011 à 13:24
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 16 mai 2011 à 17:59
Bonjour,
a l'aide s'il vous plait je souhait faire afficher une fenetre qui aura comme fond une dégrader des couleur jaune et orange
puis dans cette meme fentre y placer un bouton.
le code ci-dessous m'affiche bien le fentre avec un fond en degrader effectivement mais le bouton n'apparait pas comment puis-je resoudre le probleme ?? merci


je crée une classe que j'appelle panneau et dans cette classe je mets le code suivant:



/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package nanjip;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.GradientPaint;
//import javax.swing.JButton;
import javax.swing.JPanel;


/**
*
* @author nanjip
*/
public class panneau extends JPanel {

public void paintComponent(Graphics g){

// System.out.println("je suis executer !!!");

// g.fillOval(this.getWidth()/4,this.getHeight()/4,this.getWidth()/2,this.getHeight()/2);

Graphics2D g2d = (Graphics2D) g;

GradientPaint gp=new GradientPaint(0,0,Color.ORANGE,30,30,Color.RED,true);

g2d.setPaint(gp);

g2d.fillRect(0,0,this.getWidth(),this.getWidth());

g.setColor(Color.GREEN);

Font font = new Font("courier",Font.CENTER_BASELINE,15);

g.setFont(font);

g.drawString("Bravo!! ", this.getWidth()/4, this.getWidth()/2);

}


}


voici le contenu de la classe fenetre


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package nanjip;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;
/**
*
* @author nanjip
*/

public class fenetre extends JFrame {

private JButton bouton = new JButton("press here !");

private JPanel pan =new JPanel();

public fenetre(){

this.setTitle("ma premiere fenetre");

this.setSize(400,400);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setLocation (500,200);

this.setVisible(true);

pan.add(bouton);

this.setContentPane(new panneau());

}

}


et voici le contenu du menu principal

package nanjip;:

public class Main{

public static void main(string[] args){

fenetre fen = new fenetre();

}
}





A voir également:

1 réponse

Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
16 mai 2011 à 14:14
salut,

utilises la balise "code" pour mettre ton code en message sur le forum, ça gardera les espacements et rendra ton code plus lisible.


Perso, je ne vois pas où dans ton code le bouton doit être affiché.

Dans le constructeur de fenetre tu crees un "pan" de type JPanel. Tu mets ton bouton dans ce JPanel.

Mais tu n'ajoutes jamais, il me semble, ton panneau dans ta fenetre.

Tu fais
this.setContentPane(new panneau()); 


Alors soit tu ajoutes ton "pan" dans ce container crée pour l'occasion, soit tu fais
this.setContentPane(pan)


(et tu déclares ton pan comme panneau et non comme JPanel)
0
merci bien mon pb a été resolu avec ta proposition et je comprends mon erreur
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
16 mai 2011 à 17:59
ok, de rien !
0