|
Version
pour impression
(Mise à jour le 25/03/2002)
Auteur : Xavier MEHAUT
Le but de ce document est de montrer comment faire une application en mode
stand-alone dans Eclipse en utilisant la bibliothèque JFace.
Les étapes :
Créer un projet
Première étape : créer un projet EssaiJFace à l'aide du menu
File->New-Project
Modifier les propriétés du projet
Modifier les paramètres du projet pour ajouter les chemins d'accès aux bibliothèques
utilisées. Il faut ajouter par rapport à SWT le bibliothèque org.eclipse.core.runtime/runtime.jar

Créer une classe
Pour créer une application, il est nécessaire de faire une sous-classe de la
classe ApplicationWindow de la manière suivante :
import
org.eclipse.jface.window.ApplicationWindow;
import
org.eclipse.swt.SWT;
import
org.eclipse.swt.widgets.Shell;
public
class
TestJFace
extends
ApplicationWindow {
public
TestJFace(Shell parentShell) {
super
(parentShell);
}
public
static
void
main(String[] args) {
Display display = new
Display();
Shell aShell = new
Shell(display);
TestJFace application = new
TestJFace(aShell);
application.open();
}
}
Les méthodes à surcharger
Pour étendre le nombre de fonctionnalités pour le moment bien minces de notre
application, nous devons tout d'abord redéfinir des méthodes déjà définies dans
ApplicationWindow ou dans sa super-classes Window.
Pour étendre le nombre
de fonctionnalités pour le moment bien minces de notre application, nous devons
tout d'abord redéfinir des méthodes déjà définies dans ApplicationWindow
ou dans sa super-classes Window.
-
protected
Control createContents(Composite parent) : cette
méthode est appelée lors de la création des divers composants de la fenêtre.
C'est ici que sont créés les composants, eg status bar, tool bar, menu bar,
composites, ...
-
protected
void
handleShellCloseEvent() : méthode
à redéfinir si l'on désire faire une action à la sortie de la fenêtre
-
protected
Point getInitialSize() : méthode
permettant d'initialiser la taille de la fenêtre
-
protected
Point getInitialLocation() : méthode
permettant d'initialiser la position de la fenêtre
-
protected
void
configureShell(Shell shell): cette
méthode peut également être redéfinie pour initialiser l'application après
création des widgets
-
protected
void
createMenuManager() : pour
définir le menu
-
protected
void
createToolManager(int i) : pour
définir la barre d'outils
-
protected void createStatusLineManager() : pour
définir la barre de statut
Exemple d'application JFace
ET voici un exemple presque
complet ;-) ...Bonne continuation avec JFace!!!
package
exemple;
import
org.eclipse.jface.action.Action;
import
org.eclipse.jface.action.GroupMarker;
import
org.eclipse.jface.action.MenuManager;
import
org.eclipse.jface.action.ToolBarManager;
import
org.eclipse.jface.dialogs.IDialogConstants;
import
org.eclipse.jface.dialogs.MessageDialog;
import
org.eclipse.jface.window.ApplicationWindow;
import
org.eclipse.swt.SWT;
import
org.eclipse.swt.graphics.Point;
import
org.eclipse.swt.widgets.Composite;
import
org.eclipse.swt.widgets.Control;
import
org.eclipse.swt.widgets.Display;
import
org.eclipse.swt.widgets.Group;
import
org.eclipse.swt.widgets.MenuItem;
import
org.eclipse.swt.widgets.Shell;
import
org.eclipse.swt.widgets.Table;
public
class TestJFace
extends ApplicationWindow
{
public TestJFace(Shell
parentShell) {
super
(parentShell);
}
public
static
void
main(String[] args) {
Display
display = new
Display();
Shell
aShell = new
Shell(display);
TestJFace
application = new
TestJFace(aShell);
application.createComponents();
application.open();
application.setStatus( "sdqds"
);
}
public
void createComponents()
{
addMenuBar();
addStatusLine();
addToolBar(SWT.FLAT
| SWT.WRAP);
setBlockOnOpen( true
);
};
protected MenuManager
createMenuManager() {
MenuManager
menuManager = new
MenuManager();
menuManager.add(createHelpMenu());
return
menuManager;
}
private MenuManager
createHelpMenu() {
MenuManager
menu = new
MenuManager(
"Help"
,
"Id01"
);
menu.add( new
GroupMarker(
"About"
));
menu.add(createAboutAction());
return
menu;
}
private Action
createAboutAction() {
return
new Action()
{
public
String getText() {
return
"Essai"
;
}
public
void
run() {
String[]
tab = { IDialogConstants.OK_LABEL };
MessageDialog
dialog =
new MessageDialog(
getShell(),
"Essai JFace"
,
null
,
"Ceci est
une fenêtre d''information"
,
MessageDialog.INFORMATION,
tab,
0);
dialog.open();
}
};
}
protected
void
configureShell(Shell shell) {
super
.configureShell(shell);
shell.setText( "Essai JFace"
);
}
protected Point
getInitialSize() {
return
new
Point(600, 400);
}
protected Point
getInitialLocation() {
return
new
Point(600, 400);
}
protected
void
handleShellCloseEvent() {
String[]
tab = { IDialogConstants.OK_LABEL };
MessageDialog
dialog =
new
MessageDialog(
getShell(),
"Fin de l'essai"
,
null
,
"Nous allons
quitter l'application"
,
MessageDialog.INFORMATION,
tab,
0);
dialog.open();
setReturnCode(CANCEL);
close();
}
protected ToolBarManager
createToolBarManager( int
style) {
return
new
ToolBarManager(style);
}
protected
Control createContents(Composite parent) {
Table
aComposite = new
Table(parent, SWT.BORDER);
return
aComposite;
}
}
Version
pour impression
|