JFace — набор Java-классов, реализующий наиболее общие задачи построения GUI. В рамках проекта Eclipse библиотека JFace описывается следующим образом: «Элементы пользовательского интерфейса, реализация которых может быть утомительной». JFace представляет собой дополнительный программный слой над SWT, который реализует паттерн Model-View-Controller. JFace предоставляет следующие возможности: Предоставляет «Viewer» классы, отвечающие за отображение и реализующие трудоёмкие задачи по заполнению, сортировке, фильтрации, а также обновлению виджетов. Предоставляет «Action» классы, которые позволяют разработчику определять специфическое поведение для отдельных элементов пользовательского интерфейса, таких как пункты меню, кнопки и т. д. Предоставляет регистры, содержащие шрифты и изображения. Предоставляет набор стандартных диалоговых окон и виджетов, а также предоставляет фреймворк для создания сложного графического интерфейса для взаимодействия с пользователем.

Основная цель JFace заключается в освобождении разработчика от большого количества рутинных операций по созданию пользовательского интерфейса, позволяя ему сосредоточиться на бизнес-логике приложения.

Основной задачей группы разработчиков Eclipse было сокрытие реализации компонентов графического интерфейса, построенных на основе библиотеки SWT, и по возможности максимальное использование библиотеки JFace как более высокоуровневой и простой в использовании. Библиотека JFace использует SWT, но SWT не зависит от JFace. Тем не менее, рабочая среда Eclipse построена с использованием обеих библиотек и в некоторых местах SWT используется напрямую в обход JFace.

Пример Пример программы «Hello, World» с использованием JFace: 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;

Примечания

Литература

Ссылки Wiki JFace Rich clients with the SWT and JFace Using the Eclipse GUI outside the Eclipse Workbench, Part 1: Using JFace and SWT in stand-alone mode, by Adrian Emmenis Using the Eclipse GUI outside the Eclipse Workbench, Part 2: Using the JFace image registry, by Adrian Emmenis

Категория:Технологии Eclipse