PERSONNALISATION DE L`APPARENCE DES COMPOSANTS

publicité
LES
LES MENUS
MENUS
Par
Par convention,
convention, les
les menus
menus ne
ne sont
sont pas
pas placés
placés
dans
dans d'autres
d'autres composants
composants de
de l'interface
l'interface
Æ
Æ pas
pas d'ajout
d'ajout au
au content
content pane.
pane.
Ils
Ils apparaissent
apparaissent soit
soit dans
dans une
une barre
barre de
de menus,
menus,
soit
soit dans
dans un
un menu
menu contextuel.
contextuel.
frame.setJMenuBar(demo.creationBarreMenu());
frame.setJMenuBar(demo.creationBarreMenu());
JPopupMenu
JPopupMenu popup
popup == new
new JPopupMenu();
JPopupMenu();
public void setJMenuBar(JMenuBar menuBarre)
positionne la barre de menus pour une fenêtre (Frame)
Paramètre:
menuBarre – la barre de menu à placer dans la Frame.
1-248
JAVA
Christine BONNET
HIÉRARCHIE
HIÉRARCHIE DE
DE COMPOSANTS
COMPOSANTS D'UN
D'UN MENU
MENU
••
••
••
••
••
••
JMenuBar
JMenuBar :: sert
sert àà créer
créer une
une barre
barre de
de menus
menus
JPopupMenu
JPopupMenu :: sert
sert àà créer
créer un
un menu
menu contextuel
contextuel
JMenuItem
JMenuItem :: sert
sert àà créer
créer un
un item
item de
de menu
menu
JMenu
JMenu :: sert
sert àà créer
créer un
un menu
menu
JCheckBoxMenuItem
JCheckBoxMenuItem :: item
item de
de menu
menu àà cocher
cocher
JRadioButtonMenuItem
JRadioButtonMenuItem :: item
item avec
avec une
une puce
puce radio
radio
1-249
JAVA
Christine BONNET
EXEMPLE
EXEMPLE :: EXÉCUTION
EXÉCUTION
1-250
JAVA
Christine BONNET
EXEMPLE
EXEMPLE :: CODE
CODE
import
import java.awt.*;
java.awt.*;
import
import java.awt.event.*;
java.awt.event.*;
import
import javax.swing.*;
javax.swing.*;
public
public class
class MenuDemo
MenuDemo {{
public
public JMenuBar
JMenuBar creationBarreMenu()
creationBarreMenu() {{
JMenuBar
JMenuBar barreMenu;
barreMenu;
JMenu
JMenu menu,
menu, submenu;
submenu;
JMenuItem
JMenuItem menuItem;
menuItem;
JRadioButtonMenuItem
JRadioButtonMenuItem rbMenuItem;
rbMenuItem;
JCheckBoxMenuItem
JCheckBoxMenuItem cbMenuItem;
cbMenuItem;
//
// Création
Création de
de la
la barre
barre de
de menu
menu
barreMenu
barreMenu == new
new JMenuBar();
JMenuBar();
//
// Premier
Premier menu
menu
menu
menu == new
new JMenu("Un
JMenu("Un Menu");
Menu");
menu.setMnemonic(KeyEvent.VK_U);
menu.setMnemonic(KeyEvent.VK_U);
barreMenu.add(menu);
barreMenu.add(menu);
1-251
JAVA
Christine BONNET
//
// Un
Un groupe
groupe d'items
d'items de
de JMenuItem
JMenuItem
menuItem
menuItem == new
new JMenuItem("Un
JMenuItem("Un item
item de
de menu
menu texte",
texte",
KeyEvent.VK_T);
KeyEvent.VK_T);
menuItem.setAccelerator(KeyStroke.getKeyStroke(
menuItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_1,
KeyEvent.VK_1, ActionEvent.ALT_MASK));
ActionEvent.ALT_MASK));
menu.add(menuItem);
menu.add(menuItem);
ImageIcon
ImageIcon icon
icon == new
new
ImageIcon("ImagesProgJava/Gif2/middle.gif");
ImageIcon("ImagesProgJava/Gif2/middle.gif");
menuItem
menuItem == new
new JMenuItem("Texte
JMenuItem("Texte et
et icône",
icône", icon);
icon);
menuItem.setMnemonic(KeyEvent.VK_I);
menuItem.setMnemonic(KeyEvent.VK_I);
menu.add(menuItem);
menu.add(menuItem);
menuItem
menuItem == new
new JMenuItem(icon);
JMenuItem(icon);
menu.add(menuItem);
menu.add(menuItem);
1-252
JAVA
Christine BONNET
//
// Un
Un groupe
groupe de
de boutons
boutons radio
radio de
de menu
menu
menu.addSeparator();
menu.addSeparator(); //// dessine
dessine une
une ligne
ligne de
de séparation
séparation dans
dans le
le menu
menu
ButtonGroup
ButtonGroup group
group == new
new ButtonGroup();
ButtonGroup();
rbMenuItem
rbMenuItem == new
new JRadioButtonMenuItem("Un
JRadioButtonMenuItem("Un item
item de
de bouton
bouton radio
radio
de
de menu");
menu");
rbMenuItem.setSelected(true);
rbMenuItem.setSelected(true);
rbMenuItem.setMnemonic(KeyEvent.VK_R);
rbMenuItem.setMnemonic(KeyEvent.VK_R);
group.add(rbMenuItem);
group.add(rbMenuItem);
menu.add(rbMenuItem);
menu.add(rbMenuItem);
rbMenuItem
rbMenuItem == new
new JRadioButtonMenuItem("Un
JRadioButtonMenuItem("Un autre");
autre");
rbMenuItem.setMnemonic(KeyEvent.VK_U);
rbMenuItem.setMnemonic(KeyEvent.VK_U);
rbMenuItem.addActionListener(new
rbMenuItem.addActionListener(new MonActionListener());
MonActionListener());
group.add(rbMenuItem);
group.add(rbMenuItem);
menu.add(rbMenuItem);
menu.add(rbMenuItem);
//
// Un
Un groupe
groupe d'items
d'items de
de cases
cases àà cocher
cocher
menu.addSeparator();
menu.addSeparator();
cbMenuItem
cbMenuItem == new
new JCheckBoxMenuItem("Un
JCheckBoxMenuItem("Un item
item de
de case
case àà cocher
cocher de
de
menu");
menu");
cbMenuItem.setMnemonic(KeyEvent.VK_C);
cbMenuItem.setMnemonic(KeyEvent.VK_C);
menu.add(cbMenuItem);
menu.add(cbMenuItem);
cbMenuItem
cbMenuItem == new
new JCheckBoxMenuItem("Un
JCheckBoxMenuItem("Un autre");
autre");
cbMenuItem.setMnemonic(KeyEvent.VK_N);
cbMenuItem.setMnemonic(KeyEvent.VK_N);
menu.add(cbMenuItem);
menu.add(cbMenuItem);
1-253
JAVA
Christine BONNET
//
// Un
Un sous-menu
sous-menu
menu.addSeparator();
menu.addSeparator();
submenu
submenu == new
new JMenu("Un
JMenu("Un sous-menu");
sous-menu");
submenu.setMnemonic(KeyEvent.VK_S);
submenu.setMnemonic(KeyEvent.VK_S);
menuItem
menuItem == new
new JMenuItem("Un
JMenuItem("Un item
item dans
dans le
le sous-menu");
sous-menu");
menuItem.setAccelerator(KeyStroke.getKeyStroke(
menuItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_2,
KeyEvent.VK_2, ActionEvent.ALT_MASK));
ActionEvent.ALT_MASK));
submenu.add(menuItem);
submenu.add(menuItem);
menuItem
menuItem == new
new JMenuItem("Un
JMenuItem("Un autre
autre item");
item");
submenu.add(menuItem);
submenu.add(menuItem);
menu.add(submenu);
menu.add(submenu);
//
// Deuxième
Deuxième menu
menu dans
dans la
la barre
barre de
de menus
menus
menu
menu == new
new JMenu("Un
JMenu("Un autre
autre menu");
menu");
menu.setMnemonic(KeyEvent.VK_N);
menu.setMnemonic(KeyEvent.VK_N);
barreMenu.add(menu);
barreMenu.add(menu);
return
return barreMenu;
barreMenu;
}}
public
public Container
Container creationContentPane()
creationContentPane() {{
//
// Création
Création du
du content
content pane
pane :: JPanel
JPanel
JPanel
JPanel contentPane
contentPane == new
new JPanel(new
JPanel(new BorderLayout());
BorderLayout());
return
return contentPane;
contentPane;
}}
1-254
JAVA
Christine BONNET
public
public class
class MonActionListener
MonActionListener implements
implements ActionListener
ActionListener {{
public
public void
void actionPerformed(ActionEvent
actionPerformed(ActionEvent e)
e) {{
JMenuItem
JMenuItem source
source == (JMenuItem)(e.getSource());
(JMenuItem)(e.getSource());
JDialog
JDialog jD
jD == new
new JDialog();
JDialog();
JLabel
JLabel j1;
j1;
if
if (source.getText()
(source.getText() ==
== "Un
"Un autre")
autre") {{
j1
j1 == new
new JLabel("Vous
JLabel("Vous avez
avez choisi
choisi un
un item
item
de
de bouton
bouton radio");
radio");
}} else
else if
if ………etc.
………etc.
jD.setBounds(100,50,
jD.setBounds(100,50, 250,200);
250,200);
jD.getContentPane().add(j1);
jD.getContentPane().add(j1);
jD.show();
jD.show();
}}
}}
public
public static
static void
void main(String[]
main(String[] args)
args) {{
JFrame
JFrame frame
frame == new
new JFrame("Menu
JFrame("Menu de
de démonstration");
démonstration");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//
// Création
Création du
du content
content pane
pane
MenuDemo
MenuDemo demo
demo == new
new MenuDemo();
MenuDemo();
frame.setJMenuBar(demo.creationBarreMenu());
frame.setJMenuBar(demo.creationBarreMenu());
frame.setContentPane(demo.creationContentPane());
frame.setContentPane(demo.creationContentPane());
frame.setSize(450,
frame.setSize(450, 260);
260);
frame.setVisible(true);
frame.setVisible(true);
}}
}}
1-255
JAVA
Christine BONNET
LES
LES BARRES
BARRES D'OUTILS
D'OUTILS
classe
classe JToolBar
JToolBar
••
Une
Une barre
barre d'outils
d'outils JToolBar
JToolBar est
est un
un conteneur
conteneur qui
qui
groupe
groupe généralement
généralement des
des boutons
boutons avec
avec des
des icônes
icônes
dans
dans une
une ligne
ligne ou
ou une
une colonne.
colonne.
••
Une
Une barre
barre d'outils
d'outils facilite
facilite l'accès
l'accès aux
aux fonctionnalités
fonctionnalités
de
de l'application.
l'application.
••
Par
Par défaut
défaut la
la barre
barre d'outils
d'outils peut
peut être
être tirée
tirée ("drag")
("drag") sur
sur
un
un des
des bords
bords de
de son
son conteneur
conteneur ou
ou en
en dehors
dehors de
de la
la
fenêtre
fenêtre de
de base.
base. Le
Le conteneur
conteneur doit
doit alors
alors utiliser
utiliser la
la
présentation
présentation BorderLayout.
BorderLayout. La
La barre
barre d'outils
d'outils ne
ne doit
doit
pas
pas être
être dans
dans le
le centre.
centre.
1-256
JAVA
Christine BONNET
EXEMPLE
EXEMPLE :: EXÉCUTION
EXÉCUTION
1-257
JAVA
Christine BONNET
import
import ………….
………….
EXEMPLE
EXEMPLE :: CODE
CODE
public
public class
class ToolBarDemo
ToolBarDemo extends
extends JPanel
JPanel
implements
implements ActionListener
ActionListener {{
protected
protected JTextArea
JTextArea textArea;
textArea;
protected
protected String
String newline
newline == "\n";
"\n";
static
static final
final private
private String
String PREVIOUS
PREVIOUS == "précédent";
"précédent";
static
static final
final private
private String
String UP
UP == "haut";
"haut";
static
static final
final private
private String
String NEXT
NEXT == "suivant";
"suivant";
public
public ToolBarDemo()
ToolBarDemo() {{
super(new
super(new BorderLayout());
BorderLayout());
//
// Création
Création de
de la
la barre
barre d'outils
d'outils
JToolBar
JToolBar toolBar
toolBar == new
new JToolBar();
JToolBar();
ajoutBoutons(toolBar);
ajoutBoutons(toolBar);
//
// Création
Création de
de la
la zone
zone de
de texte
texte pour
pour les
les affichages
affichages
//
// espace
espace suffisant
suffisant pour
pour 55 lignes
lignes et
et 30
30 colonnes
colonnes
textArea
textArea == new
new JTextArea(5,
JTextArea(5, 30);
30);
textArea.setEditable(false);
textArea.setEditable(false);
JScrollPane
JScrollPane scrollPane
scrollPane == new
new JScrollPane(textArea);
JScrollPane(textArea);
//
// Ajout
Ajout au
au panel
panel principal
principal
setPreferredSize(new
setPreferredSize(new Dimension(450,
Dimension(450, 130));
130));
add(toolBar,
add(toolBar, BorderLayout.BEFORE_FIRST_LINE);
BorderLayout.BEFORE_FIRST_LINE);
add(scrollPane,
add(scrollPane, BorderLayout.CENTER);
BorderLayout.CENTER);
}}
1-258
JAVA
Christine BONNET
protected
protected void
void ajoutBoutons(JToolBar
ajoutBoutons(JToolBar toolBar)
toolBar) {{
JButton
JButton bouton
bouton == null;
null;
//
// Premier
Premier bouton
bouton
bouton
bouton == creerBoutonDeNavigation("prev.gif",
creerBoutonDeNavigation("prev.gif", PREVIOUS,
PREVIOUS,
"Niveau
"Niveau Précédent");
Précédent");
toolBar.add(bouton);
toolBar.add(bouton);
//
// Deuxième
Deuxième bouton
bouton
bouton
bouton == creerBoutonDeNavigation("upArrow.gif",
creerBoutonDeNavigation("upArrow.gif", UP,
UP,
"Haut
"Haut de
de Page");
Page");
toolBar.add(bouton);
toolBar.add(bouton);
//
// Troisième
Troisième bouton
bouton
bouton
bouton == creerBoutonDeNavigation("next.gif",
creerBoutonDeNavigation("next.gif", NEXT,
NEXT,
"Niveau
"Niveau Suivant");
Suivant");
toolBar.add(bouton);
toolBar.add(bouton);
}}
1-259
JAVA
Christine BONNET
protected
protected JButton
JButton creerBoutonDeNavigation(String
creerBoutonDeNavigation(String imageName,
imageName,
String
String actionCommand,
actionCommand, String
String toolTipText)
toolTipText) {{
//
// Création
Création et
et initialisation
initialisation des
des boutons.
boutons.
JButton
JButton bouton
bouton == new
new JButton();
JButton();
bouton.setActionCommand(actionCommand);
bouton.setActionCommand(actionCommand);
bouton.setToolTipText(toolTipText);
bouton.setToolTipText(toolTipText); //
// info-bulle
info-bulle
bouton.addActionListener(this);
bouton.addActionListener(this);
bouton.setIcon(new
bouton.setIcon(new ImageIcon(imageName));
ImageIcon(imageName));
return
return bouton;
bouton;
}}
public
public void
void actionPerformed(ActionEvent
actionPerformed(ActionEvent e)
e) {{
String
String cmd
cmd == e.getActionCommand();
e.getActionCommand();
String
String description
description == null;
null;
//
// Gestion
Gestion de
de chaque
chaque bouton
bouton
if
if (PREVIOUS.equals(cmd))
(PREVIOUS.equals(cmd)) {{ //
// premier
premier bouton
bouton cliqué
cliqué
description
description == "été
"été au
au niveau
niveau précédent
précédent <quelque
<quelque chose>.";
chose>.";
}} else
else if
if (UP.equals(cmd))
(UP.equals(cmd)) {{ //
// deuxième
deuxième bouton
bouton cliqué
cliqué
description
description == "été
"été au
au début
début de
de <something>.";
<something>.";
}} else
else if
if (NEXT.equals(cmd))
(NEXT.equals(cmd)) {{ //
// troisième
troisième bouton
bouton cliqué
cliqué
description
description == "été
"été au
au niveau
niveau suivant
suivant <quelque
<quelque chose>.";
chose>.";
}}
afficheResultat("Dans
afficheResultat("Dans une
une véritable
véritable application
application vous
vous auriez
auriez ""
++ description);
description);
}}
1-260
JAVA
Christine BONNET
protected
protected void
void afficheResultat(String
afficheResultat(String
textArea.append(actionDescription
textArea.append(actionDescription
}}
actionDescription)
actionDescription) {{
++ newline);
newline);
public
public static
static void
void main(String[]
main(String[] args)
args) {{
JFrame
JFrame frame
frame == new
new JFrame("Barre
JFrame("Barre d'outils
d'outils Démonstration");
Démonstration");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ToolBarDemo
ToolBarDemo newContentPane
newContentPane == new
new ToolBarDemo();
ToolBarDemo();
frame.setContentPane(newContentPane);
frame.setContentPane(newContentPane);
frame.pack();
frame.pack();
frame.setVisible(true);
frame.setVisible(true);
}}
}}
1-261
JAVA
Christine BONNET
18
COMPLÉMENTS
1-262
JAVA
Christine BONNET
PERSONNALISATION
PERSONNALISATION DE
DE L’APPARENCE
L’APPARENCE
DES
DES COMPOSANTS
COMPOSANTS
Encadrements
Encadrements (Borders)
(Borders) :: espacements,
espacements, titres
titres
•• Les
Les bordures
bordures sont
sont des
des objets.
objets.
••
Pour
Pour créer
créer des
des bordures
bordures utilisation
utilisation de
de la
la classe
classe
BorderFactory.
BorderFactory.
••
Pour
Pour affecter
affecter une
une bordure
bordure àà un
un composant
composant (JComponent):
(JComponent):
méthode
méthode setBorder()
setBorder()
Pour
Pour utiliser
utiliser la
la même
même bordure
bordure pour
pour plusieurs
plusieurs composants
composants
Æ
Æ création
création séparée
séparée puis
puis affectation.
affectation.
1-263
JAVA
Christine BONNET
Types
Types de
de bordure
bordure
Border
Border blackline,
blackline, etched,
etched, raisedbevel,
raisedbevel, loweredbevel,empty;
loweredbevel,empty;
blackline
blackline == BorderFactory.createLineBorder(Color.black);
BorderFactory.createLineBorder(Color.black);
etched
etched == BorderFactory.createEtchedBorder();
BorderFactory.createEtchedBorder();
raisedbevel
raisedbevel == BorderFactory.createRaisedBevelBorder();
BorderFactory.createRaisedBevelBorder();
loweredbevel
loweredbevel == BorderFactory.createLoweredBevelBorder();
BorderFactory.createLoweredBevelBorder();
empty
empty == BorderFactory.createEmptyBorder();
BorderFactory.createEmptyBorder();
//// jComp1,
jComp1, 2,
2, 3,
3, 44 :: JPanel
JPanel
jComp1.setBorder(blackline);
jComp1.setBorder(blackline);
jComp2.setBorder(raisedbevel);
jComp2.setBorder(raisedbevel);
jComp3.setBorder(loweredbevel);
jComp3.setBorder(loweredbevel);
jComp4.setBorder(empty);
jComp4.setBorder(empty);
1-264
JAVA
Christine BONNET
createEmptyBorder
createEmptyBorder
Création d'une bordure invisible
– sans argument :
Border createEmptyBorder()
Æ utile pour créer une bordure
titrée sans borne visible.
– avec arguments : nombres de pixels que la
bordure occupe en haut, à gauche, en bas, à
droite (dans cet ordre)
Border createEmptyBorder(int, int,
int, int)
Æ utile pour mettre des espaces autour d'un
composant.
1-265
JAVA
Christine BONNET
Bordures
Bordures titrées
titrées
//
// Bordures
Bordures titres
titres
TitledBorder
TitledBorder title;
title;
title
title == BorderFactory.createTitledBorder("title");
BorderFactory.createTitledBorder("title");
jComp5.setBorder(title);
jComp5.setBorder(title);
title
title == BorderFactory.createTitledBorder(
BorderFactory.createTitledBorder( blackline,
blackline, "title");
"title");
title.setTitleJustification(TitledBorder.CENTER);
title.setTitleJustification(TitledBorder.CENTER);
jComp6.setBorder(title);
jComp6.setBorder(title);
title
title == BorderFactory.createTitledBorder(
BorderFactory.createTitledBorder( loweredetched,
loweredetched, "title");
"title");
title.setTitleJustification(TitledBorder.RIGHT);
title.setTitleJustification(TitledBorder.RIGHT);
jComp7.setBorder(title);
jComp7.setBorder(title);
title
title == BorderFactory.createTitledBorder(
BorderFactory.createTitledBorder( loweredbevel,
loweredbevel, "title");
"title");
title.setTitlePosition(TitledBorder.ABOVE_TOP);
title.setTitlePosition(TitledBorder.ABOVE_TOP);
jComp8.setBorder(title);
jComp8.setBorder(title);
title
title == BorderFactory.createTitledBorder(
BorderFactory.createTitledBorder( empty,
empty, "title");
"title");
title.setTitlePosition(TitledBorder.BOTTOM);
title.setTitlePosition(TitledBorder.BOTTOM);
jComp9.setBorder(title);
jComp9.setBorder(title);
1-266
JAVA
Christine BONNET
TitledBorder
TitledBorder
TitledBorder
String, int,
createTitledBorder(Border,
int)
Paramètres :
– Bordure,
– Titre de la bordure,
– Position du titre : ABOVE_TOP, TOP (par défaut),
BELOW_TOP, ABOVE_BOTTOM, BOTTOM, et BELOW_BOTTOM
et
– Justification : LEADING (par défaut), CENTER, ou
TRAILING
1-267
JAVA
Christine BONNET
PERSONNALISATION
PERSONNALISATION DE
DE L’APPARENCE
L’APPARENCE DES
DES COMPOSANTS
COMPOSANTS (suite)
(suite)
Positionnement
Positionnement absolu
absolu
Pas
Pas d’utilisation
d’utilisation de
de gestionnaire
gestionnaire de
de présentation
présentation
conteneur.setLayout(null); // pas de gestionnaire de présentation
JButton b1 = new JButton("un");
JButton b2 = new JButton("deux");
conteneur.add(b1);
conteneur.add(b2);
Dimension size = b1.getPreferredSize(); // renvoie la taille choisie pour le composant
b1.setBounds(25, 5, size.width, size.height);
// setBounds : coord. x, y, largeur, hauteur
size = b2.getPreferredSize();
b2.setBounds(55, 40, size.width, size.height);
...//In the main method:
frame.setSize(300, 125);
// setSize : largeur, hauteur
1-268
JAVA
Christine BONNET
PERSONNALISATION
PERSONNALISATION DE
DE L’APPARENCE
L’APPARENCE DES
DES COMPOSANTS
COMPOSANTS (suite)
(suite)
Utilisation
Utilisation de
de gestionnaires
gestionnaires de
de présentation
présentation
Imbriquer
Imbriquer des
des panneaux
panneaux et
et des
des gestionnaires
gestionnaires de
de
présentation
présentation est
est une
une pratique
pratique courante
courante permettant
permettant d'avoir
d'avoir
un
un contrôle
contrôle très
très précis
précis sur
sur la
la présentation
présentation de
de l'application
l'application ..
••
Affichage
Affichage d'un
d'un composant
composant dans
dans un
un espace
espace aussi
aussi grand
grand que
que
celui-ci
celui-ci peut
peut occuper
occuper ::
Æ
Æ GridLayout
GridLayout (seul
(seul composant
composant du
du conteneur)
conteneur) ou
ou
GridBagLayout
GridBagLayout (sinon)
(sinon) ,, BorderLayout
BorderLayout
••
Affichage
Affichage de
de composants
composants en
en lignes
lignes ::
Æ
Æ Utilisation
Utilisation d'un
d'un JPanel
JPanel pour
pour grouper
grouper les
les composants
composants et
et
FlowLayout,
FlowLayout, BoxLayout
BoxLayout (ou
(ou SpringLayout)
SpringLayout)
1-269
JAVA
Christine BONNET
•
Affichage de composants de même taille, en lignes et en
colonnes Æ GridLayout
•
Affichage de composants dans une ligne ou une colonne,
avec éventuellement des espaces variables entre eux, des
alignements ou des tailles spécifiques de composants :
Æ BoxLayout
•
Affichage de colonnes alignées (par exemple, une colonne
de labels utilisée pour décrire des champs texte d'une
colonne adjacente) Æ SpringLayout
•
Affichage d'une présentation complexe avec plusieurs
composants :
Æ GridBagLayout ou SpringLayout, ou grouper les
composants dans un ou plusieurs JPanels (avec des
gestionnaires de présentation différents).
1-270
JAVA
Christine BONNET
Téléchargement