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

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

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

Programowanie Obiektowe GUI

Programowanie zdarzeniowe

Java - interfejs graficzny

Kontenery i komponenty graficzne

Programowanie graficznych interfejsów użytkownika

Podstawy Swing. Tomasz Borzyszkowski

Programowanie aplikacji na urządzenia mobilne

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

Język Java część 2 (przykładowa aplikacja)

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

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

Język Java część 2 (przykładowa aplikacja)

Architektura interfejsu użytkownika

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

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

PWŚG Ćwiczenia 13. Ukończoną pracę należy przesłać na adres lub

JAVA CZ.2 Programowanie obiektowe. poniedziałek, 20 kwietnia 2009

Programowanie zdarzeniowe

LABORATORIUM 7 Cel: 1_1

Podstawy Języka Java

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

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

JAVA Materiały do laboratorium III wersja niezaawansowana Marcin Borkowski WSEiZ czerwiec 2006

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

SWING. dr Jarosław Skaruz

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

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt

Aplikacje w środowisku Java

Programowanie w środowisku graficznym GUI

Scenariusz Lekcji. Część organizacyjna:

Dodanie nowej formy do projektu polega na:

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

Ćwiczenia 9 - Swing - część 1

Programowanie obiektowe

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Programowanie obiektowe

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

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

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Java Podstawy. Michał Bereta

Pakiety matematyczne. Matematyka Stosowana. dr inż. Krzysztof Burnecki

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

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

Visual Studio instalacja

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

GUI - projektowanie interfejsów cz. II

GUI - projektowanie interfejsów cz. II

Laboratorium z informatyki sem.iii/ćw. 4 Wydział Transportu PW /19

Programowanie obiektowe

Komunikatory typu TCP/IP lab2. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Tworzymy projekt File->New Project->Java Application, przy czym tym razem odznaczamy create main class

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Applety Java. Applety są przykładem kodu Java wykonywanego po stronie klienta, ale bez ujawnionej (jak w przypadku skryptu) wersji źródłowej

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Henryk Budzisz. materiały przygotowane w ramach projektu ZPORR nr POKL /08-00

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

Zdarzenie Zachodzi gdy Kolejność zdarzeń Kolejność Zdarzenie Opis uwaga: CausesValidation True.

Programowanie obiektowe

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Programowanie obiektowe

Graphic User Interfaces pakiet Swing

Język programowania. Andrzej Bobyk

Programowanie na poziomie sprzętu. Programowanie w Windows API

Kurs programowania 2 - listy

Delphi podstawy programowania. Środowisko Delphi

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

INSTRUKCJA DO ĆWICZENIA 5

Wykład 5 Okna MDI i SDI, dziedziczenie

Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego

Obsługa zdarzeń. Wykład 4

Tworzenie własnych komponentów

WxPython jest platformą pozwalającą tworzyd aplikacje okienkowe nie tylko dla systemu Windows ale i Mac czy Unix.

Wprowadzenie do systemu Delphi

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Instrukcja laboratoryjna cz.3

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

Przykładowe roz wiązanie:

Laboratorium programowania urządzeń mobilnych

Tworzenie elementów graficznych

Informatyka II. Laboratorium.

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Arkusz strona zawierająca informacje. Dokumenty Excela są jakby skoroszytami podzielonymi na pojedyncze arkusze.

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Projektowanie aplikacji internetowych laboratorium

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

UML a kod. C++, Java i C#

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Java biblioteka Swing

Kalkulator. Programowanie komputerów. Kalkulator możliwe udoskonalenia. Kalkulator. Kalkulator. Kalkulator możliwe udoskonalenia

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Transkrypt:

Informatyka I Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018

Interfejs GUI wysokiego poziomu Pojęcie interfejsu GUI Historia interfejsów GUI Elementy interfejsu graficznego Okno Komponent Kontener Metody interfejsu graficznego Obsługa myszy, klawiatury

Okno oraz jego komponenty Ikona oraz menu systemowe Nagłówek Przyciski systemowe Ramka Obszar komponentów

Podstawowe rodzaje okien Okno główne Okno typu child Okno modalne

