romainbisson
Messages postés88Date d'inscriptionjeudi 25 octobre 2007StatutMembreDernière intervention 9 septembre 2014
-
6 juin 2008 à 13:14
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
6 juin 2008 à 14:42
Bonjour je souhaite effacer le contenut de ma Jframe et lors de l'action sur un bouton, je souhaite qu'elle soit redessiner mais je ne sais pas comment faire, merci de votre aide
/************************************* Image de fond
*******************************/
static Image fond;
//
//**************************************************************************************
// PREMIER CONSTRUCTEUR
//
//**************************************************************************************
public Bisson(){
//On donne un titre à la fenetre
super("Bisson Informatique");
//Cette opération est réalisé lors de la fermeture de la fenetre
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
//Taille de la fenetre 1024*768
setBounds(0,0,1024,768);
//La fenetre n'est pas redimensionable
setResizable(false);
ImageIcon icon = new ImageIcon("images/logo.jpg");
logo = new JLabel();
logo.setIcon(icon);
logo.setBounds(40,250,450,300);
/**** bouton facture *****/
bouton_facture = new JButton();
bouton_facture.setIcon(new ImageIcon("images/icone.gif"));
bouton_facture.setBounds(100,50,120,120);
facture = new JLabel("Facture");
facture.setForeground(Color.blue);
facture.setFont(new Font("Helvetica", Font.PLAIN, 20));
facture.setBounds(130,170,80,40);
/**** bouton devis *****/
bouton_devis = new JButton();
bouton_devis.setIcon(new ImageIcon("images/icone.gif"));
bouton_devis.setBounds(300,50,120,120);
devis = new JLabel("Devis");
devis.setForeground(Color.blue);
devis.setFont(new Font("Helvetica", Font.PLAIN, 20));
devis.setBounds(335,170,80,40);
/**** bouton commande *****/
bouton_commande = new JButton();
bouton_commande.setIcon(new ImageIcon("images/icone.gif"));
bouton_commande.setBounds(500,50,120,120);
commande = new JLabel("Commande");
commande.setForeground(Color.blue);
commande.setFont(new Font("Helvetica", Font.PLAIN, 20));
commande.setBounds(510,170,120,40);
version = new JLabel("Version 1.0");
version.setForeground(Color.blue);
version.setFont(new Font("Helvetica", Font.PLAIN, 28));
version.setBounds(870,680,200,50);
setResizable(false);
//création du container
JLabel container = new JLabel();
// chargement de l'image
ImageIcon background = new ImageIcon("images/fond.jpg");
//on s'assure que l'image soit bien chargée
background.getImage();
// charge l'image
container.setIcon(background);
//changement du layout (pour reprendre ce que tu as fait
container.setLayout(null);
//ajout des composants
container.add(bouton_facture);
container.add(facture);
container.add(bouton_devis);
container.add(devis);
container.add(bouton_commande);
container.add(commande);
container.add(logo);
container.add(version);
//ajout du container
setContentPane(container);
public class Test extends JFrame implements ActionListener {
private static final long serialVersionUID = 3078633967761312074L;
private JMenuItem menuRemove = null;
private JMenuItem menuRestore = null;
public static void main(final String[] args) {
new Test().setVisible(true);
}
public Test() {
super("Test removeAll");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(800, 600);
setLocationRelativeTo(null);
// fleme de faire autrement
final JMenuBar bar = new JMenuBar();
bar.add(getMenuRestore());
bar.add(getMenuRemove());
setJMenuBar(bar);
// pour garder l'exemple avec un JLabel comme container
final JLabel container = new JLabel();
container.setLayout(new FlowLayout());
setContentPane(container);
// on force le remplissage de la fenetre
getMenuRestore().doClick();
}
private JMenuItem getMenuRemove() {
if (menuRemove == null) {
menuRemove = new JMenuItem();
menuRemove.setText("RemoveAll");
menuRemove.addActionListener(this);
}
return menuRemove;
}
private JMenuItem getMenuRestore() {
if (menuRestore == null) {
menuRestore = new JMenuItem();
menuRestore.setText("RestoreAll");
menuRestore.addActionListener(this);
}
return menuRestore;
}
public void actionPerformed(final ActionEvent e) {
final Object o = e.getSource();
if (o.equals(getMenuRemove())) {
// vire tou les composants du container
getContentPane().removeAll();
getContentPane().repaint();// important
} else if (o.equals(getMenuRestore())) {
// place des boutons ou des labels dans le container
for (int i = 0; i < 100; ++i)
if ((i % 2) == 0)
getContentPane().add(new JButton("Button " + (i + 1)));
else
getContentPane().add(new JLabel("Label " + (i + 1)));
getContentPane().validate();// important }
}
}
bien
que si tu dois faire des switch entre une IHM donnée et une autre (sans
gros changement sur les 2) tu devrais utiliser le layout CardLayout qui
est super adapté pour ça
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."