Java Podstawy. Michał Bereta

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

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

Programowanie Obiektowe GUI

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

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

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

Java Podstawy. Michał Bereta

Java Podstawy. Michał Bereta

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

Java Podstawy. Michał Bereta

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

Programowanie w JAVA Lab. 5 - Wątki. 1. Wykorzystując metodę Monte Carlo narysować wykres funkcji oraz obliczyć całkę: 7 x ) xy, 8,8

II Tworzenie klasy Prostokąt dziedziczącej z klasy wątku

GUI - projektowanie interfejsów cz. II

Python wstęp. Michał Bereta

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

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

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

Aplikacje w środowisku Java

16) Wprowadzenie do raportowania Rave

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

Forum Client - Spring in Swing

Programowanie obiektowe

Programowanie obiektowe

Ćwiczenia 9 - Swing - część 1

Programowanie obiektowe

Zaawansowane aplikacje internetowe - laboratorium

Laboratorium 9 (Więcej Aktywności, w Androidzie)

akademia androida Service, BroadcastReceiver, ContentProvider część IV

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

GUI - projektowanie interfejsów cz. II

INSTRUKCJA DO ĆWICZENIA 5

Serwery Statefull i Stateless

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

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

Programowanie obiektowe

Wprowadzenie do projektu QualitySpy

Laboratorium 8 ( Android -pierwsza aplikacja)

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Multimedia JAVA. Historia

Wątki w Javie. Piotr Tokarski

AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. QuIDE Quantum IDE PODRĘCZNIK UŻYTKOWNIKA

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

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

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

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Kontenery i komponenty graficzne

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Instrukcja laboratoryjna cz.6

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

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Podstawy Języka Java

SWING. dr Jarosław Skaruz

1. Język JAVA. 1. Pierwszy program. 2. Kalkulator. 3. Klasy. 4. Dziedziczenie

Twoja ulotka instrukcja obsługi programu

Programowanie graficznych interfejsów użytkownika

Ćwiczenie 1. Modelowanie prostego procesu

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Implementacja relacyjnych baz danych w środowisku MS Access

Baza danych sql. 1. Wprowadzenie

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Programowanie zaawansowane

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

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

Podstawy Swing. Tomasz Borzyszkowski

INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o.

Regulaminy Shoper INSTRUKCJA UŻYTKOWNIKA

Dodanie nowej formy do projektu polega na:

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Tworzenie elementów graficznych

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Cel ćwiczenia: Nabycie umiejętności poruszania się w przestrzeni programu Kuka.Sim Pro oraz zapoznanie się z biblioteką gotowych modeli programu.

Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS

Kurs programowania. Wykład 8. Wojciech Macyna

Tworzenie okna dialogowego w edytorze raportu SigmaNEST. część 1

Instrukcja laboratoryjna cz.3

Programowanie w środowisku graficznym GUI

Instrukcja obsługi programu MPJ6

Graphic User Interfaces pakiet Swing

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium przyrządów wirtualnych. Ćwiczenie 3

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 1

1. Od czego zacząć? - Instalacja środowiska pracy

Programowanie obiektowe

Aplikacje w Javie- wykład 11 Wątki-podstawy

WASM AppInventor Lab 3. Rysowanie i animacja po kanwie PODSTAWY PRACY Z KANWAMI

Spis treści. 1 Aplet. 2 Od aplikacji do apletu. 1 Aplet 1. 2 Od aplikacji do apletu 1. 3 Budowa apletu 3. 4 Cykl życia apletu 4

Opis programu EKSoft Rezerwacje

Programowanie zdarzeniowe

TITAN 2.0. Analiza czasowo- przestrzenna. Opis zmian wprowadzonych do wersji 2.0 w odniesieniu do wersji 1.0

Laboratorium Systemów Operacyjnych

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Transkrypt:

Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu wiedzy technicznej w regionie Java Podstawy Michał Bereta www.michalbereta.pl mbereta@pk.edu.pl

Wątki Dwa sposoby implementacji wątków: 1. Klasa dziedzicząca z klasy Thread 2. Klasa implementująca interfejs Runnable

Wątki

Wątki konstruktor metoda uruchamiana po wywołaniu start()

Wątki metoda start() wywoła metodę run()

długotrwałe obliczenia Wątki

Wątki W środku tej klasy nie jesteśmy wątku -> metoda getid() nie jest bezpośrednio dostępna!

Wątki obiekt typu Runnable jest przekazywany jako parametr do konstruktora obiektu Thread

Wątki Dodamy definicję nowego obiektu Runnable jako klasę anonimową (nie ma swojej własnej nazwy)

Wątki brak implementacji wymaganej metody run()

Wątki

Wątki Zadanie Zaimplementuj dwie niezależne symulacje losowania totolotka, każda powinna byd uruchomiona w osobnym wątku. Podpowiedź: zapytaj użytkownika o jego liczby w głównym wątku, natomiast wielokrotne losowanie powinno odbywad się w osobnych wątkach, przykładowo: osobny wątek dla losowao w środy, osobny dla losowao w soboty. Każdy wątek informuje, jeśli liczby użytkownika zostały wylosowane i kooczy swoje działanie.

Proste okna dialogowe

Proste okna dialogowe

Proste okna dialogowe

Proste okna dialogowe

Proste okna dialogowe Zadanie Zmodyfikuj swój projekt z symulacją totolotka tak, by dialog odbywał się z wykorzystaniem okien dialogowych.

Proste GUI

Proste GUI

Proste GUI

Proste GUI

Proste GUI Przeciągnij wybrane "kontrolki" z palety...

Proste GUI 1 3 2

Proste GUI...modyfikuj właściwości kontrolek w oknie właściwości (Properties)...

Proste GUI

