Przygotowywanie aplikacji GUI w programie Eclipse
Jeśli tworzony w rozdziale 2 projekt HiLo jest nadal otwarty w programie Eclipse, jak na rysunku 3.6, zamykamy lub minimalizujemy okno edytora dla wszystkich poprzednich plików Java 1.. Ponadto zwijamy projekt HiLo, klikając małą strzałkę w dół znajdującą się obok folderu HiLo w panelu Package Explorer (Eksplorator pakietów) po lewej stronie 2. Dzięki takiemu rozwiązaniu możemy przechowywać projekty w jednej przestrzeni roboczej bez ryzyka pomieszania plików.
Rysunek 3.6. Zamykamy wszystkie otwarte pliki i zwijamy folder projektu HiLo
Z paska menu Eclipse wybieramy opcje File -> New -> Java Project i nadajemy projektowi nazwę GuessingGame. Po wpisaniu nazwy projektu klikamy przycisk Finish (Zakończ) znajdujący się w prawym dolnym rogu. To spowoduje utworzenie nowego folderu projektu, w którym będziemy tworzyć aplikację gry z interfejsem GUI.
Rozwijamy folder GuessingGame w oknie Package Explorer i odnajdujemy folder src. Prawym przyciskiem myszy klikamy folder src (w systemie macOS klikamy, przytrzymując przycisk control) i wybieramy opcje New -> Class. Nadajemy nowej klasie nazwę GuessingGame. Ważne jest, aby w nazwie klasy użyć notacji CamelCase, z wielką literą na początku. Zaznaczamy pole wyboru obok szkieletu metody public static void main(String[] args). Dzięki temu dodany zostanie szkielet metody main() i aplikacja będzie mogła zostać uruchamiana w postaci niezależnego programu.
Musimy wykonać jeszcze jedną operację w inny sposób niż podczas budowania aplikacji wiersza poleceń w rozdziale 2. Trzeba zmienić superklasę z domyślnej java.lang.Object na klasę javax.swing.JFrame, czyli klasę JFrame wykorzystaną na początku tego rozdziału w narzędziu JShell. Superklasa lub klasa nadrzędna w języku Java to klasa, którą rozszerzamy, aby móc skorzystać z napisanego wcześniej kodu, czyli w tym przypadku kodu potrzebnego do zbudowania graficznego, okienkowego interfejsu. Klasa JFrame w pakiecie javax. swing stanowi jeden ze sposobów dołączania komponentów GUI do własnych aplikacji, a zatem użyjemy jej do utworzenia okna, które następnie dostosujemy, dodając własne funkcje. Ponieważ klasa JFrame jest rozszerzeniem
superklasy Object, nie potrzebujemy klasy java.lang.Object, gdyż klasa JFrame odziedziczy kod superklasy Object. To oznacza, że klasa JFrame będzie zawierać wszystkie funkcje klasy Object, a także dodatkowe funkcje. Wkrótce dowiemy się, jak rozszerzać klasę.
Rysunek 3.7 przedstawia okno dialogowe New Java Class z odpowiednimi ustawieniami.
Rysunek 3.7. Należy pamiętać o zmianie superklasy na javax.swing.JFrame w celu uzyskania klasy GUI
Klikamy przycisk Finish, aby zobaczyć następujący kod źródłowy klasy GuessingGame.java:
1.import javax.swing.JFrame;
public class GuessingGame 2. extends JFrame {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
W pierwszym wierszu program Eclipse zaimportował klasę javax.swing. JFrame 1., aby pozwolić naszemu programowi na korzystanie z możliwości GUI zestawu pakietu Swing. W drugim wierszu wykorzystujemy rewelacyjne narzędzie programistyczne, jakim jest słowo kluczowe extends 2. W obiektowych językach programowania klasa nadrzędna (superklasa) może mieć klasy
potomne, które dziedziczą wszystkie metody i atrybuty zawarte w klasie nadrzędnej. Po napisaniu klasy realizującej bardzo ważne zadania, które chcemy wykonywać wielokrotnie, możemy odwołać się do tej klasy bazowej i rozszerzyć ją (ang. extend), dodając nowe funkcje bez konieczności modyfikowania oryginalnego kodu. W tym przypadku klasa nadrzędna JFrame oferuje możliwość
wyświetlania pól tekstowych, etykiet, przycisków i innych komponentów GUI, które możemy dostosowywać i rozmieszczać w nowej aplikacji zgadywanki. Dzięki rozszerzanej w tej aplikacji klasie nadrzędnej JFrame będziemy mogli wyświetlać okno z elementami GUI, takimi jak pola tekstowe, etykiety i przyciski, projektując układ interfejsu GUI przy użyciu edytora WindowBuilder w programie Eclipse. A teraz zobaczmy, jak działa ten edytor.
Materiał opracowany na podstawie: Java, to takie proste Praktyczne wprowadzenie do programowania, Bryson Payne, wyd. WN PWN, 2018 r.