Programowanie Obiektowe GUI



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

Ćwiczenia 9 - Swing - część 1

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

Enterprise JavaBeans (EJB)

Programowanie obiektowe

Zaawansowane aplikacje internetowe - laboratorium

Aplikacje internetowe i rozproszone - laboratorium

Laboratorium 8 ( Android -pierwsza aplikacja)

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

Programowanie obiektowe

2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji

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

Aplikacje w środowisku Java

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

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

Aplikacje WWW - laboratorium

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

Aplikacje WWW - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji

Zaawansowane aplikacje internetowe

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

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

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Java Podstawy. Michał Bereta

Web Services (SOAP) Ćwiczenie 1

Zaawansowane aplikacje WWW - laboratorium

Makra Access 2003 wg WSiP Wyszukiwanie, selekcjonowanie i gromadzenie informacji Ewa Mirecka

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

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Dodawanie i modyfikacja atrybutów zbioru

BAZA_1 Temat: Tworzenie i modyfikowanie formularzy.

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Ćwiczenia z systemu operacyjnego WINDOWS

Ćwiczenie 2. Tworzenie serwisów internetowych. Zapoznanie z pakietem WebRatio

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Projektowanie aplikacji internetowych laboratorium

Wprowadzenie do projektu QualitySpy

Zasady tworzenia podstron

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

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

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

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Compas 2026 Vision Instrukcja obsługi do wersji 1.07

KROK 17 i 18. Cel: Tworzymy oddzielne okno - O autorze. 1. Otwórz swój program. 2. Skompiluj i sprawdź, czy działa prawidłowo.

Programowanie w Javie

16) Wprowadzenie do raportowania Rave

4. Budowa prostych formularzy, stany sesji, tworzenie przycisków

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Nawigacja po długim dokumencie może być męcząca, dlatego warto poznać następujące skróty klawiszowe

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

Gdy z poziomu programu Delphi otworzysz folder pierwszy program, zauważysz tylko dwa pliki [rys.1]:

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

Laboratorium 7 Blog: dodawanie i edycja wpisów

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

Przed rozpoczęciem pracy otwórz nowy plik (Ctrl +N) wykorzystując szablon acadiso.dwt

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Dodanie nowej formy do projektu polega na:

Zadanie 8. Dołączanie obiektów

Aplikacje internetowe i rozproszone - laboratorium

3. Budowa prostych raportów opartych o bazę danych

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

5.4. Tworzymy formularze

5.2. Pierwsze kroki z bazami danych

6. Formularze tabelaryczne, obiekty nawigacji - rozgałęzienia

Programowanie obiektowe zastosowanie języka Java SE

Rozwiązanie ćwiczenia 8a

Programowanie obiektowe

Graphic User Interfaces pakiet Swing

VBA w Excel Lekcja ta ma przybliżyć pojęcia związane z programowaniem w pakiecie Office. Poniższe przykłady związane są z wersją Office2007.

Solid Edge. Zrozumieć Technologię Synchroniczną

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

Modelowanie obiektowe - Ćw. 1.

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

Ćwiczenie 6 Proste aplikacje - podstawowe komponenty.

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

Zadanie 10. Stosowanie dokumentu głównego do organizowania dużych projektów

Java EE: JSF + EJB + JPA

7. Formularze master-detail

DOKUMENTY I GRAFIKI. Zarządzanie zawartością Tworzenie folderu Dodawanie dokumentu / grafiki Wersje plików... 7

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

wersja 1.0 ośrodek komputerowy uj cm ul. mikołaja kopernika 7e, Kraków tel

6. Powtórz kroki z punktu 5. dla strony sorry.jsp, zmieniając jedynie treść wyświetlanego tekstu ( Niestety zamiast Witaj )

Instrukcja redaktora strony

Kolory elementów. Kolory elementów

1.Wstęp. 2.Generowanie systemu w EDK

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

Zapytania do baz danych

E:\DYDAKTYKA\ZAI\ZWWW\Laboratoria\L07\Java Persistence.doc 2011-lis-24, 17:0 Zaawansowane aplikacje internetowe Laboratorium Java Persistence.

Podstawy systemu operacyjnego Windows 7 i bezpieczne korzystanie z sieci Internet

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Menu Plik w Edytorze symboli i Edytorze widoku aparatów

TWORZENIE ARKUSZY Z PRZEKROJAMI POPRZECZNYMI

OBIEKTY TECHNICZNE OBIEKTY TECHNICZNE

Laboratorium - Udostępnianie folderu, tworzenie grupy domowej i mapowanie dysku sieciowego w Windows 7

GUI - projektowanie interfejsów cz. II

Windows 10 - Jak uruchomić system w trybie

