Kontynuujemy pisanie o bibliotece Swing języka Java. Aby w ogóle robić coś porządnego, trzeba najpierw zapoznać się ze wszystkimi podstawowymi komponentami jakie oferuje 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.

LISTA KOMPONENTÓW BIBLIOTEKI 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:

Tekst "JLabel" biblioteki 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" (o tym będzie w innym artykule), albo skorzystać z tak zwanego "wyrażenia lambda" (na temat jego stosowania także się wypowiem nieco później). 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:

Przycisk "JButton" biblioteki 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" (on też będzie domagał się wyjaśnień w innym artykule). Swing dysponuje kilkoma różnymi układami, ale o nich trzeba by napisać całą litanię.

  • 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:

Pole tekstowe "JTextField"
  • JCHECKBOX

Oprócz "tekstowych" spraw Swing posiada 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 i 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:

Ptaszek "JCheckBox"
  • 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":

Suwak "JSlider"

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 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 się teraz skoncentrujemy już w następnym artykule!

PODOBNE ARTYKUŁY