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