Języki Programowania II Wykład 7. Java Swing

Podobne dokumenty
Programowanie obiektowe

SWING. dr Jarosław Skaruz

Java - interfejs graficzny

Podstawy Języka Java

Programowanie zdarzeniowe

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Interfejs graczny w Javie.

Java biblioteka Swing

Kurs programowania. Wykład 4. Wojciech Macyna. 23 marca 2016

Programowanie w Javie Wykład 6 Okienka w Javie (AWT)

Programowanie w języku Java WYKŁAD

GUI - projektowanie interfejsów cz. II

Klasy abstrakcyjne. Klasę abstrakcyjną tworzymy przy pomocy modyfikatora abstract

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

Podstawy Swing. Tomasz Borzyszkowski

Programowanie Multimediów. Programowanie Multimediów JAVA. programowanie GUI. (AWT i Swing) [1]

Programowanie graficznych interfejsów użytkownika

Programowanie zdarzeniowe

LABORATORIUM 7 Cel: 1_1

Architektura interfejsu użytkownika

Programowanie obiektowe

Programowanie obiektowe

Obsługa zdarzeń. Wykład 4

Informatyka i Ekonometria Programowanie komputerów Ćwiczenia Tworzenie aplikacji wykorzystaniem graficznego interfejsu użytkownika - Swing.

Java SE Laboratorium nr 5. Temat: Obsługa zdarzeń

Programowanie graficznego interfejsu użytkownika. Wykład 8. Maciej Wołoszyn 10 maja 2006

Java niezbędnik programisty spotkanie nr 12. Graficzny interfejs użytkownika

Język JAVA podstawy. Wykład 5, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Graphic User Interfaces pakiet Swing

Kontenery i komponenty graficzne

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

Programowanie Obiektowe GUI

Programowanie w języku JAVA. Wykład IV Swing - GUI

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0

Programowanie w języku Java

Edytor tekstu OpenOffice Writer Podstawy

Edytor tekstu MS Word podstawy

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Zaznaczanie komórek. Zaznaczenie pojedynczej komórki polega na kliknięciu na niej LPM

Aplikacje w Javie wykład 12 Programowanie GUI

Czcionki bezszeryfowe

Programowanie graficznych interfejsów uŝytkownika

Aplikacja projektu Program wycinki drzew i krzewów dla RZGW we Wrocławiu

Celem ćwiczenia jest zapoznanie się z podstawowymi funkcjami i pojęciami związanymi ze środowiskiem AutoCAD 2012 w polskiej wersji językowej.

PRZEWODNIK PO ETRADER PEKAO ROZDZIAŁ XVI. INFORMACJE RYNKOWE SPIS TREŚCI

setdefaultcloseoperation(jframe.exit_on_close);//obsługa zamykania aplikacji setvisible(true); } //wyświetlenie okna

Podstawowe funkcjonalności interfejsu. - co warto wiedzieć o interfejsie Mozart-a

WinSkład / WinUcz 15.00

Arkusz kalkulacyjny MS Excel 2010 PL.

Ćwiczenia 9 - Swing - część 1

Oficyna Wydawnicza UNIMEX ebook z zabezpieczeniami DRM

Programowanie Obiektowe Java

Tworzenie aplikacji graficznych SWT i JFace

Wykład 12: Obsługa Zdarzeń

etrader Pekao Podręcznik użytkownika Informacje rynkowe

Dodanie nowej formy do projektu polega na:

Spis treści. Integracja Shoper

Interfejsy w Java. Przetwarzanie równoległe. Wątki.

Kontynuacja wprowadzenia do SWING. Przykłady implementacji wybranych komponentów

Visual Basic for Applications. Formatki tworzenie,

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

4.Arkusz kalkulacyjny Calc

Po naciśnięciu przycisku Dalej pojawi się okienko jak poniżej,

Tworzenie elementów graficznych

Tworzenie i modyfikowanie wykresów

Zadanie 1. Stosowanie stylów

Programowanie zdarzeniowe

Jak przygotować pokaz album w Logomocji

Formatowanie komórek

Programowanie w środowisku graficznym- wykład 9 Programowanie GUI cz1

Dodawanie grafiki i obiektów

