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