Ć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>" + "∑Φ<sub>ε</sub> ≈ π<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.
|