WDIS Materialy 2


WDIS Laboratorium Materiały pomocnicze do ćwiczenia 2 Wydział Transportu PW
MATERIAAY DO ĆWICZENIA 2
Aplikacja wykorzystujÄ…ca pakiet Swing
Pakiet Swing, będący częścią biblioteki Java Foundation Classes, umożliwia tworzenie w języku Java
interaktywnych interfejsów graficznych, pozwalających wprowadzanie danych za pomocą myszki, klawiatury i innych
urządzeń tego typu. Wszystkie składniki tego pakietu zostały całkowicie zaimplementowane w języku Java, co zapewnia
zgodność i niezależność wyglądu poszczególnych składników pakietu na różnych platformach.
Pierwszym etapem tworzenia aplikacji z wykorzystaniem pakietu Swing jest utworzenie klasy, która będzie
reprezentowała graficzny interfejs użytkownika. Obiekty tej klasy będą służyły jako kontenery przechowujące
poszczególne składniki interfejsu. W większości aplikacji takim właśnie głównym obiektem interfejsu jest albo okno
proste (Obiekt klasay JWindow), albo ramka (Obiekt klasy JFrame ), czyli okna z paskiem tytułu oraz z przyciskami
Minimalizuj, Maksymalizuj , Zamknij.
A więc jednym ze sposobów utworzenia graficznego interfejsu użytkownika wykorzystującego pakiet Swing jest
zdefiniowanie go jako podklasy klasy JFrame, tak jak to zrobiliśmy w naszym ćwiczeniu.
Klasa JFrame
Klasa JFrame posiada dwie metody tworzÄ…ce obiektu tej klasy czyli tzw. konstruktory :
JFrame()-tworzy ramkę z pustym paskiem tytułu
JFrame(String)- tworzy ramkę z tytułem reprezentowanym przez obiekt String
Metody obiektowe, które mogą być wywoływane na rzecz utworzonej ramki:
Øð ðsetTitle(String) - nadaje tytuÅ‚ ramce
Øð ðsetSize(int, int) - nadaje odpowiedni szerokość i wysokość ramki w pikselach
Po utworzeniu ramka nie jest automatycznie widoczna, a więc jeśli chcemy ja wyświetlić, należy wywołać jedną
z poniższych metod:
Øð ðshow()
Øð ðsetVisible(true)
Uwaga! W Edytorze Netbeans powyższe metody wykonywane są automatycznie, podczas wykonywania aplikacji
dziedziczÄ…cej z kalsy JFrame
Do ukrycia ramki służą metody hide() lub setVisible(false)
Jeżeli tworzona ramka stanowi główne okno interfejsu aplikacji, to zazwyczaj oczekiwanym zachowaniem przycisku
zamknij ramki jest zamknięcie całej aplikacji. Można tego dokonać przekazując do metody
setDeafultCloseOperation() parametr EXIT_ON_CLOSE
Komponenty biblioteki Swing
Pakiet javax.swing zawiera zestaw klas, służących do tworzenia graficznego interfejsu użytkownika, nazywanego
w skrócie GUI (Graphical User Interface)
·ð ð Poszczególne skÅ‚adniki pakietu Swing (miÄ™dzy innymi takie jak przyciski, listy, etykiety czy pola wyboru) majÄ…
jedną wspólną klasę bazową javax.swing.JComponent.
·ð ð Wyróżniamy 2 rodzaje komponentów:
kontenery (mogą zawierać inne komponenty)
kontrolki i sterownik (nie mogą zawierać innych komponentów)
Podstawowe klasy biblioteki Swing
Klasa JButton
·ð ð Przyciski sÄ… jednym z najczęściej używanych elementów graficznego interfejsu użytkownika.
·ð ð Do tworzenia przycisków wykorzystuje siÄ™ nastÄ™pujÄ…ce konstruktory klasy Button:
Button() - tworzy pusty przycisk (bez napisu)
Button(String) - tworzy przycisk z napisem
Uwaga! Podczas wstawiania dowolnego składnika na formę z palety komponentów, automatycznie w programie
są wywoływane konstruktory i dopisywane odpowiednie metody dodające dany składnik do formy.
·ð ð Tekst na przycisku można ustawiać lub pobrać za pomocÄ… metod setText() lub getText
Klasa JLabel
·ð ð Klasa JLabel sÅ‚uży do tworzenia etykiet umożliwiajÄ…cych wyÅ›wietlanie tekstu, ikony, lub obydwu tych
elementów naraz w jednym wierszu.
·ð ð Etykiety sÄ… w zasadzie wykorzystywane do opisywania innych elementów, wiÄ™c tekst wyÅ›wietlany na nich nie
może być modyfikowany przez użytkownika.
·ð ð Aby utworzyć etykietÄ™, można wykorzystać nastÄ™pujÄ…ce konstruktory (metody tworzÄ…ce obiekty):
żð ðJLabel(String)  etykieta tekstowa;
żð ðJLabel(String, int )  etykieta tekstowa z okreÅ›lonym sposobem wyrównania;
żð ðJLabel(String, Icon, int )  etykieta z tekstem, ikonÄ… i z okreÅ›lonym sposobem wyrównania
(za sposób wyrównywania etykiety w stosunku do okna aplikacji odpowiadają 3 zmienne klasy
SwingConstants: LEFT, CENTER, RIGHT
Instrukcja tworząca etykietę może mieć postać:
JLabel lab1 = new JLabel("Etykieta1", SwingConstants.RIGHT);
Materiały do użytku wewnętrznego
WDIS Laboratorium Materiały pomocnicze do ćwiczenia 2 Wydział Transportu PW
JLabel lab2 = new JLabel("Etykieta2", SwingConstants.LEFT);
JLabel lab3 = new JLabel("Etykieta2"); //( tu brak drugiego parametru powoduje
wycentrowanie etykiety )
add(lab);// metoda dodania etykiety
Komponenty tekstowe
·ð ð Pola tekstowe i obszary tekstowe to podklasy klasy komponentu tekstowego - JTextComponent.
·ð ð Pola tekstowe - obiekty klasy JTextField umożliwiajÄ… wprowadzanie i modyfikowanie tekstu, ale ich
rozmiar jest ograniczony do jednego wiersza.
·ð ð Do wprowadzania wiÄ™kszych, wielowierszowych tekstów stosuje siÄ™ obszary tekstowe - obiekty klasy
JTextArea.
·ð ð Dodatkowo dla obiektów klasy JTextArea dostÄ™pne sÄ… metody append(String) i insert(String,
int), odpowiednio dodająca tekst na końcu obszaru tekstowego i wstawiająca tekst w miejscu wskazanym
przez parametr int.
Konstruktory klasy JTextField i JTextArea
Metody tworzące obiekt klasy JTextField i JTextArea umieszczone są w poniżej tabeli
Konstruktor Opis
JTextField() Tworzy nowe puste pole tekstowe
JTextField(int) Tworzy nowe puste pole tekstowe o określonej długości
TextField(String, int) Tworzy obszar tekstowy o zawierające podany tekst o określonej długości
JTextArea(int, int) Tworzy obszar tekstowy o określonej liczbie wierszy i kolumn
Tworzy obszar tekstowy o określonej liczbie wierszy i kolumn, a następnie
JTextArea(String,int, int)
wypełnia go tekstem podanym parametrem String
Metody klasy JComponent
W klasie JComponent zdefiniowane są metody wspólne dla wszystkich komponentów.
Metod tych używa się do pobierania (get), ustawiania (set) i sprawdzania (is) właściwości komponentów
Size getSize()
rozmiar komponentu getSize(Dimension rozmiar)
setSize(int width, int height)
Location getLocation()
położenie getLocation(Point p)
setLocation(Point p)
Bounds
getBounds() lub getBounds(Rectangle r)
rozmiar i położenie setBounds(x, y, width, height)
setBounds(Rectangle r)
Font getFont()
pismo setFont(Font f)
Background getBackground()
kolor tła setBackground(Color c)
Foreground getForeground()
kolor pierwszego planu setForeground(Color c) ,
Visible isVisible()
widzialność setVisible(boolean b)
Enabled isEnabled()
dostępność setEnabled(boolean b)
Text
setText() (dla składników tekstowych)
tekst getText()
setSelectedTex()
getSelectedTex()
Value
setValue()dla składników przechowujących wartość
wartość getValue()
Klasa Color
Aby ustawić bieżący kolor dla operacji graficznych należy utworzyć obiekt klasy Color opisujący taki kolor np :
Color c =new Color(122,104,100); g.setColor(c); gdzie g jest obiektem typu Graphics
albo skorzystać jednego ze standardowych kolorów zdefiniowanych w klasie Color np: Color.red
Klasa Font
Aby ustalić rodzaj fontu należy utworzyć obiekt klasy Font, który reprezentuje nazwę, styl i rozmiar czcionki. Obiekt
klasy Font tworzymy, przekazując do konstruktora powyżej wymienione trzy parametry:
Øð ðNazwa czcionki może być podana wprost jak np. Arial, TimesRoman, Courier, Dialog i inne.
Øð ðStyl czcionki mogÄ… reprezentować 3 predefiniowane staÅ‚e: Font.PLAIN, Font.BOLD, Font.ITALIC
Øð ðRozmiar czcionki podawany jest w punktach.
Przykład: Font f=New Font( Arial ,Font.BOLD,24); g.setFont(f);
Materiały do użytku wewnętrznego


Wyszukiwarka