Budowa aplikacji Graficznego Interfejsu Użytkownika w oparciu o bibliotekę Swing polega na konstruowaniu odpowiedniej hierarchii komponentów. Biblioteka Swing to właśnie w dużej mierze zbiór tychże komponentów, reprezentujących elementy graficzne takie jak okna, przyciski, etykiety.
Każda aplikacja Swing składa się z pewnej liczby komponentów nadrzędnych, nazywanych kontenerami, które reprezentują okna aplikacji, okna dialogowe, lub aplet.
Aplikacja typowa, uruchamiana bezpośrednio w ramach systemu operacyjnego musi zawierać co najmniej jedną strukturę komponentów zawartą w kontenerze reprezentującym okno aplikacji, ale może zawierać kilka takich struktur komponentów, przy czym każda reprezentuje równorzędne okno aplikacji.
Jeśli przy pomocy biblioteki Swing implementujemy aplet, to taka aplikacja musi zawierać dokładnie jeden kontener apletu. Dodatkowo, zarówno aplety jak i aplikacje typowe mogą zawierać dowolną liczbę kontenerów reprezentujących okna dialogowe.
Kontener reprezentujący okno aplikacji implementuje klasa javax.swing.JFrame. Okna implementowanej aplikacji Swing definiujemy tworząc bezpośrednio instancje klasy JFrame, albo instancje klas dziedziczących z klasy JFrame. Możemy więc napisać:
JFrame frame = new JFrame("Moja aplikacja Swing");
albo coś w stylu:
public class SwingApp extends JFrame { public SwingApp(String title) { super(title); } }
i potem:
SwingApp frame = new SwingApp("Moja aplikacja Swing");
Utworzony w jeden z powyższych sposobów obiekt typu JFrame reprezentuje okno aplikacji. Aplikację budujemy dodając do niego, za pomocą wywołań odpowiednich metod, kolejne komponenty, reprezentujące elementy takie jak guziki czy pola do wprowadzania tekstu.
Aby zaimplementować aplet musimy zaimplementować klasę dziędziczącą z klasy javax.swing.JApplet, której instancja będzie kontenerem, do którego dodawać będziemy komponenty tworzące aplet. Przykład apletu zaimplementowanego przy użyciu biblioteki Swing odnajdziemy we wstępie to tego kursu, tj. w artykule „Co to jest Swing”.
Kontener okna dialogowego implementuje klasa javax.swing.JDialog. Okna dialogowe definiujemy podobnie jak aplety i okna aplikacji. Przykłady zobaczymy w kolejnych artykułach kursu.