Jason. Cała informatyka w jednym miejscu!

Kontynuujemy pisanie o bibliotece "Swing" języka Java. Aby w ogóle robić coś porządnego, trzeba najpierw poznać podstawowe komponenty "Swing". Jeśli zainteresowałem Was tym tematem mającym za sobą ponad 20 lat (i co z tego?), przechodzimy od razu do konkretów. To będzie na razie sama lista z wyjaśnieniami co do czego służy i jak prezentuje się w oknie.

JAKIE WYSTĘPUJĄ KOMPONENTY "SWING"?

Przedstawiam Wam zbiór informacji na temat każdego komponentu jaki uważam za podstawowy:

JLABEL

Zwykły tekst. Przeciążone konstruktory pozwalają między innymi na podanie samego tekstu, jak również możliwość dodania stałego aliasu oznaczającego wyrównanie (od lewej, na środku, od prawej). Dla przykładu taka postać:

new JLabel("Jestem tekstem!", SwingConstants.CENTER);

spowoduje wypisanie tekstu na środku okna:

"JLabel" w Swing

JBUTTON

Programowalny przycisk do którego podpinamy zdarzenie w postaci metody pełniącej rolę wywołania zwrotnego ("callback"). W celu dodania zdarzenia do przycisku "Swing", należy albo dorzucić klasę wewnętrzną i do niej zaimplementować interfejs "ActionListener", albo skorzystać z tak zwanego "wyrażenia lambda". Sam przycisk niewykonujący żadnych czynności, wymaga jedynie użycia konstruktora, a zamiast tekstu możemy też dać ikonkę. Oto prosty przykład konstruktora z łańcuchem znaków:

new JButton("Kliknij mnie!");

Wówczas po dodaniu go do ramki, zobaczymy przycisk w całej okazałości:

"JButton" w Swing

Miejcie jednak na uwadze, iż przycisk może przybierać różne rozmiary w zależności od pola obszaru do którego się go "przykleiło" wykorzystując domyślny układ o nazwie "BorderLayout". Komponenty "Swing" dysponują kilkoma różnymi układami, a pierwszy z nich jest opisywany w podanym odnośniku.

JTEXTFIELD

Pole tekstowe do którego możemy wstawić dowolną treść przy pomocy klawiatury. Dzięki dodaniu interfejsu "ActionEvent" można programować zachowanie innych komponentów w zależności od aktualnie przechowywanego tekstu. Na przykład można sprawić, że przycisk będzie zablokowany jeżeli pole tekstowe jest puste. Oto jeden z wariantów konstruktora, do którego wprowadzamy tekst i szerokość pola w znakach:

new JTextField("Tu wpisz swój tekst...", 22);

A tak prezentuje się pole tekstowe:

"JTextField" w Swing

JCHECKBOX

Oprócz "tekstowych" spraw, na komponenty "Swing" sprowadza się jeszcze przełącznik, czyli ten "ptaszek" jak go nazwałem. Chodzi o przełączanie na "prawdę" lub "fałsz". Dzięki temu możemy kontrolować włączanie oraz wyłączanie i za pomocą interfejsu programować następstwa z tym związane uzależnione od wartości. Przykładowy konstruktor ukazuje tworzenie "checkbox'a" dodając do niego tekst i domyślną wartość (włączone czy wyłączone?):

new JCheckBox("Coś jest włączone", true);

Po dodaniu do ramki możemy ujrzeć "ptaszek" wyglądający tak:

"JCheckBox" w Swing

JSLIDER

Ostatni komponent z tych podstawowych w "Swing" (w mojej opinii) to "slider" czyli "suwak". Możliwość kontroli wartości liczbowej "jeżdżąc" paskiem od lewej do prawej. Jedna z możliwych metod utworzenia to podanie minimalnej wartości, maksymalnej wartości i wartości początkowej:

new JSlider(0, 100, 50);

W efekcie czego mamy taki oto suwaczek, czyli tytułowy "slider":

"JSlider" w Swing

Uprzedzając pytanie: sam suwak nie zapewnia "licznika" aktualnej wartości. Należy dołożyć osobno "JLabel" i za pomocą "listenera", aktualizować tekst co każde "przesunięcie".


Styknie na tę chwilę o tym, jakie występują podstawowe komponenty w "Swing". Musicie jeszcze wiedzieć w jaki sposób rozumieć umieszczanie komponentów na układzie "BorderLayout", a przed tym jeszcze jak programować komponent, aby "odbierał" zdarzenia i na tym skoncentrowałem się w innym artykule!

PODOBNE ARTYKUŁY