33
JFrame
import java.awt.Color;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
public class MyVeryFirstJFrame extends JFrame {
private static final long serialVersionUID = 1L;
class Fermeur extends WindowAdapter {
public void windowClosing (WindowEvent e) {
System.exit (0) ;
}
}
public MyVeryFirstJFrame () {
super ("My Very First JFrame") ;
addWindowListener (new Fermeur ()) ;
getContentPane ().setBackground (Color.cyan) ;
setSize (800, 600) ;
setVisible (true) ;
}
public static void main (String argvs []) {
new MyVeryFirstJFrame () ;
}
}
34
Positionnement : BorderLayout
!Héritage :
"java.lang.Object
"java.awt.BorderLayout
!Gestionnaire de positionnement à 5 zones :
"BorderLayout.NORTH
"BorderLayout.SOUTH
"BorderLayout.EAST
"BorderLayout.WEST
"BorderLayout.CENTER
35
JFrame et BorderLayout (1/2)
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class MyFirstJFrame extends JFrame {
private static final long serialVersionUID = 1L;
public MyFirstJFrame () {
super ("My First JFrame") ;
addWindowListener (new Fermeur ()) ;
getContentPane ().add (BorderLayout.NORTH, new JButton ("North")) ;
getContentPane ().add (BorderLayout.SOUTH, new JButton ("South")) ;
getContentPane ().add (BorderLayout.EAST, new JButton ("East")) ;
getContentPane ().add (BorderLayout.WEST, new JButton ("West")) ;
getContentPane ().add (BorderLayout.CENTER, new JButton ("Center")) ;
pack () ;
setVisible (true) ;
}
public static void main (String argvs []) {
new MyFirstJFrame () ;
}
}
36
JFrame et BorderLayout (2/2)
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class Fermeur extends WindowAdapter {
public void windowClosing (WindowEvent e) {
System.exit (0) ;
}
}
37
Positionnement : GridLayout
!Héritage :
"java.lang.Object
"java.awt.GridLayout
!Gestionnaire de positionnement en lignes et
colonnes
!Toutes les « cases » sont de taille identique
38
JFrame et GridLayout v1
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class MyJFrameWithGridLayout extends JFrame {
private static final long serialVersionUID = 1L;
public MyJFrameWithGridLayout () {
super ("JFrame With GridLayout") ;
addWindowListener (new Fermeur ()) ;
// rangement en 3 lignes de 2 colonnes
setLayout (new GridLayout (3,2)) ;
add (new JButton ("1")) ; add (new JButton ("2")) ;
add (new JButton ("3")) ; add (new JButton ("4")) ;
add (new JButton ("5")) ; add (new JButton ("6")) ;
pack () ;
setVisible (true) ;
}
public static void main (String argvs []) {
new MyJFrameWithGridLayout () ;
}
}
39
JFrame et GridLayout v2
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class MyJFrameWithGridLayout extends JFrame {
private static final long serialVersionUID = 1L;
public MyJFrameWithGridLayout () {
super ("JFrame With GridLayout") ;
addWindowListener (new Fermeur ()) ;
// rangement en 3 lignes de 2 colonnes
setLayout (new GridLayout (3,2)) ;
add (new JButton ("1")) ; add (new JButton ("2")) ;
add (new JButton ("3")) ; add (new JButton ("4")) ;
add (new JButton ("5")) ; add (new JButton ("6")) ;
setSize (300, 450) ;
setVisible (true) ;
}
public static void main (String argvs []) {
new MyJFrameWithGridLayout () ;
}
}
40
Positionnement : GridBagLayout
!Gestionnaire de positionnement souple :
"fait des alignements horizontaux et verticaux
"maintient une grille rectangulaire et dynamique de cellules
"les contenus ne sont pas forcément de la même taille :
•un composant peut occuper plusieurs cases de la grille
!Chaque composant géré par un GridBagLayout est
associé à une instance de GridBagConstraints qui
précise comment le composant doit être placé dans
sa zone d’affichage