Grafika i komunikacja człowiek komputer Laboratorium. Część 1: Wstęp do grafiki

Laboratorium z Grafiki InŜynierskiej CAD. Rozpoczęcie pracy z AutoCAD-em. Uruchomienie programu

Podręcznik użytkownika programu. Ceremonia 3.1

Spis treści 1. Wstęp Logowanie Główny interfejs aplikacji Ogólny opis interfejsu Poruszanie się po mapie...

Wykład 3: Projektowanie graficznych interfejsów użytkownika w Java

programu Neofon instrukcja obsługi Spis treści

SZCZEGÓŁOWY OPIS NOWOŚCI W SDIG UDOSTĘPNIONYCH W LIPCU 2012

Zadanie Wstaw wykres i dokonaj jego edycji dla poniższych danych. 8a 3,54 8b 5,25 8c 4,21 8d 4,85

Edytor tekstu MS Office Word

Poradnik obsługi systemu zarządzania treścią (CMS) Concrete5. Moduły i bloki

Instrukcja redaktora strony

MJUP_Instrukcja obsługi aplikacji. wspomagającej

System Informatyczny Oddziału Wojewódzkiego NFZ

unikupon.pl Unikupon PC Instrukcja obsługi

BAZY DANYCH Formularze i raporty

System Informatyczny Oddziału Wojewódzkiego NFZ

1. Wprowadzenie. 1.1 Uruchamianie AutoCAD-a Ustawienia wprowadzające. Auto CAD Aby uruchomić AutoCada 14 kliknij ikonę

Backoffice instrukcja użytkowania. Metryka dokumentu Wersja Data Zmiany Wersja inicjalna dokumentu

System Informatyczny CELAB. Terminy, alarmy

POMOC / INSTRUKCJA OBSŁUGI

Arkusz kalkulacyjny EXCEL

PRZEWODNIK PO ETRADER PEKAO ROZDZIAŁ XVIII. ANALIZY I KOMENTARZE SPIS TREŚCI

Transkrypt:

Języki Programowania II Wykład 7 Java Swing

GUI w Javie Abstract Window Toolkit (AWT) podstawowy zbiór komponentów opartych na zarządcy okien wspólny mianownik funkcjonalności ze wszystkich platform rozbudowany model obsługi zdarzeń klasy pomocnicze m.in. kształty, kolory i fonty zarządcy układu obsługa schowka

Swing to co w AWT plus GUI w Javie c.d. Javowa implementacja komponentów z AWT rozbudowany zestaw komponentów zaimplementowanych w Javie tylko komponenty najwyższego poziomu są oparte na zarządcy okien ta sama funkcjonalność na wszystkich platformach przełączalny wygląd i zachowanie (pluggable look and feel) dość dobra ale nie idealna symulacja wyglądu zarządcy okien (nie korzysta z akceleracji)

GUI w Javie c.d. Standard Widget Toolkit (SWT) zapoczątkowany przez IBMa, rozwijany w ramach platformy Eclipse opiera się na zarządcy okien tak ja AWT, ale nie ogranicza funkcjonalności gorsza przenośność aplikacjito co w AWT plus

Przykład

Podstawowe komponenty JLabel podobnie jak etykieta (i inne komponenty) posiada get/settext(), get/seticon(), get/sethorizontalalignment(), get/setverticalalignment(), get/setdisplayedmnenomic() przycisk może zmieniać wygląd w zależności od swojego stanu get/setdisabledicon() get/setdisabledselectedicon() get/seticon() get/setpressedicon() get/setrollovericon() get/setrolloverselectedicon() get/setselectedicon() akcję dowiązujemy przy pomocy zdarzeń

Podstawowe komponenty Jbutton wyświetla tekst lub obrazek get/settext() get/seticon() get/sethorizontalalignment() get/setverticalalignment() get/setdisplayedmnemonic() mnemonic to podkreślona litera get/setlabelfor() komponent do którego zostanie przeniesiony focus po wybraniu Alt+mnemonic

Podstawowe komponenty JTextField get/settext() JFrame kontener na inne komponenty łącznik do systemu operacyjnego (systemu okien) get/settitle() tytuł okienka get/setstate() minimalizacja/maksymalizacja is/setvisible() widoczność na ekranie get/setlocation() umiejscowienie na ekranie get/setsize() rozmiar add() dodanie komponentu

