Gui в java c допомогою jface створення вікна програми, java

JFace - це доплнітельний шар абстракції над графічною бібліотекою SWT, що надає можливості для розробки графічного інтерфейсу програми на основі моделі MVC (Model View Controller). Основні компоненти JFace включають:






  • Viewers - класи для інкапсуляції завдань надання даних для відображення, їх фільтрації, сортування і т.п.
  • Actions and contributions - вводять семантику опису користувацьких дій і того, як вони повинні бути доступні користувачеві.
  • Image and font registries - надають класи для управління ресурсами, такими як зображення і шрифти.
  • Dialogs and wizards - фреймворк для побудови складного діалогової взаємодії з користувачем.
  • Field assist - надає можливості для реалізації допоміжної функціональності для полів, такий як відображення статусу поля або підказки про вміст.

У першій частині буде розглянуто створення простого вікна з використанням JFace, додавання до нього меню, статусного рядка і панелі інструментів.

Налаштування проекту

Для того, щоб розробляти графічні додатки з використанням JFace в Eclipse, необхідно підключити jar-файли SWT і JFace.
  • У разі, якщо в Eclipse встановлено PDE, то це можна зробити, вказавши в налаштуваннях проекту використовувати бібліотеку SWT, і поставити галочку для підтримки JFace.
  • Якщо ж PDE не встановлено, то необхідно підключити jar-файли до проекту вручну. Знайти їх можна в директорії plugins Екліпса, називаються вони org.eclipse.swt _ *. Jar і org.eclipse.jface _ *. Jar

створення вікна

Вікно додатка в JFace успадковується від класу ApplicationWindow, що надає можливості для створення меню, панелей управління і рядки статусу.

Найпростіший варіант створення вікна наведено в наступному прикладі:

Створення вмісту вікна

Для того, щоб створити якийсь вміст вікна, необхідно перевизначити метод Control createContents (Composite parent) класу ApplicationWindow. Метод повинен повертати компонент, який буде вмістом вікна.

У цьому ж методі можна встановити і заголовок вікна, викликавши метод setText (String text) шелла, доступного за викликом getShell ()

У цьому прикладі таким компонентом буде просто мітка білого кольору, в реальних додатках таким компонентом є який-небудь композит.







Додавання статусного рядка

Додавання до вікна додатка статусного рядка реалізується не просто, а дуже просто. Для цього треба всього-на-всього викликати захищений метод addStatusBar (). Напевно, найбільш підходящим місцем для такого виклику є конструктор вікна, або який-небудь метод його ініціалізації.

Для того, щоб відобразити текст у статусному рядку необхідно викликати метод setStatus (String status), аргументом якого і є та сама рядок, яку необхідно відобразити.

створення меню

Для створення рядка меню в JFace необхідно, викликати метод addMenuBar (), як і для створення рядка статусу.
Але потім необхідно додати пункти меню на панель. Здійснюється це таким чином:
  • Розділ меню описується класом MenuManager. У конструкторі йому може бути передана рядок - ім'я розділу, де символ "" означає, що наступний за ним символ буде ключем при навігації з допомогою клавіші Alt. Додається розділ меню на панель за допомогою конструкції getMenuBar (). Add (menu).
  • Пункт меню описується класом Action. Сам клас є абстрактним, пункт меню повинен бути успадкований від нього і перевизначати метод void run (), в якому розміщується код, що виконується при виборі пункту меню користувачем. Насправді, метод можна і не перевизначати, але тоді, навіщо цей пункт меню потрібен? =) Ім'я пункту може бути задано шляхом передачі в конструктор, або викликом методу void setText (String text). Після створення пункт меню додається в розділ викликом методу add у об'єкта розділу меню. Наприклад: menu.add (menuItem)
  • Підміню створюються дуже просто: Необхідно в один розділ меню методом add додати інший розділ. От і все.

У наступному прикладі ми створюємо розділ меню File і один пункт Hello в ньому, вибір якого викликає появу тексту в статусному рядку вікна. Код створення меню я оформив в один метод, який викликається з конструктора вікна:

Створення панелі інструментів

Для того, щоб створити панель інструментів у вікні необхідно в конструкторі вікна викликати метод addToolBar (int style), в який передати стиль компонента панелі.

Для доступу до створеної панелі використовується метод getToolBarManager (). Для додавання дії на панель використовується метод add панелі, куди передається дію.

У найпростішому випадку створення панелі і додавання на неї кнопки буде виглядати:

Створення декількох переміщуються панелей інструментів

Замість однієї панелі інструментів можна створити набір переміщуваних панелей (CoolBar). Для цього необхідно:
  1. Замість методу addToolBar викликати метод addCoolBar
  2. Для доступу до набору панелей використовується метод getCoolBarManager ()
  3. Створити панель інструментів, на яку можна буде додавати дії. Для цього необхідно створити новий екземпляр класу ToolBarManager, який буде представляти панель і викликати метод add у CoolBarManager, передавши туди панель.
  4. На створену панель можна додавати дії

Приклад коду, що створює дві плаваючі панелі:

Важливо! Вікно додаток може мати або одну панель управління або набір переміщуваних, спроба створення і того і іншого призведе до помилки!

Можливі проблеми

Тут будуть описані деякі проблеми, з якими можна зіткнутися:
  • При додаванні пунктів меню після запуску програми вони не з'являються - щоб зміни меню після створення вікна відобразилися на ньому, необхідно викликати метод getMenuBarManager (). Update (true) - вказати оновити панель меню.






Схожі статті