Java-podstawy_jezyka_wyklad5
Transkrypt
Java-podstawy_jezyka_wyklad5
Wydział Fizyki i Informatyki Stosowanej,
Uniwersytetu Łódzkiego
17.12.2010 Łódź
Java - podstawy języka, wykład 5
1
Graficzny Interfejs Użytkownika (GUI)
Java 1.0
▪ AWT (Abstract WindowToolkit)
bardzo niewygodne i nie intuicyjne środowisko
Java 1.1
▪ Poprawione AWT
Java 1.2
▪ JFC (Java Foundation Clases)
▪ Swing
Alternatywne
▪ SWT (Standard Widget Toolkit)
Biblioteka IBM (Eclipse)
▪ Java Fx
Jawoski odpowiednik Flex(Flash), Silverlight
Java - podstawy języka, wykład 5
2
Podstawowe własności
▪
▪
▪
▪
Jasny czytelny kod
Pełna obiektowość (AWT od Javy 1.1)
Intuicyjne nazewnictwo
Programowanie = budowa z klocków
▪ JavaBeans
▪ GUI Builders
▪ Szybkie programowanie interfejsu
▪ GUI platformowo niezależne
Java - podstawy języka, wykład 5
3
Podstawowe składniki
Elementy graficzne
▪ Przyciski, pola tekstowe, panele …
Obsługa zdarzeń
▪ Obsługa myszy, klawiatury
▪ Zdarzenia systemowe
Zamkniecie okna
Zmiana rozmiaru okna
Java - podstawy języka, wykład 5
4
Applet
Program uruchamiany w przeglądarce
▪ Ograniczenia (Piaskownica - SandBox)
Podpisywanie appletów
Aplikacja
Zupełnie niezależny program
▪ Bez ograniczeń
Oba uruchamia się w inny sposób
▪ Można łączyć oba typy
Java - podstawy języka, wykład 5
5
Program uruchamiany w przeglądarce
Ograniczenia
▪ Brak dostępu do dysku
Odczyt i Zapis
▪ Ograniczony dostęp do sieci
Połączenie tylko ze stroną domową appletu
Zalety
▪ Nie trzeba instalować
▪ Natychmiastowa aktualizacja i rozprowadzanie
▪ Nie można zaszkodzić klientowi (Sandbox)
Java - podstawy języka, wykład 5
6
Klasa JApplet
Metody :
▪ init()
Uruchamiana przy inicjalizacji
▪ start()
Wywoływana przy powrocie „na wierzch” i po init()
▪ stop()
Wywoływana przy „ukryciu okna” i przed zakończeniem
▪ destroy()
Uruchamiana na sam koniec
Java - podstawy języka, wykład 5
7
Programowanie Appletu
ContentPane – tafla (Kontener)
▪ Na taflę dodajemy poszczególne elementy
▪ JLabel - etykieta
Tworzymy plik html
▪ znacznik <applet ….> </applet>
▪ program HTMLconverter
Przeglądarka lub appletviewer
Przyklad5_1
Java - podstawy języka, wykład 5
8
Klasa JFrame
▪
▪
▪
▪
dziedziczy po Klasie Container
add() - dodajemy obiekty na Ramkę
setSize(width,height) - ustalenie rozmiaru
setVisible(boolean) - pokaż ramkę
Uruchamianie appletu jako aplikacji
Przyklad5_2
Java - podstawy języka, wykład 5
9
Rozmieszczanie elementów
▪ setLayout()
BorderLayout, FlowLayout, GridLayout, GridBagLayout,
BoxLayout
Przycisk
▪ JButton
▪ Przyklad5_3
Pola tekstowe
JTextField, JTextArea
▪ Przyklad5_4
Java - podstawy języka, wykład 5
10
Dowolny Komponent
Lista możliwych zdarzeń
▪ Przypisanie nasłuchu zdarzenia XXX
▪ addXxxListener()
▪ Usunięcie nasłuchu zdarzenia XXX
▪ removeXxxListener()
▪ Co zrobić w przypadku wystąpienia zdarzenia
▪ implementacja interfejsu XxxListener
▪ Przyklad5_5, Przyklad5_6
Java - podstawy języka, wykład 5
11
BorderLayout
5 możliwości (NORTH, SOUTH, WEST, EAST, CENTER)
▪ Przyklad5_7
FlowLayout
Umieszczanie po kolei
▪ wierszami od góry , od lewej do prawej
▪ Przyklad5_8
GridLayout
Rozmieszczenie jak w tabeli
▪ Przyklad5_9
Java - podstawy języka, wykład 5
12
GridBoxLayout i BoxLayout
większa kontrola nad rozmieszczeniem
trudniejsze w wykorzystaniu
GUI Builders
▪ Graficzne projektowanie interfejsu
▪ Nie Trzeba się bawić w szczegóły
▪ szybkość tworzenia interfejsu
▪ Dodajemy tylko logiczne elementy programu
NetBeans, Eclipse i wiele innych
Java - podstawy języka, wykład 5
13
Przykładowe komponenty biblioteki Swing
Elementy wyświetlające Tekst
▪ JTextField, JTextArea
▪ JEditorPane, JTextPane
Przyciski
▪ JButton, JToggleButton
▪ JCheckBox, JRadioButton
Listy wyboru
▪ JComboBox
▪ JList
Menu, zakładki
▪ JMenu
▪ JTabbedPane
Java - podstawy języka, wykład 5
14
Wyskakujące podpowiedzi
▪ JToolTipText
Okna dialogowe
▪ JOptionPane, JDialog
▪ JFileChooser, JColorChooser
Panel (np. do rysowania)
▪ JPanel
Menu, zakładki
▪ JMenu
▪ JTabbedPane
Więcej elementów i szczegółowe informacje
▪ Dokumentacja języka
▪ http://java.sun.com/docs/books/tutorial/uiswing/
Java - podstawy języka, wykład 5
15
Komponety pobierające tekst
▪ interpretują HTML
▪ Przyklad5_10
▪ dodawanie ikon
▪ Przyklad5_11
Mini www browser
▪ JEditorPane, JTextPane
▪ Potrafią one interpretować inne formaty
np. rdf
można dodawać wybrane formaty
Java - podstawy języka, wykład 5
16
Rodzaje komunikatów
▪ JOptionPane
▪ Ostrzeżenia, Komunikaty, Okna wyboru
▪ Przyklad5_12
▪ JDialog
▪ Dodatkowe okno aplikacji
▪ Przyklad5_13
▪ JFileChooser, JColorChooser
▪ Okna wyboru pliku, koloru
▪ Przyklad5_14
Java - podstawy języka, wykład 5
17
JavaBeans
Klocki dla programisty
Dobra współpraca z GUI Builders
▪ Przeciągamy na „formatkę” programu
▪ Ustawiamy właściwości
▪ Wykorzystuje się mechanizm refleksji
Java - podstawy języka, wykład 5
18
JavaBean - elementy
pola
▪ właściwości fasolki (ziarenka)
▪ private TYP nazwaPola
metody
▪ Operujące na właściwościach
▪ public TYP getNazwaPola() {…}
▪ public void setNazwaPola(TYP nazwa) { …}
▪ Obsługa zdarzeń
▪ Inne metody
Przyklad5_15
Java - podstawy języka, wykład 5
19
Komponent może być Kontenerem
▪ add()
▪ remove()
Obsługa elementów komponentu
▪ getComponent(int )
▪ Przyklad5_16
Java - podstawy języka, wykład 5
20
Proste rysowanie 2D
▪ JPanel i inne klasy dziedziczące po JComponent
▪ paintComponent(Graphics )
java.awt.Graphics
▪ repaint()
▪ Przyklad5_17
▪ Java 2D API
Grafika 3D (OpenGL)
▪ Java 3D API
▪ JOGL (JSR-231)
[JSR: Java Specification Request]
Java - podstawy języka, wykład 5
21
Jeden plik
Więcej plików
▪ najlepiej spakować
▪ jar – platformowo niezależne archiwum
pakujemy cały pakiet (czasem z bibliotekami)
▪ jar –cf nazwa.jar nazwaKatalogu
▪ jar –xf nazwa.jar
▪ Można uruchamiać programy bez rozpakowywania
▪ należy dodać plik określający która klasa jest „główna”
Manifest.mf
Java - podstawy języka, wykład 5
22
Plik Manifestu:
Main-Class: nazwapakietu.KrasaStartowa
Pakowanie z manifestem
▪ jar –cfm nazwa.jar manifest.txt nazwaKatalogu
Uruchamianie
▪ java –jar nazwa.jar
Java - podstawy języka, wykład 5
23
Tworzenie Klucza
keytool
keytool -genkey -alias nazwaKlucza -keypass haslo
Podpisywanie Kluczem
jarsigner
jarsigner nazwa.jar nazwaKlucza
Java - podstawy języka, wykład 5
24
Java Web Start (jnlp)
Aplikacje lokalne
▪ Ściągane z zdalnego serwera
▪
▪
▪
▪
Automatyczna aktualizacja po modyfikacji
Nie ogranicza nas piaskownica (sandbox)
Proste dołączanie bibliotek
Wszystkie pakiety muszą być podpisane
▪ Plik .jnlp
Java - podstawy języka, wykład 5
25