Przykład

Przykład c.d.

Problemy Bezwzględne rozmiary i współrzędne jak to będzie wyglądać na innych platformach? Jak zakończyć aplikację? DO_NOTHING_ON_CLOSE HIDE_ON_CLOSE (domyślne dla JDialog i JFrame) ukrywa okno DISPOSE_ON_CLOSE (domyślne dla JInternalFrame) ukrywa i zwalnia zasoby; jeżeli to było ostatnie okno to VM może zakończyć działanie EXIT_ON_CLOSE kończy aplikację przy pomocy System.exit(0) Czy rozszerzać JFrame i pamiętać komponenty jako atrybuty?

Zarządcy układu BorderLayout używany domyślnie przez główne komponenty (JApplet, JDialog i JFrame) zmiana metodą setlayout(layoutmanager) rejony: prawo, lewo, góra, dół, środek (domyślnie) dodanie nowego komponentu do rejonu już posiadającego zawartość spowoduje jej podmianę FlowLayout układa komponenty od lewej do prawej pozwala komponentom na preferowany rozmiar, nawet jak nie będą przez to widoczne w całości

Zarządcy układu c.d. GridLayout komponenty umieszczane są w komórkach siatki wszystkie komponenty mają taki sam rozmiar I wiele innych... BoxLayout wiersz lub kolumna (można zagnieżdżać) GridBagLayout duże możliwości, skomplikowany SpringLayout rozmieszczenie wyznaczone przez więzy (sprężyny z minimalną, maksymalną i optymalną długością) CardLayout przełączalne karty

JComboBox Jeszcze trochę komponentów pozwala wybrać max 1 element additem() dodaje element do grupy get/setselectedindex() manipuluje stanem get/setselecteditem() zwraca/ustawia wybrany element removeallitems() usuwa wszystkie elementy removeitem() usuwa konkretny element JPasswordField podobny do JTextField get/setechochar() wyświetlany znak gettext() zwraca napis getpassword() zwraca char[]

Jeszcze trochę komponentów c.d. JCheckBox i JRadioButton JRadioButton() daje wykluczający się wybór add() dodaje checkbox lub przycisk do grupy getelements() zwraca wszystkie komponenty grupy do iteracji JOptionPane gotowiec do wyskakujących okienek

Jeszcze trochę komponentów c.d. JMenu/JMenuItem/JMenuBar przy pomocy setjmenubar() ustawia się JMenuBar dla ramki JMenu zawiera JMenuItem lub inne JMenu JMenuItem się wybiera dla JMenuItem można ustawić skrót dla JMenu i JMenuItem można ustawiać mnemoniki Wspólne metody JMenuItem oraz jego podklasy JMenu: get/setaccelerator() ustawia skrót postaci Ctrl+klawisz get/settext() tekst wyświetlany w menu get/seticon() ikona wyświetlana w menu Metody JMenu: add() dodaje element lub podmenu

JSlider Jeszcze trochę komponentów c.d. 19 wygodne pobieranie wartości całkowitych z zadanego zakresu get/setminimum() get/setmaximum() get/setorientation() pion lub poziom get/setvalue() JSpinner umożliwia wybór z ciągu wartości, np. liczb, dat, kolorów (trochę podobny do JSlider i JComboBox) get/setvalue() początkowa wartość jako liczba całkowita getnextvalue() wartość po kliknięciu strzałki w górę getprevioudvalue() wartość po kliknięciu strzałki w dół

JToolBar Jeszcze trochę komponentów c.d. pasek narzędziowy, może pływać działa jak paleta na inne komponenty is/setfloatable() JToolTip podpisy do wszystkich innych komponentów sami nie tworzymy tylko ustawiamy metodą settooltip()

JTextArea Jeszcze trochę komponentów c.d. wieloliniowe pole tekstowe is/setlinewrap() czy załamywać linie is/setwrapstyleword() czy załamywać słowa JScrollPane przykład Dekoratora gethorizontalscrollbar() zwraca zawarte obiekty JScrollBar getverticalscrollbar() analogicznie get/sethorizontalscrollbarpolicy() Always, Never lub Needed get/setverticalscrollbarpolicy() analogicznie