Transkrypt:

Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu pokazanie i wyjaśnienie wykorzystania anonimowych klas wewnętrznych w programach korzystających z biblioteki Swing. Ostatnim krokiem ćwiczenia jest przygotowanie aplikacji do dystrybucji i jej uruchomienie z poziomu systemu operacyjnego. Informacje o komponentach, zdarzeniach, wyglądzie i układzie elementów w technologii Swing można znaleźć na stronie: http://download.oracle.com/javase/tutorial/uiswing/ 1. Uruchom środowisko NetBeans. 2. Utwórz nowy projekt: a. W pierwszym kroku kreatora jako typ projektu wybierz Java Application z kategorii Java. b. W drugim kroku kreatora jako nazwę projektu podaj SwingCounter i odznacz pole wyboru tworzenia głównej klasy.

3. Utwórz w projekcie okno główne aplikacji kreatorem JFrame Form. Jako nazwę klasy podaj CounterJFrame, a jako nazwę pakietu count. 4. Techniką drag n drop umieść w oknie aplikacji etykietę tekstową (Label) oraz przycisk (Button). Następnie przesuń krawędzie okna, aby zmniejszyć je.

5. Zaznacz w oknie edycji aplikacji okno główne i korzystając z palety właściwości (Properties) zmień jego tytuł (title) na Counter Demo. 6. Analogicznie do pkt. 5 zmień tekst (text) etykiety na 0 i tekst przycisku na Count. (Sic!) Zwróć uwagę na panel Navigator w lewym dolnym rogu Netbeansa. Widać w nim drzewo komponentów aktywnego JFrame a. Poprzez wybieranie elementów drzewa można ustawiać elementy jako aktywne bez wyszukiwania ich w edytorze graficznym. Funkcja ta jest bardzo przydatna, gdy komponenty są bardzo małe lub przesłonięte przez inny komponent. Ponadto niektóre komponenty jak Dialog, JFrame czy QueryResult nie są widoczne w edytorze graficznym i aby edytować ich właściwości należy najpierw wybrać je w Panelu Navigator. 7. Ponownie korzystając z palety właściwości, ale tym razem z zakładki Code, zmień nazwę zmiennej reprezentującej etykietę (Variable Name) na counterlabel, a nazwę zmiennej dla przycisku na countbutton.

8. Przełącz edytor z trybu Design w tryb Source i przeanalizuj kod wygenerowany przez graficzną edycję aplikacji: a. sprawdź z jakiej klasy dziedziczy klasa okna głównego naszej aplikacji b. odszukaj w definicji klasy zmienne instancji reprezentujące etykietę i przycisk. Zwróć uwagę na ich typy c. odszukaj instrukcje ustawiające tytuł okna oraz teksty na etykiecie i przycisku d. zwróć uwagę na sposób utworzenia obiektu okna w metodzie main(). Wyjaśnienie: Komponenty Swing, m.in. ze względów efektywnościowych, nie są przystosowane do ich wykorzystywania przez wiele wątków programu. Dlatego dla bezpieczeństwa, a także zwiększenia responsywności aplikacji, wszelkie operacje na komponentach Swing powinny być realizowane przez wyróżniony wątek obsługi zdarzeń. Zadanie do wykonania w ramach tego wątku można zlecić metodą invokelater klasy java.awt.eventqueue (lub javax.swing.swingutilities). Parametrem przekazywanym do metody jest obiekt klasy implementującej interfejs Runnable. Ponieważ klasa ta służy tylko do utworzenia jednego obiektu, można zdefiniować ją jako anonimową klasę wewnętrzną w miejscu, w którym jest tworzony jej obiekt. Konstrukcja new Runnable() {...} tworzy obiekt anonimowej klasy implementującej interfejs Runnable. W nawiasach klamrowych zawarte są implementacje metod tej anonimowej klasy (w naszym przypadku jedna).

