Programowanie obiektowe - JAVA
Informacje ogólne > Laboratorium 3 > Ćwiczenie 2

Ćwiczenie 2

Zastosowany w poprzednim ćwiczeniu menadżer rozmieszczenia BorderLayout zwykle stosowany jest do podzielenia okna na "obszary funkcjonalne", do których następnie dodawane są kolejne komponenty - przy ich dodawaniu użyteczne są inne menadżery rozmieszczenia komponentów, w szczegóności FlowLayout (komponenty umnieszczane w linii/liniach) oraz GridLayout (komponenty rozmieszczone w siatce/tabeli o określonej ilości kolumn i wierszy).

1. Utworzyć 5-6 prostych komponentów Swing tej samej klasy (np. JButton, JTextField, JLabel, JCheckBox) i dodać do jednego z paneli, w którym wykorzystany będzie FlowLayout, np.:

   p1.setLayout(new FlowLayout());
   JButton b1 =
new JButton("Guzik 1");
   p1. add (b1);
   itd...

2. Utworzyć kolejne 5-6 komponentów Swing i dodać je do innego panelu, w którym wykorzystany będzie GridLayout:

     p2.setLayout(new GridLayout(2,3));
     itd...

3. Po wykonaniu powyższych poleceń, wywołać na końcu konstruktora metodę:
          pack();
Okno zostanie "spakowane" do minimalnych możlwych rozmiarów.
Następnie wybranemu komponenotowi ustawić "preferowany rozmiar" i zaobserować zmianę w pracy menadżerów rozmieszczenia komponentów, np.
           b1.setPreferredSize(new Dimension (200,200));

4. Do kolejnego panelu dodać etykietę JLabel, której zawartość sformatowana jest przy użyciu języka HTML. 
Ciąg znaków przekazywany jako argument metody setText(...) powinien zaczynać się od znacznika <html>, np.:

theLabel.setText("<html>\n" +
                       
"Color and font test:\n" +
                       
"<ul>\n" +
                       
"<li><font color=red>red</font>\n" +
                       
"<li><font color=blue>blue</font>\n" +
                       
"<li><font color=green>green</font>\n" +
                       
"<li><font size=-2>small</font>\n" +
                       
"<li><font size=+2>large</font>\n" +
                       
"<li><i>italic</i>\n" +
                       
"<li><b>bold</b>\n" +
                       
"</ul>\n"+
                       
"</html>");

Można również korzystać ze znaków specjalnych Unicode, np.:

p5.add(new JLabel("<html>\n" +
                         
"<font size = 14>" +
     
"&sum;&Phi;<sub>&epsilon;</sub> &asymp; &pi;<sup>2</sup>" +    
                         "</html>"
));

Co da efekt: ∑Φε ≈ π2  (zestawy "znaków specjalnych" można znaleźć wpisując w przeglądarce np. "greek unicode entities"...)

W analogiczny sposób można dodawać formatowane ciągi znaków do przycisków JButton.