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.
|