Bonjour

je voudrais que entre la fenetre JFrame et un container principal JPanel existe une marge , de façon que lorsque je trace la bordure du JPanel, on voit bien la différence avec le bord de la fenêtre

merci si quelqu'un pouvait m'éclairer

voici le bout de code concerné :
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
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
 
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
 
public class Fenetre extends JFrame {
 
	// Conteneurs
	private  JPanel  cont1 	       =  new JPanel( ) ;
	private  JPanel  cont1Label 		=  new JPanel( ) ;
	private  JPanel  cont1Bouton	= new JPanel ( ) ;
	private  JPanel  cont1BtnOper 	=  new JPanel ( ) ;
	private  JPanel  cont1BtnChiffre   =  new JPanel ( ) ;
	//Layout
	private Box layoutBoxHbtn ; // layout pour cont1Bouton
	//Nbre de Boutons Chiffre de 0 à 9 inclus
	private static int nbreBtn = 10 ;
	// Stockage de ces 10 boutons
	private JButton[ ] tblBtn = new JButton[ nbreBtn ] ;
	// Label pour affichage
	private JLabel labelAff = new JLabel ( ) ;
 
 
	public Fenetre ( )  {
 
		// la fenêtre
		this.setTitle( "Calculette Java" ) ;
		this.setSize ( 300, 300 ) ;
		this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ) ;
		this.setLocationRelativeTo( rootPane ) ;
 
		this.setLayout( new FlowLayout( FlowLayout.CENTER) ) ;
 
		// détermination
		cont1.setPreferredSize( new Dimension ( 250 , 250 )  ) ;
		cont1Label.setPreferredSize ( new Dimension ( 200, 50 ) ) ;
		cont1BtnChiffre.setPreferredSize( new Dimension ( 150 , 150) );
		labelAff.setPreferredSize ( new Dimension ( 180, 50 ) ) ;
		// le conteneur principal
		cont1.setBackground( Color.orange ) ;
		// couleur uniquement pour voir l'espace du conteneur 
		cont1.setBorder(BorderFactory.createLineBorder(Color.blue));
		cont1.setLayout( new BorderLayout ( 50 , 30 ) ) ; // espacement de 30 en Hauteur entre les composants de ce cont
		cont1.add(cont1Label, BorderLayout.NORTH ) ;
		cont1.add(cont1Bouton, BorderLayout.CENTER ) ;
 
		// Le cont Label
		// couleur uniquement pour voir l'espace du conteneur 
		cont1Label.setBackground( Color.lightGray) ;
		cont1Label.setBorder(BorderFactory.createLineBorder(Color.black));
		cont1Label.setLayout( new FlowLayout ( FlowLayout.CENTER) ) ;
 
		labelAff.setHorizontalAlignment( JLabel.RIGHT) ;
		labelAff.setText( "Bonjour " );
		cont1Label.add( labelAff );
 
		// Le cont Bouton
		layoutBoxHbtn = Box.createHorizontalBox();
		cont1Bouton.add(layoutBoxHbtn);       // on y ajoute le BoxLayout
		cont1Bouton.setBackground( Color.green ) ;
		layoutBoxHbtn.add(cont1BtnChiffre);  // Puis chaque conteneur de bouton
		layoutBoxHbtn.add(cont1BtnOper);
 
		// le cont pour les boutons chiffres
		cont1BtnChiffre.setLayout( new GridLayout ( 4 , 3 , 4 , 4 ) ) ; // lignes, Colonnes, espacesH , espaceV
		// couleur uniquement pour voir l'espace du conteneur 
		cont1BtnChiffre.setBackground( Color.blue ) ;
		// ajout des boutons au conteneur
		for ( int  i = nbreBtn-1 ; i >= 0 ;  i -- )  {
			tblBtn[ i ] = new JButton ( " " +  i  ) ;
			cont1BtnChiffre.add( tblBtn[i] ) ;
		}// de for
 
		this.setContentPane( cont1 ) ;
		this.setVisible( true ) ;
 
	}// de constructeur
 
}// de class Fenetre