Podstawowe rodzaje okien (c.d.) Okno główne aplikacji MDI (ang. Multiple Document Interface) Okno zależne wyświetlane w oknie głównym, nie wykracza poza jego granice (ang. Child Window) Okno modalne (dialogowe) wyświetlane w trybie wyłączności (póki nie zostanie zamknięte, użytkownik nie może przejść do innych okien aplikacji (ang. Modal Window) Okno typu pop-up wyświetlane w dowolnym miejscu ekranu i nie związane z oknem głównym

Pakiet Swing Swing pakiet klas Java przeznaczonych do implementacji okienkowych interfejsów użytkownika Swing jest częścią standardowej biblioteki Java Foundation Classes Lokalizacja: javax.swing

Aplikacja Swing Rodzaj projektu: Java Class Library Może zawierać dowolną liczbę okien oraz innych klas Tylko jedno z okien może być oknem startowym (wybiera się przy pierwszym uruchomieniu aplikacji, można później zmienić)

Okno Swing Każde okno dziedziczy z klasy JFrame Okno zawiera metodę main() aczkolwiek jej treści nie należy redagować Komponent JFrame extends OknoGłówne Komponent javax.swing Komponent

Projektowanie okna Wybór trybu Projektowanie w trybie DESIGN Kod źródłowy klasy

Biblioteka komponentów Swing Paleta komponentów graficznych Swing Controls

Projektowanie interfejsu graficznego 1) Przejdź do trybu projektowania graficznego 3) Przeciągnij tu komponent z palety Obszar roboczy okna Środowisko NetBeans 2) Wybierz komponent z palety

Wybrane komponenty Swing Każdy komponent posiada własną nazwę (pole Name klasy) poprzez którą można zwracać się do niego w programie w celu odczytu lub zapisu

Paradygmat programowania zdarzeniowego Programowanie zdarzeniowe (lub oparte na zdarzeniach) uzupełnienie koncepcji programowania obiektowego o mechanizmy komunikowania się obiektów między sobą Komponent Okno Metoda obsługi zdarzenia Kod programu

Zdarzenia komponentów W trakcie interakcji z użytkownikiem (lub na skutek pewnych wydarzeń systemie) stan komponentu może się zmienić: W polu tekstowym znajdzie się inna wartość Zmieni się pozycja suwaka Przycisk zostanie wciśnięty itp. Każdy komponent Swing ma własną listę obsługiwanych zdarzeń (ang. Events)

Rodzaje zdarzeń Zdarzenia myszy Zmiana widoczności komponentu Fokus Akcja domyślna Zdarzenia klawiatury Zmiana zawartości komponentu Zmiana pozycji lub rozmiarów komponentu Program nie musi obsługiwać wszystkich zdarzeń komponentu

Szczegóły zdarzeń Każde zdarzenie zawiera dodatkowe szczegółowe informacje np. zdarzenie mouseclicked przechowuje informację o współrzędnych Dla różnych zdarzeń informacje te są różne Informacje szczegółowe o zdarzeniu przechowuje obiekt typu Event: MouseEvent ActionEvent ChangeEvent etc.

Mechanizm działania zdarzeń Komponent Kontener (np. okno główne) Użytkownik Interfejs ( Listener) wywołanie Funkcja obsługi funkcja getsource() Obiekt klasy Event

Zdarzenie actionperformed Domyślne zdarzenie dla wielu rodzajów komponentów (przyciski, listy, etc.) Obiekt zdarzenia actionperformed należy do klasy ActionEvent Obiekt obsługujący zdarzenia musi być powiązany z komponentem generującym zdarzenia komponent.addactionlistener( kontener )

Etykieta: Label Element dekoracyjny stosuje się w celu umieszczenia napisów statycznych w oknie aplikacji Różne czcionki, kolory, etc. Właściwość kluczowa w trybie Design: Text

Pole tekstowe: TextField Umożliwia wprowadzanie dowolnego tekstu Metody odczytu i zapisu wartości: void settext( String text ) String gettext() Domyślne zdarzenie actionperformed jest wołane po wciśnięciu klawisza Enter

Przycisk: Button Realizuje funkcję zwykłego przycisku Właściwość kluczowa Text stosuje się w celu zmiany napisu na przycisku w trybie graficznym W trybie programowym można zmienić za pomocą metod settext() oraz gettext() (p. TextField) Zdarzenie domyślne: actionperformed jest wołane w momencie wciśnięcia przycisku przez użytkownika

