Интернет магазин китайских планшетных компьютеров



Компьютеры - Swing - Сравнение с AWT

02 мая 2011


Оглавление:
1. Swing
2. Принцип Lightweight
3. Look and Feel
4. Сравнение с AWT



В отличие от Swing, AWT использует только стандартные элементы ОС для отображения, то есть для каждого элемента создается отдельный объект ОС, в связи с чем, AWT не позволяет создавать элементы произвольной формы, элементы управления на основе AWT всегда отображаются поверх Swing-элементов.

Примеры

«Hello World» с использованием Swing:

 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.SwingUtilities; 
 
 public final class HelloWorld implements Runnable {
 
     public static void main {
 
         // Swing имеет собственный управляющий поток,
         // который работает параллельно с основным)
         // потоком. Это означает что если основной поток закончит работу,
         // поток отвечающий за работу Swing-интерфейса может продолжать свою работу. 
         // И даже если пользователь закрыл все окна, программа продолжит свою работу 
         //. Начиная с Java 6, когда все компоненты уничтожены,
         // управляющий интерфейсом поток останавливается автоматически.
         // 
         // Запускаем весь код работающий с интерфейсом в управляющем потоке, даже инициализацию:
 
         SwingUtilities.invokeLater );
     } 
 
     public void run {
 
         // Создаем окно с заголовком "Hello, World!"
 
         JFrame f = new JFrame ;
 
         // Ранее практиковалось следующее: создавался listener и регистрировался
         // на экземпляре главного окна, который реагировал на windowClosing 
         // принудительной остановкой виртуальной машины вызовом System.exit
         // Теперь же есть более "правильный" способ задав реакцию на закрытие окна.
         // Данный способ уничтожает текущее окно, но не останавливает приложение. Тем
         // самым приложение будет работать пока не будут закрыты все окна.
 
         f.setDefaultCloseOperation ;
 
         // однако можно задать и так:
         //            f.setDefaultCloseOperation;
 
         // Добавляем на панель окна нередактируемый компонент с текстом.
 
         //f.getContentPane.add); - старый стиль
         f.add);
 
         // pack "упаковывает" окно до оптимального размера, рассчитанного на основании размеров 
         // всех расположенных в нем компонентов.
 
         f.pack;
 
         // Показать окно
 
         f.setVisible;
     }
 }

Смена вида интерфейса с помощью Look-And-Feel:

try { 
    UIManager.setLookAndFeel;
    SwingUtilities.updateComponentTreeUI; 
}
catch {
    System.out.println;
}

Использование системного Look-And-Feel:

//Необходимо помнить, что изменение L&F приложения должно быть выполнено до 
//инициализации каких-либо компонентов Swing, иначе они могут быть инициализированы
//Java L&F, независимо от того, какой L&F вы запрашивали.
public static void main {
    try {
        UIManager.setLookAndFeel);
    } 
    catch  {
    //Exception handle
    }


Просмотров: 3296


<<< SQLJ
Tapestry >>>