Bonjour,

J'ai 2 classes qui héritent de JPanel et les fonctions de mes onglets doivent retourner un JPanel, je me suis donc contenté de créer une instance de mes classes et de faire un simple return. Dans mes classes, j'ai mis le code où je créé mes éléments et les affiche dans le constructeur de la classe.

Pour ma première classe, je n'ai aucun problème: tout s'affiche et si j'entre des valeurs et que je lance les calculs, tout se fait normalement.
Mon problème vient du 2eme onglet: Lorsque je clique sur celui-ci, aucun élément ne s'affiche (je n'ai qu'un JTextField et un JLabel pour l'instant). De plus, le fond du JPanel de cet onglet est tout bleu et je ne comprend pas pourquoi. L'autre fait bizarre est que ma fonction paint fonctionne bien.
Donc au final, sur mon 2eme onglet, j'ai un fond bleu, un rectangle noir et aucun composant.

Voici le code important:

Code :
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
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
public class EspFrame extends JFrame implements StateChanged {
	public EspFrame(){
		super();
 
		build();//On initialise notre fenêtre
	}
	private void build(){
		setTitle("AT calcul"); //On donne un titre à l'application
		setSize(650,700); //On donne une taille à notre fenêtre
		setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
		setResizable(false); //On interdit la redimensionnement de la fenêtre
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer lors du clic sur la croix
		setContentPane(getOnglets());
	}
	private JTabbedPane getOnglets()
	{
 
		if(Onglets== null)
        {
            try
            {
                Onglets = new JTabbedPane(JTabbedPane.TOP);
                Onglets.addTab("Tole", null, getOngletTole(), null); //
                Onglets.addTab("Lettres Découpées", null, getOngletLettre(), null); //
                //Onglets.addTab("Onglet 3", null, getOnglet3(), null); //
 
                Onglets.addChangeListener(this);
 
            } catch (java.lang.Throwable e)
            {
            	System.out.println(e);
                // TODO: Something
            }
        }
        return Onglets;
 
	}
 
	private JPanel getOngletLettre()
	{
 
		OngletLettre ongletL = new OngletLettre();
 
		return ongletL;
	}
 
	private JPanel getOngletTole(){
 
		OngletTole ongletT = new OngletTole();
 
		return ongletT;
 
	}
 
}
 
// Classe OngletLettre
// C'est pour cette classe que le fond est Bleu et que rien ne s'affiche
 
 
public class OngletLettre extends JPanel implements ActionListener, ItemListener{
 
 
	private JPanel panel;
	private JLabel label;
	private JTextField textFieldHauteurLettre;
 
	public OngletLettre()
	{
 
		this.setLayout(null);
 
		try{
			Insets insets = this.getInsets();
 
			label = new JLabel("test");
			this.add(label);
 
			Dimension l1 = label.getPreferredSize();
			label.setBounds(150 + insets.left, 150 + insets.top, l1.width, l1.height);
 
			textFieldHauteurLettre = new JTextField(5);
			this.add(textFieldHauteurLettre);
 
			Dimension tf1 = textFieldHauteurLettre.getPreferredSize();
			textFieldHauteurLettre.setBounds(150 + insets.left, 200 + insets.top, tf1.width, tf1.height);
		}
		catch(Exception e)
		{
 
			System.out.println(e);
 
		}
	}
}
 
//Classe OngletTole
// C'est le panel qui s'affiche au démarrage et qui fonctionne normalement
 
public class OngletTole extends JPanel implements ActionListener, ItemListener, FocusListener {
 
	public OngletTole()
	{
 
		this.setLayout(null);
 
		textFieldLarg = new JTextField(5);
		textFieldHauteur = new JTextField(5);
		labelLarg = new JLabel("Largeur");
		labelHauteur = new JLabel("Hauteur");
 
                //Tout le reste la création des composants
 
       }
}

La classe OngletTole contient beaucoup plus de code mais je ne pense pas que ce soit important pour mon problème actuel.


Merci d'avance et merci a ceux qui suivent l'évolution de mon probleme =x