Wykład_5

Transkrypt

Wykład_5
Naszym mózgom. Za to, że
zawsze są na swoim miejscu.
W mniejszym lub większym
stopniu
Paweł Gmys
APLIKACJE – OKNA i MENU
1
Aplikacje
Paweł Gmys
klasa awt oraz swing
Aplikacje graficzne wymagają interfejsu
klasy WindowsListener oraz
zdefiniowanych w niej metod.
2
Klasa WindowsListener



Paweł Gmys




windowClosing – wywoływane gdy okno jest zamykane
windowClosed – wykonywane po zamknięciu okna
windowOpened – wykonywane po otwarciu okna
windowIconified – wykonywane po minimalizacji okna
windowDeiconified – wykonywane po maksymalizacji
okna
windowActivated – wykonywane po aktywacji okna
windowDeactivated – wykonywane gdy okno staje się
nieaktywne
3
Ramki są przykładami pojemników graficznych.
Stosowane będą metody klasy JFrame pakietu javax.swing
Paweł Gmys
Domyślny rozmiar ramki to 0 x0 pikseli. Aby ramka powstała
należy zdefiniować podklasę i określić wielkość ramki
4
Zamykanie ramki (okna)
zmienna.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
Paweł Gmys
Polecenie dostępne od wersji 1.3
Tworzenie ramki nie powoduje jej wyświetlenia.
Należy wywołać metodę show w metodzie main.
przykład okienko0
jdkcom\JDKcommander.exe
5
Paweł Gmys
Wywołanie kilku okien
Dla każdego nowego okna tworzymy nową
wartość korzystając z utworzonego już
obiektu.
przykład okienko01
jdkcom\JDKcommander.exe
6
Wyświetlanie informacji w panelu
Do okna zbudowanego w poprzednich przykładach możemy
Paweł Gmys
dołożyć informacje, przyciski i inne elementy za pomocą Paneli
Są to elementy interfejsu, o dwóch właściwościach:
1.
posiadają powierzchnię do rysowania
2.
same w sobie są pojemnikami
Panele implementujemy przez klasę JPanel
7
Paweł Gmys
Panele
Aby narysować Panel należy:
1.
Zdefiniować klasę rozszerzającą JPanel
2.
przeładować metodę paintComponent należącą do tej
klasy
Metoda paintComponent znajduje się w JComponent – klasie
bazowej. Pobiera jeden paraetr typu Graphics. Klasa ta
posiada metody wyświetające tłą, rysunki i tekst
8
Panel – struktura kodu
class MojPanel extends JPanel
Paweł Gmys
{
public void paintComponent(Graphics g)
{
super.paintComponent(g)
//instrukcje rysujące
}
}
9
Rysowanie tekstu (renderowanie)
Paweł Gmys
Klasa Graphics
metoda g.drawString (tekst, x, y)
przykład
g.drawString(”lala”, 100, 100);
10
Paweł Gmys
javax.swing.JFrame
Container getContentPane()
Zwraca powierzchnię zawartości dla
danego obiektu
11
Paweł Gmys
java.awt.Component
void repaint()
Powoduje odmalowanie komponentu „tak
szybko jak to możliwe”
public void repaint(int x, int y, int szerokosc, int wysokosc)
Powoduje odmalowanie części komponentu „tak szybko
jak to możliwe”
12
Paweł Gmys
javax.swing.JComponent
void paintComponent(Graphics g)
Przeładuj tę metodę, aby opisać, w jai
sposób Twoje komponenty powinny być
rysowane
13
Paweł Gmys
Aplikacja z tytułem – przykład okienko1
jdkcom\JDKcommander.exe
14
Figury 2D
Paweł Gmys
Klasa Graphics2D (podklasa Graphics)
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D)g
………………………………….
}
przykład: figury.java
jdkcom\JDKcommander.exe
15
Paweł Gmys
Figury c.d.
g2.draw(co rysujemy);
przykład
figury1.java
figury2.java
figury3.java
jdkcom\JDKcommander.exe
16
Kolory
Paweł Gmys
Metoda setPaint klasy Graphics2D
Definicja koloru za pomocą klasy Color
17
Lista kolorów w klasie java.awt.Color

Paweł Gmys



Black , Blue
Cyan , darkGray , gray , green
light green , magenta , orange
pink, red , white , yellow
18
Paweł Gmys
Kolory - własne definicje
Można definiować kolor, tworząc obiekt
typu Color i określając jego czerwony,
zielony i niebieski kolor składowy.
Skala od 0 do 255.
example:
g.setColor(new Color(0, 128, 128));
g.drawString(”Witam”, 75, 100);
19
Kolorowe figury
Paweł Gmys
przykład figury4.java
kilka kolorów
przykład figury5.java
20
Kolor tła
Paweł Gmys
Metoda setBackground klasy Component
przykład tlo.java
jdkcom\JDKcommander.exe
21
Panel z przyciskami
Paweł Gmys
Przyciski tworzymy określając na nich napis,
ikonę albo jedno i drugie.
Dodawanie przycisków do panelu następuje w
wyniku wywołania metody add.
Parametrem tej metody jest komponent
22
Paweł Gmys
Panel - składnia
class Panelprzyciskow extends JPanel
{
public PanelPrzyciskow
{
JButton p1 = new JButton(”opcja1”);
………………………………………
add(p1);
………
}
}
23
Przyciski - przykłady
Paweł Gmys
przyciski1.java
jdkcom\JDKcommander.exe
24
Paweł Gmys
Przykład testprzyciskow
jdkcom\JDKcommander.exe
25
Zadanie
Paweł Gmys
1.
Narysuj w oknie dom, n który składają
się figury geometryczne. Rysunek
powinien być podpisany przez autora
(imię i nazwisko) i znajdować się na
zielonym tle. Aplikacja powinna
zawierać w belce tytułowej jej nazwę
26