Problème d'affichage avec la fonction paint
Bonjour,
J'ai un problème d'affichage dans mon interface graphique, et visiblement ce problème vient de mon utilisation de la fonction paint sans que je ne parvienne à trouver la source.
Voilà mon problème en détail:
J'ai une JFrame dans laquelle j'affiche mon "image de fond", j'ai ensuite un JPanel qui contiendra mes boutons. Or au démarrage mes boutons ne s'affichent que lorsque je passe la souris au dessus, et reste bien affichés ensuite.
Voici ma classe en question :
Merci d'avance....
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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MenuBlackJack implements ActionListener { //Fenêtre du menu principal
private JPanel ZoneBoutons;
private JFrame Fenetre_Principale;
private FlowLayout FL;
private JButton boutonJouer;
private JButton boutonApropos;
private JButton boutonQuitter;
public MenuBlackJack() {
// Propriétés de la fenêtre principale
Fenetre_Principale = new JFrame("BlackJack"){
public void paint(Graphics g) {
super.paint(g);
try {
BufferedImage image = ImageIO.read(new File("./Images/test.jpg"));
g.drawImage(image, 0, 0, null);
}
catch (IOException e) {
e.printStackTrace();
}
}
};
Fenetre_Principale.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Fenetre_Principale.setSize(500, 600);
Fenetre_Principale.setLocationRelativeTo(null);
Fenetre_Principale.setVisible(true);
Fenetre_Principale.setResizable(false);
ZoneBoutons = new JPanel();
//Tapis.setPreferredSize(new Dimension(500,600));
FL = new FlowLayout() ;
JButton boutonJouer = new JButton("Jouer");
JButton boutonApropos = new JButton("A Propos");
JButton boutonQuitter = new JButton("Quitter");
FL.setAlignment(FlowLayout.CENTER);
ZoneBoutons.setLayout(FL);
Fenetre_Principale.setContentPane(ZoneBoutons);
//this.boutonJouer.setBounds(180,200,150,50);
//this.boutonApropos.setBounds(180,260,150,50);
//this.boutonQuitter.setBounds(180,320,150,50);
boutonQuitter.addActionListener(this);
boutonJouer.addActionListener(this);
boutonApropos.addActionListener(this);
ZoneBoutons.add(boutonJouer);
ZoneBoutons.add(boutonApropos);
ZoneBoutons.add(boutonQuitter);
}
// Fonction pour afficher l'image de fond du menu
public void actionPerformed(ActionEvent contexte) {
if (contexte.getActionCommand().equals("Jouer")) {
TapisBlackJack TapisJeu = new TapisBlackJack();
}
if (contexte.getActionCommand().equals("A Propos")) {
MenuAPropos FondApropos = new MenuAPropos();}
if (contexte.getActionCommand().equals("Quitter")) {
System.exit(0);}
}
} |