9. Ustaw klasę okna aplikacji jako główną klasę projektu: a. Wywołaj okno właściwości projektu wybierając opcję Properties z menu kontekstowego dla węzła projektu b. Przejdź do sekcji Run i przyciskiem Browse wybierz klasę główną 10. Uruchom projekt. Sprawdź działanie aplikacji (oczywiście licznik jeszcze się nie zwiększa). Zamknij aplikację. 11. Zaimplementuj zwiększanie licznika po naciśnięciu przycisku: a. Przełącz się w tryb Design edycji kodu klasy okna głównego aplikacji b. Przejdź do edycji właściwości przycisku. Przełącz się na zakładkę Events palety właściwości. Kliknij w grot obok tekstu <none> przy zdarzeniu actionperformed. Kliknij w proponowaną nazwę zdarzenia (countbuttonactionperformed). c. Netbeans powinien przełączyć się w tryb edycji kodu okna głównego aplikacji. Odszukaj wygenerowaną metodę obsługi zdarzenia i jako jej ciało wprowadź poniższy kod: counterlabel.settext(integer.tostring( Integer.parseInt(counterLabel.getText())+1)); Wyjaśnienie: Etykieta zawiera wartość tekstową. Aby potraktować ją jako liczbę i zwiększyć o 1 należy dokonać jej konwersji na typ int, a po zwiększeniu z powrotem na String. d. Odszukaj w kodzie powiązanie metody obsługującej zdarzenie kliknięcia przycisku z przyciskiem. Spróbuj zinterpretować ten mechanizm Wyjaśnienie: Z komponentami generującymi zdarzenia wiązane są obiekty implementujące odpowiedni interfejs. Dla przycisku jest to interfejs ActionListener zawierający metodę actionperformed. Wygenerowany przez kreator kod tworzy obiekt nasłuchujący na zdarzenie z przycisku jako obiekt anonimowej klasy implementującej interfejs ActionListener. Implementacja metody actionperformed w tej klasie sprowadza się do wywołania metody zewnętrznej klasy okna aplikacji zawierającej napisany przez programistę kod obsługi zdarzenia. Rozwiązanie to ilustruje ważną zaletę anonimowych klas wewnętrznych ich obiekty mają dostęp do wszystkich składowych obiektu klasy zewnętrznej. 12. Zapisz wszystkie zmiany. Uruchom aplikację, przetestuj ją, a następnie zamknij. 13. Uruchom aplikację z systemy plików/wiersza poleceń: a. przygotuj aplikację do dystrybucji wybierając opcję Build z menu kontekstowego dla projektu (lub wciśnij klawisz F11)

b. odszukaj na dysku katalog, w którym zapisany jest projekt NetBeans c. odszukaj archiwum JAR z aplikacją w podkatalogu dist d. dwuklikiem otwórz aplikację e. uruchom okno wiersza poleceń systemu operacyjnego f. przejdź w wierszu poleceń do podkatalogu dist katalogu projektu g. spróbuj uruchomić aplikację poleceniem: JavaFX java -jar SwingCounter.jar Obecnie, producenci Javy promują nową technologię tworzenia GUI JavaFX. JavaFX pozwala na tworzenie interfejsu użytkownika nie tylko w kodzie, ale również za pomocą języka znaczników FXML oraz arkuszy CSS. Poniższa kroki pokażą jak stworzyć prosty interfejs z wykorzystaniem języka FXML, ale istnieje również możliwość wyklikania interfejsu. Do tego celu potrzebna jest aplikacja Scene Builder. Informacje jak można korzystać z Scene Buildera w aplikacjach Netbeans i Eclipse, można znaleźć pod adresem: https://blogs.oracle.com/jeromec/entry/integrating_javafx_scene_builder_in Ogólne informacje o komponentach, zdarzeniach, wyglądzie i układzie elementów aplikacji wykorzystujących JavaFX można znaleźć na stronie: http://docs.oracle.com/javafx/ 1. Stwórz nowy projekt typu JavaFX FXML Application 2. W następnym oknie, nazwij projekt JavaFXCounter, pozostaw wszystkie domyślne wartości opcji bez zmian i kliknij Finish. 3. Rozwiń folder z plikami źródłowymi projektu, zaznacz plik FXMLDocument i z menu kontekstowego wybierz opcję Edit.

4. W edytorze powinna się otworzyć definicja układu graficznego w języku FXML. Kolejne komponenty graficzne można zagnieżdżać w sobie za pomocą odpowiednich znaczników. Informacje dotyczące obsługi zdarzeń oraz wyglądu komponentów zawarte są w atrybutach znaczników. 5. Zmień tekst wyświetlany na przycisku na Count, ustaw tekst etykiety na 0 oraz zmień nazwę przycisku i etykiety odpowiednio na countbutton i counterlabel. 6. Przejdź do pliku kontrolera (FXMLDocumentController). Zwróć uwagę że jego nazwa była podana w pliku FXML w atrybucie fx:controller. 7. Zmień nazwę pola label na counterlabel. 8. Zmień kod metody handlebuttonaction (zwróć uwagę że nazwa tej metody również została wskazana w pliku FXML) na następujący: counterlabel.settext(integer.tostring( Integer.parseInt(counterLabel.getText())+1)); 9. Uruchom aplikację i sprawdź czy działa. Zadania 1. Proszę zaprojektować okno informacyjne prezentujące podstawowe informacje o handlarzu/legionie/plemieniu. 2. Przygotuj program wyświetlający przycisk, który po najechaniu na niego myszką zmienia położenie. Zmiana położenia ma uniemożliwić kliknięcie na przycisk.

3. Proszę zmienić implementację metody run() na wzór podany poniżej (wzór dotyczy przykładu z zajęć). CounterJFrame counter = new CounterJFrame(); counter.setvisible(true); try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelCla ssname()); } catch (Exception ex) { System.out.println(ex); } SwingUtilities.updateComponentTreeUI(counter); Oprócz zmiany wyglądu GUI na zgodny z systemem operacyjnym Java oferuje kilka innych opcji. Pełna lista przykładem na stronie: http://wazniak.mimuw.edu.pl/index.php?title=po_graficzny_interfejs_u%c5%bcytkownika