REVEAL theme=simple&disableLayout=0&transition=none&controls=1&show_progress_bar=1&build_all_lists=0&show_image_borders=0&horizontal_slide_level=2&enlarge_vertical_slide_headers=0&show_slide_details=1&open_in_new_window=1&size=1024×768
<html> <style type=„text/css”> p { text-align: left;} .reveal { font-size: 30px; } .reveal section { width: 96%; margin: 0 auto; } .reveal .slides { width: 60% !important; } .reveal ul, .reveal ol { margin-left: 1.5em; } .reveal pre code {
height: 100%; max-height: 100%; box-sizing: border-box; }
</style> </html>
Swing to biblioteka będąca częścią frameworka JFC, służąca do budowy interfejsów graficznych. Zbudowana jest na AWT i zaimplementowana w czystej Javie. Swing jest niezależny od systemu operacyjnego - kontrolki wyglądają podobnie na różnych platformach. Biblioteka zapewnia bogatszy zestaw kontrolek niż AWT i wspiera wzorzec MVC (Model View Controller), co ułatwia rozdzielenie logiki, danych i prezentacji. Swing jest powszechnie używany zamiast AWT.
Jak zbudować interfejs działający i wyglądający podobnie na wielu platformach?
opakowanie natywne) - szybsze i tańsze rozwiązanie.
Hierarchia klas Swing
Okno tworzy się podobnie jak w AWT, lecz korzystając z klas Swing (np. JFrame). Można to zrobić:
JFrame w kodzie.JFrame.JButton - przyciskJLabel - etykieta tekstowaJTextField - pole tekstoweJTextArea - obszar tekstowyJCheckBox - pole wyboruJRadioButton - przycisk radiowyJComboBox - rozwijana listaJList - lista z możliwością wyboruJTable - tabelaJTree - drzewoJMenu i JMenuItem - menu i jego elementyJDialog - okno dialogoweJFileChooser - okno wyboru plikuJColorChooser - okno wyboru koloruJSlider - suwakJProgressBar - pasek postępuJTabbedPane - panel z zakładkamiJToolBar - pasek narzędziJScrollPane - kontener z paskami przewijaniaJOptionPane - okno dialogowe do komunikatów i prostych interakcjiJLabelJScrollBarJTextFieldJMenuItemJTextAreaJMenuJPasswordFieldJPopupMenuJCheckBox / JCheckBoxMenuItemJRadioButtonJSeparatorJComboBoxJProgressBarJTableJTreeJListJColorChooserJTabbedPane, JFrame, JSlider, JComponent, JSpinner, JLayeredPane, JDialog, JDesktopPane, JPanel,
JEditorPane, JFileChooser, JScrollPane, JToggleButton, JSplitPane, JToolBar, JTextPane, JViewport, JRootPane
Można pisać GUI ręcznie lub skorzystać z narzędzi graficznych (np. Swing UI Designer w IntelliJ IDEA).
Opis wyglądu formy zapisany jest w pliku .form (XML), a logika aplikacji w pliku .java. Ręczna edycja
pliku .form nie jest zalecana.
LayoutManager to interfejs implementowany przez klasy zarządzające układem komponentów. Popularne implementacje:
Dodatkowe layouty w Swing:
Dokumentacja: LayoutManager (Java SE)
Najpopularniejsze menedżery układu:
BorderLayout - obszary: north, south, east, west, centerGridLayout - siatka prostokątnaFlowLayout - elementy w liniiBoxLayout - pionowo lub poziomoCardLayout - tylko jeden widoczny komponent (stronicowanie)GridBagLayout - siatka o nierównych rozmiarach (bardzo elastyczny)GroupLayout, SpringLayout, ScrollPaneLayout - specjalistyczne układySwing, jako biblioteka kompatybilna z MVC, pozwala stosować mechanizmy Data Binding (one-way i two-way). IntelliJ IDEA oferuje kreator Data Bindingu; opis: JetBrains - Data Binding tutorial.