Przycisk: Button (c.d.) Przykład obsługi zdarzenia actionperformed przyciku jbutton1 w kodzie programu

Pole opcji: CheckBox Realizuje funkcję pojedynczej opcji on/off Domyślne zdarzenie: actionperformed Metoda sprawdzenia stanu: isselected()

Pole wyboru RadioButton Umożliwia wybór jednej spośród kilku opcji Komponenty typu RadioButton muszą być łączone w grupy za pomocą komponentu RadioButtonGroup Zdarzenie actionperformed Metoda isselected() zwraca informację o stanie komponentu (wybrany czy nie)

Lista rozwijana ComboBox Umożliwia wybór jednej z kilku możliwych opcji Elementy są dodawane za pomocą właściwości model lub programowo za pomocą metody additem Zdarzenie actionperformed jest wołane w momencie zmiany bieżącego elementu listy Element wybrany można odczytać za pomocą metod getselectedindex() oraz getselecteditem()

Lista ListView Umożliwia prezentację oraz wybór jednego lub wielu rekordów z listy Dane mogę być prezentowane w wielu kolumnach Zdarzenie zmiany wybranego elementu: valuechanged Pobranie aktywnego elementu: getselectedvalue()

Komponent Table Wyświetla dane w postaci tabeli Właściwość model: Definiowanie kolumn oraz typów danych Deklaracja wierszy Programowe dodanie wierszy do tabeli Klasa DefaultTableModel metoda addrow( Object [] ) Zmiana wartości w komórce tabeli setvalueat( wartość, wiersz, kolumna ) Pobranie wartości z komórki tabeli getvalueat( wiersz, kolumna ) Usunięcie wierszy z tabeli

Pozostałe komponenty Slider wybór wartości typu Integer w postaci suwaka Minimum value Maximum value Metoda getvalue() Spinner pole tekstowe z możliwością przejścia do następnej/poprzedniej wartości Może obsługiwać różne dyskretne typy danych (Integer, Date, etc.)

Menu: MenuBar Menu główne okna jest realizowane poprzez komponent MenuBar z palety Swing Menus Pojedynczy element menu jest reprezentowany przez MenuItem Zdarzenie actionperformed

Wyświetlanie komunikatów: Klasa JOptionPane Metody.showMessageDialog JOptionPane.showConfirmDialog.showInputDialog

Układ komponentów w oknie graficznych Układ (ang. Layout) określa kolejność umieszczania komponentów w oknie graficznym oraz ich zachowanie podczas zmiany rozmiarów okna Wybrane rodzaje układów: FreeDesign / AbsoluteLayout GridLayout

Układ FreeDesign Programista umieszcza komponenty w oknie wg własnego życzenia Dla każdego z komponentów można wygenerować własną funkcję obsługi zdarzenia

Układ GridLayout Komponenty umieszczane automatycznie w postaci tablicy N x M elementów Rozmiar tablicy jest zadawany za pomocą obiektu GridLayout przekazywanego do funkcji JFrame::setLayout setlayout(new GridLayout(x,y,5,5)); Komponenty są dodawane za pomocą funkcji JFrame::add

Kontenery Kontener komponent, który może zawierać inne komponenty (w tym kontenery) Kontenery najwyższego poziomu: JFrame JDialog JApplet Kontenery lokalne: GroupBox JPanel Etc.

Grafika w Swing Utworzyć własną klasę dziedziczącą np. z JPanel class PanelGraf extends JPanel Nadpisać metodę paintcomponent public void paintcomponent( Graphics g ) Wykorzystać metody klasy Graphics w celu utworzenia własnej grafiki g.setcolor( Color.red ); // itd.

Grafika w Swing (c.d.) Utworzyć egzemplarz klasy PanelGraf PanelGraf p = new PanelGraf(); W konstruktorze klasy głównej (JFrame) ustawić rozmiar i położenie na ekranie panelu p.setbounds( x, y, szerokość, wysokość ); Dodać panel do kolekcji komponentów okna this.add( p ); W razie potrzeby odświeżyć panel p.repaint();