ZaawansowaneKomponentySwing

Download Report

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