JFace

A Wikipédiából, a szabad enciklopédiából

A JFace-t egy Eclipse projekt által definiált grafikus felhasználói felületek (GUI) eszközkészlet, amely segéd osztályokat biztosít a felhasználói felületek bonyolultabb komponensei fejlesztéséhez.[1] A JFace réteg az SWT réteg felett helyezkedik el, és olyan feladatokat lát el, amelyek minden felületi elemre azonosak. A JFace tulajdonképpen a Modell-nézet-vezérlő elvet valósítja meg a Standard Widget Toolkitben (SWT).

JFace és SWT alapú grafikus alkalmazások szerkezete

A JFace célja, hogy megkönnyítse az SWT használatát, és nem az, hogy elrejtse az SWT réteget a programozó elől. A JFace függ az SWT-től, de az SWT nem függ a JFace-től. Maga az Eclipse workbench is csak részben támaszkodik JFace-re, vannak helyek, ahol mélyebbre nyúltak a fejlesztők, és közvetlenül az SWT szolgáltatásait használták ki.

A JFace főbb komponensei a következők:

  1. Viewer osztályok: Lista-, táblázat- és faszerkezetű adatok megjelenítésére, rendezésére és szűrésére lehet használni a ListViewer, a TableViewer és a TreeViewer osztályokat. Szöveges információ megjelenítésére használható a TextViewer osztály.
  2. Betűtípusok, színek és képek kezelésére használható az org.eclipse.jface.resource csomag.
  3. Dialógusablakok és varázslók létrehozását segítik az org.eclipse.jface.dialogs és az org.eclipse.jface.wizard csomagok.
  4. Az akciók, melyek több részből tevődnek össze. Minden akcióhoz tartozik egy XML deklaráció, egy IAction objektum, melyet az Eclipse UI példányosít, és egy IActionDelegate objektum, mely az akció tényleges implementációját tartalmazza.
  5. Ablakok létrehozására és kezelésére használható az org.eclipse.jface.window csomag.
  6. Időigényes műveleteknél használható jól az org.eclipse.jface.operation csomag, hogy a művelet alatt a felület válaszképes legyen, a felhasználó pedig visszajelzést kapjon a folyamat előrehaladásáról.

Példa[szerkesztés]

A lenti példa egy Hello World program, amely szemlélteti a JFace használatát.

import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.*;

public class HelloWorld extends ApplicationWindow {
  public static void main(String[] args) {
    new HelloWorld().run();
  }
  public HelloWorld() {
    super(null);
  }
  public void run() {
    setBlockOnOpen(true);
    open();
    Display.getCurrent().dispose();
  }
  protected Control createContents(Composite parent) {
    Label label = new Label(parent, SWT.CENTER);
    label.setText("Hello, World");
    return label;
  }
}

Jegyzetek[szerkesztés]

Irodalomjegyzék[szerkesztés]

További információk[szerkesztés]