ZaawansowaneKomponentySwing

Report
Michał Wolski 301966

Czym jest Swing?
◦ Podstawowy zestaw narzędzi Java GUI.
◦ Zapewnia graficzne przedstawienie interfejsu
użytkownika.
◦ Bardziej wyrafinowany zestaw elementów
graficznych od AWT(Abstract Window Toolkit)
 Prócz przycisków, pól wyboru czy etykiet zapewnia
komponenty takie jak panel z zakładkami, szyby
przewijania, drzewa czy listy.

Czym jest komponent?
◦ Obiekt o graficznej reprezentacji, który może być
wyświetlony i może podlegać interakcji z
użytkownikiem.
◦ Przykłady:
 Przycisk
 Checkbox
 Pasek przewijania

Definiowane są w klasach pakietu javax.swing.

Ich nazwy zaczynają się literą J.

Klasy używane przy tworzeniu interfejsu
dziedziczą po klasie JComponent

Klasa JComponent zawiera metodę o nazwie
setBorder() , pozwalającą na ustawienie
każdemu z komponentów własnej ramki
(obramowania lub krawędzi).

W Swingu mamy cztery rodzaje przycisków:
◦
◦
◦
◦

JButton
JToggleButton – przycisk dwustanowy
JCheckBox
JRadioButton
Podstawową funkcjonalność zapewnia klasa
AbstractButton



Komponent JTextField jest to pole tekstowe
edycyjne.
Aby stworzyć obiekt klasy JTextField wystarczy
przekazać kontruktorowi parametr szerokości
pola w kolumnach lub użyć konstruktora bez
parametru.
Do zmiany zawartości pola, używa się metody
setText(String).



Pozwala na ogromne możliwości edycji
tekstu.
Posiada takie funkcje jak chociażby
automatyczne zawijanie tekstu.
Jest to kontener dla wystylizowanego tekstu.



Drop-down list pozwala na wybór tylko jednego
elementu z grupy różnych możliwości.
W kontrolce JComboBox można wybrać jeden i
tylko jeden z elementów listy.
Rozwija się dopiero przy aktywacji.



Lista JList pozwala również na wielokrotny
wybór.
Nie to samo co listy rozwijane.
Zawsze zajmuje z góry określony obszar
ekranu.

Komponenty zdolne do wyświetlania menu
zawierają metodę setJMenuBar() , która przyjmuje
obiekt JMenuBar.

W JMenuBar można umieszczać kolejne Jmenu.

W Jmenu można dodawać pozycje JMenuItem.

Każdy element może mieć podpiętego
ActionListener, który będzie uruchamiany, po
wybraniu odpowiedniego elementu menu.




JFileChooser – wybór pliku
JColorChooser – wybór koloru
Mogą być dodane do dowolnego kontenera i
obsługiwane przez nasłuchiwanie
odpowiednich zdarzeń.
Zdarzenia do wyboru plików i kolorów
używają standardowego dialogu.


Środowiska okienkowe często zawierają
zestaw okienek kominikatów. Oferuje je
komponent JOptionPane.
Najcęściej używane:
◦ JOptionPane.showMessageDialog() – okienko
wiadomości
◦ JOptianPane.showConfirmDialog() – okienko
otwierdzenia


Prawie każdy komponent, który może
pobierać tekst, przyjmuje również składnie
HTML, która zostanie odpowiednio
sformatowana.
Bardzo łatwo można przekazać
komponentowi sformatowany tekst, np. do
JTextPane.
Import javax.swing.*
Public class HTMLTest extends JFrame
{
Conteiner cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(new JLabel(<html><i><font size=+4
color=\”red\”>Lubudu!</font></i></html>));
}
setDefaultCloseOperation(WindowConstants.EXIT_ON
_CLOSE);
setSize(new Dimension(400, 300));
setTitle(„HTML Test”);



Swing zapewnia szeroką gamę kontenerów
pozwalających na umieszczanie w nich
komponentów (także innych kontenerów) struktura drzewa.
Do tej pory posługiwaliśmy się kontenerem
ciężkim (JFrame) i lekkim (JPanel).
Inne lekkie kontenery są przedstawione
poniżej.


JLayeredPane zapewnia dodatkowy wymiar Z
do pozycjonowania zawartości komponentu
dla głębokości.
Im większy numer warstwy,
tym pozycja bliższa górze
kontenera.


JScrollPane zapewnia przewijanie w
komponencie.
Kiedy obszar wyświetlanego ekranu (tekst lub
obrazek) są wielkościowo większe względem
komponentu w którym się znajdują, do
przewijania obszaru używa się właśnie
JScrollPane.




JTree pozwala na hierarchiczne wyświetlanie
danych.
Komponent ten nie przechowuje danych.
Wyświetla dane wertykalnie, przy czym każdy
wierz zawiera dokładnie jeden obiekt danych.
Drzewno składa się z węzłów, gałęzi i
korzenia.



Wszystkie węzły schodzą się do korzenia.
Gałęzie mogą zawierać każdą ilość węzłów,
czy gałęzi. Można je w nieskończoność
zagnieżdzać.
Gałęzie można zwijać i rozwijać.



JTable zapewnia wyświetlanie danych za
pomocą tabeli, opcjonalnie z możliwością
edycji danych.
Nie przechowuje danych, tylko je wyświetla.
W poszczególne pola tabeli możemy
umieszczać tekst lub zagnieżdżać w nich
inne komponenty (np. JCheckBox lub JButton).


Dzięki JTabbedPane można dzielić tą samą
przestrzeń dla kilku różnych komponentów,
np. paneli
Użytkownik ma wybór, który komponent ma
być wczytany do dzielonej przestrzeni, za
pomocą zakładek


JSeparator pozwala na oddzielenie dwóch
obiektów horyzontalną, bądź wertykalną linią
lub pustą przestrzenią.
Głównie używana w menu i paskach narzędzi.

JSlider pozwala użytkownikowi na określenie
numerycznej wartości ograniczonej przez
minimum i maksimum za pomocą suwaka.


JSpinner pozwala na wybór kolejnych wartości
z pewnego zakresu danych.
Dane mogą być określone przez programistę,
bądź zwiększać wartość w polu o 1.



Komponenty w Swingu, takie jak przyciski,
szyby czy etykiety możemy udekorować w
ikonę graficzną – ImageIcon.
Ikoną może być obrazek każdego rozmiaru.
Obsługiwane formaty: GIF, JPEG, PNG



Dotychczas wygląd komponentów był
uzależniony od platformy systemowej, na
której dana aplikacja była uruchomiona.
Założeniem było, że Java ma być językiem
wielo-platformowym, gdzie każda platforma
oferowała inny wygląd komponentów.
Zarządzaniem wyglądem komponentów
zajmuje się UIManager.


Istnieje możliwość stworzenia własnego
niestandardowego L&F lub skorzystanie z
dowolnego dostępnego, np. w sieci (uwaga na
licencje!)
Żeby ustalić L&F należy wywołać metodę
setLookAndFeel() z argumentem specyfikującym
pełną kwalifikowaną nazwę klasy określającej
wygląd i achowanie komponentów.

Po bardziej szczegółowe informacje
dotyczące komponentów wraz z
samouczkiem zapraszam na stronę:
http://docs.oracle.com/javase/tutorial/uiswi
ng/components/index.html

similar documents