2 pièce(s) jointe(s)
panel apparent une fois sur deux
bonjour à tous,
débutant en java, j'ai réalisé une petite interface graphique minimum :
une fenêtre, définie dans la classe MyWindow.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| package Mon_Interface;
import javax.swing.JFrame;
@SuppressWarnings("serial")
public class MyWindow extends JFrame {
public MyWindow () { // mon constructeur de fenetre
super ();
this.isAlwaysOnTop();
this.setVisible(true);
this.setSize(500, 500);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); }
} |
un panel défini dans la classe mon_panneau_bas.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| package Mon_Interface;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class mon_panneau_bas extends JPanel
{
public mon_panneau_bas ()
{
this.setBackground(Color.YELLOW );
this.setPreferredSize(new Dimension (100,100));
}
} |
La classe de démarrage main :
Code:
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
| package Mon_Interface;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
public class start4
{
public static void main(String[] args)
{
//Réalisation de la fenetre et affichage
MyWindow ma_fenetre = new MyWindow();
mon_panneau_bas panneau_bas_1 = new mon_panneau_bas () ;
// Création des boutons
JButton btnV = new JButton ("Valider");
JButton btnQ = new JButton ("Quitter");
JButton btnD = new JButton ("Démarrer");
// Création des listners
btnD.addActionListener(new ActionListener() {
@Override // méthode qui implémente une interface
public void actionPerformed(ActionEvent e) {
System.out.println(("le bouton Démarrer a été pressé!"));
}
});
btnV.addActionListener(new ActionListener() {
@Override// méthode qui implémente une interface
public void actionPerformed(ActionEvent e) {
System.out.println(("le bouton Valider a été pressé!"));
}
});
btnQ.addActionListener(new ActionListener() {
@Override// méthode qui implémente une interface
public void actionPerformed(ActionEvent e) {
System.out.println(("le bouton Quitter a été pressé!"));
}
});
// mise en place des boutons sur le panel
panneau_bas_1.add( btnD );
panneau_bas_1.add( btnV );
panneau_bas_1.add( btnQ );
// Mise en place du panel sur la fenetre
ma_fenetre.add (panneau_bas_1, BorderLayout.SOUTH) ;
}
} |
Le problème est que cela fonctionne de manière aléatoire semble-t-il.
La fenêtre est générée à chaque fois, mais le panneau jaune en bas avec les boutons, pas toujours hélas...
Pièce jointe 582264
Pièce jointe 582265
Si je mets un seul bouton, ça semble fonctionner à chaque fois...
Ça me parait étrange que le fonctionnement puisse être aléatoire....
Mon erreur est peut-être évidente pour un initié d'Eclipse.
Merci...