Programowanie obiektowe - JAVA
Informacje ogólne > Laboratorium 3 > Ćwiczenie 1 > Konwersja programu AWT na SWING - nieobowiązkowe

Konwersja programu AWT na SWING - nieobowiązkowe

Zmodyfikować program napisany w ramach poprzedniego laboratorium (ćwiczenie 5), tak aby korzystał z biblioteki SWING (zamiast AWT).
Należy utworzyć nowy projekt, a w nim umieścić kopię poprzedniego programu. (oryginalny program w AWT powinien pozostać niezmieniony, aby możliwe było porównanie obu wersji).

1. Przede wszystkim należy zastąpić wszystkie klasy AWT odpowiednikami z biblioteki SWING. Zwykle wystarczy do nazwy klasy/konstruktora dopisać "J", np.:
Frame (awt) ->  JFrame (swing)
Button -> JButton
Panel -> JPanel
...

Do wyjątków od tej reguły należy klasa Choice (awt), której odpowiednikiem w swingu jest JComboBox. 

Natomiast klasa Checkbox ma kilka odpowiedników - JCheckBox (przez duże "B" - prostokątne pole wyboru), JRadioButton (okrągły) oraz JToggleButton ("przycisk przełączający"). Podobnie CheckboxGroup -> ButtonGroup .

2. Po zmianie nazw używanych klas należy je zaimportować. Można wykorzystać odpowiednią funkcję Eclipse'a: menu Source->Organize Imports, która dodaje potrzebne "importy" a jednocześnie usuwa nieużywane.

3. Większość metod odpowiadających sobie klas jest kompatybilna, jednakże konieczne mogą być niewielkie modyfikacje - np. zamiana "getState()" na "isSelected()" lub "setState(state)" na "setSelected(state)" w przypadku JCheckBox, lub zamiana getItem(indeks) na getItemAt(indeks) dla JComboBox...

4. Jeśli w programie przeciążona została metoda
public void paint (Graphics gDC)
wówczas na początku tej metody należy dodać: super.paint(gDC); - wywołanie metody paint(...) klasy nadrzędnej. W przeciwnym wypadku wyświetlanie komponentów może być zakłócone.