Le site francophone consacré au projet Eclipse et aux outils WebSphere Studio et Rational d'IBM
 

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



 

 

(c) EclipseTotale - Bruno Leroux - contact(arobase)eclipsetotale.com

 

 

Mots-clés

Articles et tutoriaux


Téléchargements