1 / 44

Zaawansowane komponenty graficzne Swing

Zaawansowane komponenty graficzne Swing. Michał Wolski 301966. Swing. 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 )

gracie
Télécharger la présentation

Zaawansowane komponenty graficzne Swing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Zaawansowane komponenty graficzne Swing Michał Wolski 301966

  2. Swing • Czym jest Swing? • Podstawowy zestaw narzędzi Java GUI. • Zapewnia graficzne przedstawienie interfejsu użytkownika. • Bardziej wyrafinowany zestaw elementów graficznych od AWT(AbstractWindowToolkit) • Prócz przycisków, pól wyboru czy etykiet zapewnia komponenty takie jak panel z zakładkami, szyby przewijania, drzewa czy listy.

  3. Komponent • 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

  4. Komponent Swing • Definiowane są w klasach pakietu javax.swing. • Ich nazwy zaczynają się literą J. • Klasy używane przy tworzeniu interfejsu dziedziczą po klasie JComponent

  5. Przykładowe okienko

  6. Ramki • Klasa JComponentzawiera metodę o nazwie setBorder() , pozwalającą na ustawienie każdemu z komponentów własnej ramki (obramowania lub krawędzi).

  7. Przyciski • W Swingu mamy cztery rodzaje przycisków: • JButton • JToggleButton– przycisk dwustanowy • JCheckBox • JRadioButton • Podstawową funkcjonalność zapewnia klasa AbstractButton

  8. Pole tekstowe • 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).

  9. JTextPane • Pozwala na ogromne możliwości edycji tekstu. • Posiada takie funkcje jak chociażby automatyczne zawijanie tekstu. • Jest to kontener dla wystylizowanego tekstu.

  10. JTextPane

  11. Listy rozwijane • 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.

  12. Listy • Lista JList pozwala również na wielokrotny wybór. • Nie to samo co listy rozwijane. • Zawsze zajmuje z góry określony obszar ekranu.

  13. Listy a listy rozwijane

  14. Menu • 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.

  15. Menu

  16. Dialogi • 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.

  17. Dialogi

  18. Dialogi • Ś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

  19. Dialog

  20. HTML • 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.

  21. HTML Import javax.swing.* Public classHTMLTestextendsJFrame { Conteinercp = 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”); }

  22. HTML

  23. Kontenery • Swing zapewnia szeroką gamę kontenerówpozwalających na umieszczanie w nichkomponentów (także innych kontenerów) -strukturadrzewa. • Do tej pory posługiwaliśmy się kontenerem ciężkim (JFrame) i lekkim (JPanel). • Inne lekkie kontenery są przedstawione poniżej.

  24. Kontener JScrollPane

  25. Kontener JSplitPane

  26. Kontener JTabbedPane

  27. Kontener warstwowy • 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.

  28. Szyby przewijania • 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.

  29. Szyby przewijania - działanie

  30. Drzewa • 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.

  31. Drzewa • 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ć.

  32. Drzewa

  33. Tabele • 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).

  34. Tabele

  35. Okienko z zakładkami • 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

  36. Separatory • 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.

  37. Slidery • JSlider pozwala użytkownikowi na określenie numerycznej wartości ograniczonej przez minimum i maksimum za pomocą suwaka.

  38. Spinnery • JSpinnerpozwala 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.

  39. Ikony • 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

  40. Look&Feel • 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.

  41. Look&Feel • 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.

  42. Look&Feel

  43. Podsumowanie • Po bardziej szczegółowe informacje dotyczące komponentów wraz z samouczkiem zapraszam na stronę: http://docs.oracle.com/javase/tutorial/uiswing/components/index.html

  44. Dziękuję za uwagę :-)

More Related