Interfaces Graphiques : AWT

Transcription

Interfaces Graphiques : AWT
Interfaces Graphiques : AWT
Philippe Roose (IUT Bayonne)
Olivier Dedieu (INRIA)
Abstract Window Toolkit
■
AWT comporte :
– des widgets
– des LayoutManager
– Un mécanisme de gestion d'événements, ...
Généralités
■
Les widgets
–
–
–
–
–
–
–
–
–
–
java.awt.Button
java.awt.Canvas
java.awt.Checkbox
java.awt.Choice
java.awt.Label
java.awt.List
java.awt.MenuBar
java.awt.MenuItem
java.awt.TextArea
java.awt.TextField
Généralités
■
java.awt.FlowLayout
one
four
three
two
five
Généralités
■
java.awt.BorderLayout
North
West
Center
South
East
Généralités
■
java.awt.GridLayout
one
two
three
four
five
six
Exemple
Exemple
MenuBar
Label
TextField
Choice
List
Checkbox
Button
Exemple
// Text Field Panel
Panel tfPanel = new Panel(new FlowLayout(FlowLayout.LEFT));
label = new Label("TextField");
tfdPanel.add(label);
textField = new TextField(15);
tfPanel.add(textField);
Exemple
// Choice Panel
Panel chPanel = new Panel(new FlowLayout(FlowLayout.LEFT));
label = new Label("Choice");
chPanel.add(label);
choice = new Choice();
choice.addItem("Solaris");
choice.addItem("Linux");
choice.addItem("Aix");
chPanel.add(choice);
Exemple
// List Panel
Panel listPanel = new Panel(new FlowLayout(FlowLayout.LEFT));
label = new Label("List");
listPanel.add(label);
list = new List();
list.addItem("Solaris");
list.addItem("Linux");
list.addItem("Aix");
listPanel.add(list);
Exemple
// Checkbox Panel
Panel cbPanel = new Panel(new FlowLayout(FlowLayout.LEFT));
cbSolaris = new Checkbox("Solaris");
cbPanel.add(cbSolaris);
cbLinux = new Checkbox("Linux");
cbPanel.add(cbLinux);
cbAix = new Checkbox("Aix");
cbPanel.add(cbAix);
Exemple
// RadioButton Panel
Panel rbPanel = new Panel(new FlowLayout(FlowLayout.LEFT));
rbGroup = new CheckboxGroup();
rbSolaris = new Checkbox("Solaris");
rbSolaris.setCheckboxGroup(rbGroup);
rbPanel.add(rbSolaris);
rbLinux = new Checkbox("Linux");
rbLinux.setCheckboxGroup(rbGroup);
rbPanel.add(rbLinux);
rbAix = new Checkbox("Aix");
rbAix.setCheckboxGroup(rbGroup);
rbPanel.add(rbAix);
rbGroup.setSelectedCheckbox(rbSolaris);
Exemple
// Button Panel
Panel btPanel = new Panel(new FlowLayout(FlowLayout.LEFT));
okButton = new Button("Ok");
okButton.addActionListener(new OkButtonListener());
btPanel.add(okButton);
cancelButton = new Button("Cancel");
cancelButton.addActionListener(new CancelButtonListener());
btPanel.add(cancelButton);
Exemple
// Menu Bar
Menu procMenu = new Menu("Procedural");
procMenu.add(new MenuItem("Pascal"));
...
Menu ooMenu = new Menu("Object Oriented");
ooMenu.add(new MenuItem("SmallTalk"));
...
Menu funcMenu = new Menu("Functional");
funcMenu.add(new MenuItem("Lisp"));
...
Menu languageMenu = new Menu("Languages");
languageMenu.add(procMenu);
...
MenuBar mb = new MenuBar();
mb.add(languageMenu);
Exemple
public class FrameExample extends Frame {
public FrameExample(String title) {
super(title);
// Widget, panel, menu bar creation
...
setMenuBar(mb);
setLayout(new GridLayout(0, 1, 2, 2));
add(textFieldPanel);
add(choicePanel);
add(listPanel);
add(checkboxPanel);
add(radioButtonPanel);
add(buttonPanel);
pack();
show();
}
Gestion des événements souris
(déplacements)
■
public boolean mouseDown(Event, int, int)
– bouton appuyé
■
public boolean mouseUp(Event, int, int)
– bouton lâché
■
public boolean mouseMove(Event, int, int)
– souris déplacée
■
public boolean mouseEnter(Event, int, int)
– souris entre dans la zone de l’applet
■
public boolean mouseExit(Event, int, int)
– souris sort de la zone de l’applet
■
public boolean mouseDrag(Event, int, int)
– souris déplacée avec bouton appuyé
Gestion des événements clavier
■
public boolean keyDown(Event, int)
– touche appuyée
■
public boolean keyUp(Event, int)
– touche lâchée
Gestion des événements
■
■
public boolean action(Event, Object)
Exemple 1:
public boolean action(Event e, Object c) {
if (e.target == boutonOK)
…; return true;
if (e.target == listeChoix)
…; return true;
return false;
}
Événements « actionListener »
■
■
■
■
Autre moyen : actionListener (gestionnaire
d ’actions)
Un gestionnaire d ’action = objet
implémentant l ’interface ActionListener (dans
le paquetage java.awt.event)
Association à une widget avec la méthode
addActionListener()
Possibilités d ’associer plusieurs
gestionnaires d ’action à une widget.
Exemple
Extrait d ’une classe (avec import java.awt.event.*; )
Button b4 = new Button("Envoyer...");
b4.addActionListener(new actionBouton());
Gestion de l ’événement
class actionBouton implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.println("Bouton Appuyé");
}
}

Documents pareils