Standard Widget Toolkit

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Swt»)
Перейти к навигации Перейти к поиску
Standard Widget Toolkit
Скриншот программы Standard Widget Toolkit
Eclipse IDE, приложение, основанное на SWT
Тип Инструментарий виджетов для платформы Java
Разработчик Eclipse Foundation
Написана на Java[1]
Операционная система Cross-platform
Языки интерфейса Multilingual
Аппаратная платформа Java Virtual Machine
Последняя версия 4.29 (3 сентября 2023 года)
Репозиторий github.com/eclipse-platf…
Состояние Active
Лицензия Eclipse Public License
Сайт eclipse.org/swt/
Логотип Викисклада Медиафайлы на Викискладе

Standard Widget Toolkit, или SWT (произносится «свит») — библиотека с открытым исходным кодом для разработки графических интерфейсов пользователя на языке Java.

Разработана фондом Eclipse, лицензируется под Eclipse Public License, одной из лицензий открытого ПО.

SWT не является самостоятельной графической библиотекой, а представляет собой кросс-платформенную оболочку для графических библиотек конкретных платформ, например, под Linux SWT использует библиотеку GTK+. SWT написана на стандартной Java и получает доступ к OS-специфичным библиотекам через Java Native Interface, который рассматривается в качестве сильного средства, несмотря на то, что это не является чистой Java.

SWT — альтернатива AWT и Swing (Sun Microsystems) для разработчиков, желающих получить привычный внешний вид программы в данной операционной системе. Использование SWT делает Java-приложение более эффективным, но снижает независимость от операционной системы и оборудования, требует ручного освобождения ресурсов и в некоторой степени нарушает Sun-концепцию платформы Java.

Результат в среде GTK
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;

public class HelloWorld {
   public static void main (String[] args) {
      Display display = new Display();
      Shell shell = new Shell(display);
      Label label = new Label(shell, SWT.NONE);
      shell.setSize(300,200);
      label.setText("Hello World");
      label.pack();
      shell.open();
      while (!shell.isDisposed()) {
          if (!display.readAndDispatch ()) display.sleep (); 
      } 
      display.dispose ();
   }
}

Примечания

[править | править код]