JList Jeszcze trochę komponentów c.d. podobna do JComboBox, ale umożliwia wybór wielu wartości najlepiej opakowywać w JScrollPane get/setselectedindex() indeks wiersza lub int[] get/setselectionmode() tryb wyboru setlistdata() dane dla listy get/setselectedvalue() zaznaczony obiekt

Jeszcze trochę komponentów c.d. JTable JTree

Obsługa zdarzeń Wzorzec Obserwator (ang. Observer) Wydawca-Prenumerator (ang. Publish-Subscribe) Delegowanie obsługi zdarzeń (ang. Delegation Event Model) Konwencja nazewnicza addactionlistener(actionlistener) removeactionlistener(actionlistener) actionperformed(actionevent) Kod obsługi zdarzeń wykonywany jest przez wątek koordynujący zdarzenia długotrwałe operacje spowalniają interfejs można używać SwingUtilities.invokeLater() uwaga na zakleszczenia przy przebudowywaniu interfejsu z innego wątku

Przykład

Najważniejsze rodzaje zdarzeń ActionListener kliknięcie przycisku, wybór pozycji z menu, zaakceptowanie wartości w polu tekstowym actionperformed(actionevent e) KeyListener obsługa klawiatury: wciśnięcie, puszczenie i kliknięcie klawisza istnieje klasa adapter KeyAdapter keypressed(keyevent e) keyreleased(keyevent e) keytyped(keyevent e)

Najważniejsze rodzaje zdarzeń c.d. MouseListener obsługa myszki: wciśnięcie przycisku, puszczenie przycisku, kliknięcie, najechanie i opuszczenie istnieje klasa adapter MouseMotionListener mouseclicked(mouseevent e) mouseentered(mouseevent e) mouseexited(mouseevent e) mousepressed(mouseevent e) mousereleased(mouseevent e) MouseMotionListener wykrywanie ruchu kursora istnieje klasa adapter MouseMotionAdapter mousedragged(mouseevent e) mousemoved(mouseevent e)

Najważniejsze rodzaje zdarzeń c.d. TextListener dotyczy komponentów rozszerzających JTextComponent (np. JTextArea i JTextField); zachodzi gdy zmienił się tekst textvaluechanged(textevent e) WindowListener aktywacja/dezaktywacja, minimalizacja/maksymalizacja, itp. istnieje klasa adapter WindowAdapter windowactivated(windowevent e) windowclosed(windowevent e) windowclosing(windowevent e) windowdeactivated(windowevent e) windowdeiconified(windowevent e) windowiconified(windowevent e) windowopened(windowevent e)

Modele Zamiast żmudnie zarządzać danymi niektórych komponentów wygodniej podłączyć do nich model JComboBox jakie są możliwości wyboru i ile ich jest JSpinner co wyświetlić i jakie są poprzednie i wcześniejsze możliwości JList jaki tekst opisuje poszczególne możliwości wyboru JTable liczba kolumn i wierszy, ich etykiety, klasy kolumn, tekst każdej komórki JTree struktura drzewa

Modele - przykład

Modele przykład c.d.

Wygląd i zachowanie Standardowe podklasy LookAndFeel javax.swing.plaf.metal.metallookandfeel domyślne międzyplatformowe wygląd i zachowanie Javy; można go używać na każdej platformie, com.sun.java.swing.plaf.windows.windowslookandfeel wygląd i zachowanie symulujące te znane z systemu Windows; obecnie można ich używać tylko pod systemem Windows, com.sun.java.swing.plaf.motif.motiflookandfeel wygląd i zachowanie CDE/Motif; domyślne na systemach firmy SUN; można go używać na każdej platformie, com.sun.java.swing.plaf.gtk.gtklookandfeel wygląd i zachowanie GTK+ (nie jest dostępny w wszystkich wersjach JRE). wiele innych na http://www.javootoo.com/

Co dalej Bardzo dobre przewodniki na http://java.sun.com/docs/books/tutorial/ Java Swing tutorial na http://docs.oracle.com/javase/tutorial/uiswing/