Transcript ZaawansowaneKomponentySwing
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 JCheckBox JRadioButton
– przycisk dwustanowy Podstawową funkcjonalność zapewnia klasa
AbstractButton
Komponent
JTextField
edycyjne.
jest to pole tekstowe Aby stworzyć obiekt klasy parametru.
JTextField
wystarczy przekazać kontruktorowi parametr szerokości pola w kolumnach lub użyć konstruktora bez 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
wybór.
pozwala również na wielokrotny Nie to samo co listy rozwijane.
Zawsze zajmuje z góry określony obszar ekranu.
Komponenty zdolne do wyświetlania menu zawierają metodę obiekt
JMenuBar
.
setJMenuBar()
, która przyjmuje 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(Lubudu!)); } 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
przestrzeń dla kilku różnych komponentów, np. paneli można dzielić tą samą 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