[Swing] specialisation JPanel
Bonjour,
Dans le cadre d'un projet, j'ai voulu creer mon propre JPanel qui inclu une progressBar et un label.
Le probleme est que au lancement de l'appli, il ne m'affiche pas mon panel, alors que si je redimenssionne la fenetre, il apparait.
De plus, l'appel de la fonction setText() permet aussi de faire afficher le panel.
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
|
public class paneltest extends JPanel {
private String text;
JProgressBar jb = new JProgressBar();
JLabel texte = new JLabel();
int i = 0;
paneltest(String t)
{
text = t;
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
setVisible(true);
//texte.setVisible(true);
setLayout(new BorderLayout());
texte.setText(getText());
add(jb, BorderLayout.WEST);
add(texte, BorderLayout.EAST);
}
public String getText() {
return text;
}
public void setText(String text) {
removeAll();
this.text = text+""+i ;
i++;
add(jb, BorderLayout.WEST);
add(texte, BorderLayout.EAST);
repaint();
}
} |
Ci dessous, le code de mon applet qui appelle ma classe
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
|
public class main extends javax.swing.JApplet {
private paneltest test;
@Override
public void init() {
try {
test = new paneltest("coucou");
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
jPanel1.setLayout(new BorderLayout());
JLabel testlbl = new JLabel();
testlbl.setText("essai");
jPanel1.add(testlbl, BorderLayout.EAST);
jPanel1.add(test, BorderLayout.WEST);
jPanel1.setVisible(true);
jPanel1.repaint();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
} |
Si quelqu'un a la solution pour que le panel soit affiché au demmarage de l'applet.
Merci d'avance,