Bonjour,
J'ai créé une classe dérivant de Jpanel permettant de coller une texture en fond et de placer deux boutons par dessus.
Pour cela j'ai redéfini paintComponent en ordonnant d'une part l'insertion de l'image de fond et d'autre part le rajout des boutons.
Cependant à l'éxécution (de la superclasse qui instancie la fenetre qui inclut ce panel) les boutons ne s'affichent pas ; sauf si je redimensionne ma fenetre manuellement par un simple cliquer-glisser (non pas qu'il n'y avait pas assez de place pour mettre les boutons , car ils sont placés au milieu de la fenetre).
Ce probleme semble disparaitre si je rajoute un validate(); mais si à l'intérieur de ma superClasse je demande de recréer une nouvelle fenetre du meme type (meme en mettant un validate()) les boutons ne s'affichent pas.(sauf si je refais un cliquer-glisser)
Y aurait-il une étape de validation lors de l'insertion des boutons que j'aurais oubliée?
Merci par avance.
Akhan
Voici le squelette du code si besoin :
Code : 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
30
31
32
33
34
35 import javax.swing.*; import java.awt.event.*; public class PanneauActions extends JPanel{ JButton hit,stand ; Image bande ; public PanneauActions(){ Toolkit monTk = Toolkit.getDefaultToolkit(); bande = monTk.getImage("images\\bande.jpg"); hit = new JButton("hit me !"); //... stand = new JButton("stand !"); //... setVisible(true); } protected void paintComponent(Graphics g){ super.paintComponent(g); add(hit); add(stand); g.drawImage(bande,0,0,this); } }








Répondre avec citation




Partager