Proste GUI... dodaj obsługę zdarzeo...... przełączaj się pomiędzy kodem źródłowym a projektowaniem wizualnym okna...

Proste GUI wypełnij swoim kodem.

Proste GUI Uruchom!

Po kliknięciu... Proste GUI

Proste GUI Proste wiązanie (ang. binding) dodaj

Proste GUI Proste wiązanie (ang. binding) po kliknięciu prawym przyciskiem myszki na pole tekstowe wybierz "bind -> text

Proste GUI Proste wiązanie (ang. binding) Wiązanie dwustronne - modyfikacja źródła zmienia wartośd celu i wzajemnie.

Proste GUI Proste wiązanie (ang. binding) wartośd z suwaka

Proste GUI Zadania 1. Zaimplementuj prosty kalkulator z działaniami +, -, * oraz /. 2. Zmodyfikuj swój projekt z symulacją totolotka tak, by dialog odbywał się z wykorzystaniem prostego interfejsu graficznego.

Proste GUI Liczby pierwsze Przykład Długie obliczenia w tle - generowanie kolejnych liczb pierwszych DlugaPracaWTle.zip implementacja bez wątków DlugaPracaWTle2.zip implementacja z wątkami

Proste GUI Liczby pierwsze JTextArea

Proste GUI Liczby pierwsze długie obliczenia w pętli

Proste GUI Liczby pierwsze start stop

Proste GUI Liczby pierwsze Efektem będzie charakterystyczne zacinanie się(zawieszanie) aplikacji na czas wykonywania obliczeo. Powód: obliczenia wykonywane są w tym samym (głównym) wątku co obsługa zdarzeo komponentów wizualnych naszej aplikacji. brak uaktualnienia obszaru tekstowego brak reakcji

Proste GUI Liczby pierwsze Wersja z osobnym wątkiem mającym za zadanie przeprowadzenie obliczeo. Wątek główny jest wolny i może zając się odświeżaniem interfejsu.

Proste GUI Liczby pierwsze nowy wątek definiowany przez klasę anonimową

Proste GUI Liczby pierwsze Efekt: pole tekstowe aktualizowane jest w sposób widoczny, na bieżąco.

Proste GUI Aktualizacja kontrolek przez wątki

Proste GUI Aktualizacja kontrolek przez wątki

Proste GUI Aktualizacja kontrolek przez wątki po wyborze wartości z comboboxa jest ona kopiowana do pola tekstowego.

Proste GUI Aktualizacja kontrolek przez wątki Każdy wątek w nieskooczonej pętli usuwa losowo element z comboboxa a następnie dodaje nowy, losowy.

Proste GUI Aktualizacja kontrolek przez wątki

Proste GUI Aktualizacja kontrolek przez wątki Wątek jako klasa anonimowa ma dostęp do wszystkich pól i metod klasy, w której jest zawarty.

Proste GUI Aktualizacja kontrolek przez wątki Uruchomienie generuje mnóstwo wyjątków - inne wątki nie powinny modyfikowad komponentów Swinga.

Proste GUI Aktualizacja kontrolek przez wątki Użycie "synchronized" nie rozwiązuje problemu.

Proste GUI Aktualizacja kontrolek przez wątki Rozwiązanie - dodanie aktualizacji kontrolek do kolejki zdarzeo.

GUI z JavaBeans Nowy projekt Okno główne

GUI z JavaBeans Nowa klasa

GUI z JavaBeans Nasza klasa dziedziczy z klasy JPanel - może byd komponentem wizualnym, który dodamy do palety.

GUI z JavaBeans Insert code -> Override methods -> JComponent

GUI z JavaBeans Nadpisanie metody paint() pozwala na ręczne "rysowanie" komponentu.

GUI z JavaBeans Dodanie komponentu MojPanel do palety.

GUI z JavaBeans

GUI z JavaBeans

GUI z JavaBeans W efekcie MojPanel jest dostępny do wyboru w palecie.

GUI z JavaBeans Przeciągnij i upuśd

GUI z JavaBeans Dla MojPanel dostępne są właściwości odziedziczone z JPanel, np. background.

GUI z JavaBeans

GUI z JavaBeans Możemy definiowad dodatkowe właściwości, np. promieo. Insert code -> add property :

Stosowanie konwencji "getterów" i "setterów" pozwala na definiowanie właściwości, do których można mied dostęp podczas wizualnego projektowania okna. GUI z JavaBeans

GUI z JavaBeans

GUI z JavaBeans

GUI z JavaBeans

GUI z JavaBeans

GUI z JavaBeans

Możemy modyfikowad wartośd naszej właściwości promieo w zakładce "Properties"! GUI z JavaBeans

GUI z JavaBeans Możemy również powiązad wartośd promienia z wartością suwaka!

GUI z JavaBeans Po każdej zmianie wartości suwaka, chcemy wywoład metodę repaint() naszego panelu.

GUI z JavaBeans Wypróbuj!

GUI z JavaBeans Aby inne komponenty mogły byd dowiązane do promienia potrzebne są pewne zmiany. JLabel

GUI z JavaBeans

GUI z JavaBeans Modyfikacja "settera"

GUI z JavaBeans Zadanie: Dodaj możliwośd modyfikowania położenia koła.

GUI z JavaBeans Przykład: Przeanalizuj projekt Kulki.zip Zadanie: Dodaj możliwośd zmiany promienia za pomocą suwaka.

Projekt Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu wiedzy technicznej w regionie współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Społecznego Instytut Fizyki Politechniki Krakowskiej pok. F206a, ul. Podchorążych 1, 30-084 Kraków tel.: +48 12 6370666 w. 28, faks: +48 12 6371446 e-mail: wiedza@pk.edu.pl www.wiedza.pk.edu.pl