Java biblioteka Swing
Podstawowe klasy Klasa JComponent Klasa JFrame
Klasa JFrame Klasa bazowa dla okien Ważne właściwości: settitle ( ) setdefaultcloseoperation ( ) setsize ( ), setlocation ( ) setlayout ( ) setvisible ( ) add ( )
Tworzenie okna aplikacji Napisanie klasy okna dziedziczącej po JFrame Wybranie menadżera ułożenia (setlayout ( ) ) Dodanie kontrolek w konstruktorze klasy Ustawienie domyślnej operacji przy zamknięciu Utworzenie instancji klasy (obiektu okna) Pokazanie okna (setvisible (true))
Rozmieszczanie komponentów Określenie sposobu, w jaki elementy mają być rozmieszczane w oknie odbywa się poprzez wybranie menadżera ułożenia (LayoutManager) FlowLayout BorderLayout GridLayout...
Layout Managers BorderLayout FlowLayout BoxLayout GridLayout GridBagLayout CardLayout GroupLayout SpringLayout
BorderLayout
BorderLayout Komponent centralny add ( komponent, BorderLayout.CENTER ) Komponenty przy brzegach kontenera add ( komponent, BorderLayout.PAGE_START ) PAGE_END LINE_START LINE_END Ustawianie odstępu między komponentami new BorderLayout ( horizontal, vertical )
FlowLayout
FlowLayout Komponenty ustawiane jeden za drugim Jeśli brak miejsca w wierszu, nowy wiersz Respektuje ustawienia rozmiaru komponentu Można określić wyrównanie FlowLayout.LEADING FlowLayout.CENTER FlowLayout.TRAILING i odstępy pomiędzy komponentami new FlowLayout ( align, horizontal, vertical )
BoxLayout
BoxLayout Jeden wiersz lub jedna kolumna new BoxLayout ( kontener, BoxLayout.LINE_AXIS ) new BoxLayout ( kontener, BoxLayout.PAGE_AXIS ) Respektuje rozmiary i wyrównanie komponentów Można dodawać odstępy i wypełniacze Box.createRigidArea ( new Dimension ( wys, szer ) ) Box.createHorizontalGlue ( ) Box.createVerticalGlue ( ) new Box.Filler ( min, pref, max )
GridLayout
GridLayout Dzieli kontener na równe wiersze i kolumny new GridLayout ( kolumny, wiersze ) Zmienia rozmiary komponentów Można określić odstępy new GridLayout ( kol, wier, poziomy, pionowy)
GridBagLayout
GridBagLayout Kolumny i wiersze różnych rozmiarów Komponenty zajmują różną ilość komórek Komponenty nie muszą wypełniać komórek Zachowanie komponentów można zmieniać new GridBagConstraints ( ) add ( komponent, constraints )
GridBagConstraints gridx, gridy gridwidth, gridheight fill ipadx, ipady insets anchor weightx, weighty
CardLayout
CardLayout W danym momencie widać jeden komponent Przełączanie widocznego komponentu first ( kontener ) last ( kontener ) next ( kontener ) previous ( kontener ) show ( kontener, nazwa )
Ręczne pozycjonowanie setlayout ( null ) setbounds ( x, y, width, height ) lub setlocation ( x, y ) setsize ( width, height )
Obsługa zdarzeń Obsługa zdarzeń odbywa się poprzez tworzenie słuchaczy (Listener) zawierających metody reagujące na konkretne zdarzenia. interfejs XxxxListener klasa XxxxAdapter metoda addxxxxlistener metoda removexxxxlistener
Przykłady słuchaczy ActionListener MouseListener / MouseAdapter MouseMotionListener / MouseMotionAdapter KeyListener / KeyAdapter WindowListener / WindowAdapter ComponentListener / ComponentAdapter
Metody słuchaczy ActionListener actionperformed (ActionEvent) MouseListener / MouseAdapter mouseclicked (MouseEvent) mouseentered (MouseEvent) mouseexited (MouseEvent) mousepressed (MouseEvent) mousereleased (MouseEvent)
Metody słuchaczy c.d. MouseMoveListener / MouseMoveAdapter mousemoved (MouseEvent) mousedragged (MouseEvent) KeyListener / KeyAdapter keypressed (KeyEvent) keyreleased (KeyEvent) keytyped (KeyEvent)
Metody słuchaczy c.d. ComponentListener / ComponentAdapter componentshown (ComponentEvent) componenthidden (ComponentEvent) componentmoved (ComponentEvent) componentresized (ComponentEvent) WindowListener / WindowAdapter windowopened (WindowEvent) windowclosed (WindowEvent) windowactivated (WindowEvent)...
Ważniejsze komponenty JButton JLabel JTextField, JTextArea JCheckBox, JRadioButton, JToggleButton ButtonGroup JPanel JComboBox
JRadioButton ButtonGroup group = new ButtonGroup( ); JPanel panel = new JPanel( ); JRadioButton rb1 = new JRadioButton( ); JRadioButton rb2 = new JRadioButton( ); JRadioButton rb3 = new JRadioButton( ); panel.add(rb1); group.add(rb1); panel.add(rb2);...
Wyświetlanie komunikatów JOptionPane.showMessageDialog ( ) JOptionPane.showConfirmDialog ( ) JOptionPane.showOptionDialog ( ) JOptionPane.showInputDialog ( )