Marge entre Fenetre et JPanel
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:
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 |