Bonjour,
Je réalise une application avec une frame et un panel. Dans les panels, j'ai des composants de plusieurs types (JTextField, JTextArea, JCombobox ...)
J'ai un composant qui doit se redimensionner en fonction de la dimension des autres.
Pour faire cela, j'ai surchargé la fonction paintComponent et ajouter mon redimensionnement.
Malheuresement, le redimensionnement ne se réalise pas et se fait par exemple quand on redimensionne la fenêtre.
J'ai créé un code qui résume le problème simplement:
si on utilise la ligne
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 import java.awt.Dimension; import java.awt.Graphics; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class TestPaintComponent extends JPanel { private JButton but1; private JButton but2; public TestPaintComponent(){ super(); but1 = new JButton("Bouton 1"); but2 = new JButton("Bouton 2"); add(but1); add(but2); } protected void paintComponent(Graphics g){ super.paintComponent(g); //but1.setSize(new Dimension(200,200)); but1.setPreferredSize(new Dimension(200,200)); } public static void main(String[] args){ JFrame frame = new JFrame(); frame.setSize(800,600); frame.setContentPane(new TestPaintComponent()); frame.setVisible(true); } }
le composant se redimensionne après le redimensionnement de la fenêtre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part but1.setPreferredSize(new Dimension(200,200));
si on utilise la ligne
, le composant se redimensionne mais chevauche le bouton 2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part but1.setSize(new Dimension(200,200));
Quelqu'un a-t il une solution ?
Merci
Alain![]()
Partager