Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

Swing (Java)

Матеріал з Вікіпедії — вільної енциклопедії.
Приклад інтерфейсу програми із Swing компонентами на Java 5 дляX Window System

Swing — інструментарій для створення графічного інтерфейсу користувача (GUI) мовою програмуванняJava. Це частинабібліотеки базових класів Java (JFC, Java Foundation Classes).

Swing розробляли для забезпечення функціональнішого набору програмних компонентів для створенняграфічного інтерфейсу користувача, ніж у ранішого інструментаріюAWT. Компоненти Swing підтримують специфічніlook-and-feel[en] модулі, що динамічно підключаються. Завдяки їм можлива емуляція графічного інтерфейсу платформи (тобто до компоненту можна динамічно підключити інші, специфічні для даної операційної системи вигляд і поведінку). Основним недоліком таких компонентів є відносно повільна робота, хоча останнім часом це не вдалося підтвердити через зростання потужності персональних комп'ютерів. Позитивна сторона — універсальність інтерфейсу створених програм на всіх платформах.

Історія

[ред. |ред. код]

На початку існування Java класів Swing не було взагалі. Через слабкі місця в AWT (початковій GUI системі Java) було створено Swing. AWT визначає базовий набір елементів керування, вікон та діалогів, які підтримують придатний до використання, але обмежений у можливостях графічний інтерфейс. Однією з причин обмеженості AWT є те, що AWT перетворює свої візуальні компоненти у відповідні їм еквіваленти, що не залежать від платформи, які називаються рівноправними компонентами. Це означає, що зовнішній вигляд компонентів визначається платформою, а не закладається в Java. Оскільки компоненти AWT використовують «рідні» ресурси коду, вони називаються ваговитими (англ.highweigh).

Використання «рідних» рівноправних компонентів породжує деякі проблеми. По-перше, у зв'язку із різницею, що існує між операційними системами, компонент може виглядати або навіть вести себе по-різному на різноманітних платформах. Така мінливість суперечила філософії Java: «написане один раз, працює скрізь». По-друге, зовнішній вигляд кожного компонента був фіксованим (оскільки усе залежало від платформи), і це неможливо було змінити (принаймні, це важко було зробити). По-третє, використання ваговитих компонентів тягнуло за собою появу нових обмежень. Наприклад, ваговитий компонент завжди має прямокутну форму і є непрозорим.

Незабаром після появи початкової версії Java, стало очевидним, що обмеження, властиві AWT, були настільки незручними, що потрібно було знайти кращий підхід. У результаті з'явились класи Swing як частина бібліотеки базових класів Java (JFC). В 1997 році вони були включені до Java 1.1 у вигляді окремої бібліотеки. А починаючи з версії Java 1.2, класи Swing (а також усі останні, що входили до JFC) стали повністю інтегрованимими у Java.

Архітектура

[ред. |ред. код]
Цей розділпотребуєдоповнення.(липень 2008)
  • Незалежність від платформи: Swing — платформо-незалежна бібліотека, що означає, що програму з використанням Swing можна запустити на всіх платформах, які підтримуютьJVM.
  • Можливість для розширення: Swing — дуже розподілена архітектура, яка дозволяє «підключати» реалізації користувача вказаної інфраструктури інтерфейсів: користувачі можуть створити свою власну реалізацію цих компонентів, щоб замінити компоненти без обумовлення (за замовчуванням). Взагалі, користувачі Swing можуть розширити структуру, продовжуючи (з допомогоюextends) існуючі класи і/або створюючи альтернативні реалізації основних компонентів.

Приклад

[ред. |ред. код]

Наступний код демонструє основи використання Swing. Ця програма зображує вікно (JFrame), у вікні міститиметься кнопка з написом «Натисніть сюди» на ній та написом праворуч «Ця кнопка не робить нічого:».

packagecom.example;// Імпортує swing і AWT класиimportjava.awt.EventQueue;importjava.awt.FlowLayout;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.WindowConstants;/** * Простий приклад використання Swing */publicclassSwingExample{publicstaticvoidmain(String[]args){// Упевнюємося, що всі виклики Swing/AWT виконуються Event Dispatch Thread ("EDT")EventQueue.invokeLater(newRunnable(){@Overridepublicvoidrun(){// Створюємо JFrame, що має вигляд вікна з "декораціями",// наприклад заголовком і кнопкою закриттяJFramef=newJFrame("Приклад вікна Swing");// Установлюємо простий менеджер розмітки, що впорядковує всі компонентиf.setLayout(newFlowLayout());// Додаємо компонентиf.add(newJLabel("Ця кнопка не робить нічого:"));f.add(newJButton("Натисніть сюди!"));// "Пакує" вікно, тобто робить його величину відповідну до її компонентівf.pack();// Встановлюємо стандартну операцію закриття для вікна,// без цього вікно не закриється після активування кнопки закриття//  (Стандартно HIDE_ON_CLOSE, що просто приховує вікно)f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);// Уснановлюємо видимість=істина, тим самим показуючи вікно на екраніf.setVisible(true);}});}}

Література

[ред. |ред. код]

Посилання

[ред. |ред. код]

Див. також

[ред. |ред. код]
Низькорівневі
Високорівневі
Кросплатформні
Десктоп
Web
Ця стаття єзаготовкою. Ви можете допомогти проєкту,доробивши її. Це повідомлення варто замінититочнішим.
Отримано зhttps://uk.wikipedia.org/w/index.php?title=Swing_(Java)&oldid=38219692
Категорії:
Приховані категорії:

[8]ページ先頭

©2009-2026 Movatter.jp