Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej Swing Java Wykład 8 mgr inż. Michał Misiak.

Slides:



Advertisements
Podobne prezentacje
CLIMGEN (generator danych pogodowych w modelu CropSyst.
Advertisements

C++ wykład 2 ( ) Klasy i obiekty.
Java dla studentów II roku Wydziału Fizyki PW Przemysław Duda, 2012
Programowanie obiektowe
Programowanie obiektowe
Programowanie obiektowe
Grafika komputerowa Wykład 2 Wykorzystanie podstawowych usług bibliotecznych (API) w operacjach graficznych.
Architektura systemu Gra strategiczna „Strusia Jama”
PHP vs. ASP PHP – lider wydajności wśród języków skryptowych.
Multimedia Obrazy i dźwięki w apletach Javy, praca z tekstem, zdarzenia od myszki, obsługa wyjątków w Javie, aplety z wątkami, animacja poklatkowa.
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Plan Prezentacji Wczytywanie grafiki Wyświetlanie obrazów
Wzorce projektowe w J2EE
Tworzenie stron w języku WML jest zbliżone do tworzenia stron w HTML. W obydwu przypadkach używa się do tego celu znaczników (tagów). Zadaniem znaczników.
Java – programowanie obiektowe
Nagłówek jam ci to jest do wydruku
WINDOWS 95 WYCINEK AUTOSTART TWORZENIE POWIĄZAŃ PLIKÓW Z APLIKACJAMI
C# Windows Forms Zastosowania Informatyki Wykład 3
System webowy do tworzenia kolektywnych prototypów aplikacji sieciowych i mobilnych Łukasz Przywarty
Rozwój aplikacji. To zestaw narzędzi do budowania i optymalizacji złożonych aplikacji opartych na przeglądarce. To zestaw narzędzi do budowania i optymalizacji.
Architektura Systemu Źródło:
Tadeusz Ziębakowski Zachodniopomorski Uniwersytet Technologiczny.
Aplety w javie.
Poznajemy pulpit.
Konfiguracja systemu Windows
Programowanie obiektowe – zastosowanie języka Java SE
Dziedziczenie Maciek Mięczakowski
JAVA.
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Robimy własne notatki - Notatnik
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 8.
Specjalizacja "Dziennikarstwo On-line„ asynchroniczny JavaScript i XML – AJAX Część 6 Prowadzący: Dariusz Jaruga
CKK PROFESJA Awaryjny tryb pracy Windowsa XP
Zaawansowane komponenty graficzne Swing
Projektowanie stron WWW
XML Publisher Przedmiot i zakres szkolenia Przedmiot i zakres szkolenia Przeznaczenie XML Publisher Przeznaczenie XML Publisher Definiowanie Definiowanie.
Smart Portal – podstawy użytkowania. W celu uruchomienia aplikacji Smart Portal, należy: -uruchomić nowe okno przeglądarki internetowej, -wpisać w pole.
Projektowanie Aplikacji Internetowych
Kuba jakóbczak Michał Bożyk
Visual Basic w Excelu - podstawy
Treści multimedialne - kodowanie, przetwarzanie, prezentacjaOdtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Wzorce slajdów, animacje, różne orientacje slajdów
Komputerowe malowanki
Podstawy języka skryptów
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
Formatowanie dokumentów
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Informatyka – szkoła gimnazjalna – Scholaris - © DC Edukacja Tworzenie stron WWW w programie Microsoft FrontPage Informatyka.
Tworzenie wykresów część I
Przewodnik Wprowadzenie do
Hooks w systemie Windows Autorzy: Paweł Kwiecień, Wojciech Kruczkowski Temat: Modelowanie użytkowników Zadaniem jest stworzenie (lub modyfikacja) systemu,
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
ST | 9/16/2015 | © Robert Bosch GmbH All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well.
System lokalizacji GPS
Wykład 4 Dr Aneta Polewko-Klim
SQL Server Analysis Services Action!
T. 18. E Proces DGA - Działania (operatorka).
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
(według:
Programowanie Obiektowe – Wykład 2
AudaPad / AudaShare AudaShare PRO (2.8)
Content Management System
Programowanie obiektowe – zastosowanie języka Java SE
Tworzenie stron WWW w programie Microsoft FrontPage
Windows Workflow Foundation
Aplikacje i usługi internetowe
PGO Interfejsy Michail Mokkas.
Programowanie w Javie 1 Dr Robert Kowalczyk
Zapis prezentacji:

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej Swing Java Wykład 8 mgr inż. Michał Misiak

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Plan wykładu Look and Feel Rozszerzenia Java Swing Wykorzystanie map w aplikacjach Netbeans 6.0 Google Android

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Możliwości Java Swing Aplikacja z Java Sun Tutorial prezentująca możliwości Java Swing. Aplikacja zawiera kod dzięki czemu można podejrzeć wykonanie poszczególnych elementów. Źródło: Java Web Start:

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Look and Feel Możliwość definiowania wyglądu i zachowania aplikacji niezależnie od platformy Użycie l’n’f pozwala skupić się programiście na logice aplikacji oferując zbiór różnych wyglądów Swing pozwala na stosowanie l’n’f dzięki podzieleniu JComponent na dwie cześci:  podklasa JComponent  i powiązana klasa ComponentUI. ComponentUI jest rzadko używany przez programistów i standardowo jest dziedziczony z JComponent. Odrysowanie komponentu delegowane jest do UI. Przygotowanie l’n’f wiąże się z implementacją dla każdego komponentu Swing odpowiedniej delegaty UI. Np. dla JTabbedPane jest delegata: MetalTabbedPaneUI

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Look and Feel (2) CrossPlatformLookAndFeel – jest to "Java L&F" zwany również „Metal”. Wygląda tak samo na wszystkich platformach. Jest to cześć Java API (javax.swing.plaf.metal) i jest standardowo ustawiany w przypadku braku wyboru innych preferencji. Systemowy LookAndFeel – aplikacja używa natywnego L&F dla systemu, na którym jest uruchomiona. Systemowy L&F jest określany w momencie uruchomienia aplikacji. Synth – jest to bazowy L&F do tworzenia własnych L&F z wykorzystaniem XML Multiplexing – L&F, który składa się z wielu L&F przypisanych różnym komponentom w tym samym czasie.

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Ustawianie L&F Ustawienie L&F powinno się odbywać jako pierwsze W momencie tworzenie danego komponentu, komponent pyta się UI manager o delegatę L&F, która implementuje wygląd komponentu Ustawienie L&F realizowane jest w następującej metodzie:  UIManager.setLookAndFeel() L&F może być również wyspecyfikowany w linii poleceń przy uruchamianiu programu:  ava -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel MyApp Zmiana L&F. Powinna zostać wywołana poniższa metoda na jednym z tzw. top-level komponentów:  UIManager.setLookAndFeel(lnfName);  SwingUtilities.updateComponentTreeUI(frame);  frame.pack();

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Tematy w L&F Tematy pozwalają w łatwy sposób modyfikować kolory oraz czcionki L&F. Np. dla L&F Metal można wybrać następujące tematy:  DefaultMetal,  Ocean,  Test

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Synth Look and Feel Modyfikacja istniejących L&F lub pisanie własnego jest trudnym zadaniem Do łatwego tworzenia własnych L&F może być użyty pakiet javax.swing.plaf.synth L&F może być tworzony po przez programowanie lub w pliku XML Z synth tworzony jest de facto wygląd, natomiast zachowanie nadaje synth

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Przykład modyfikacji synth Synth dostarcza wszystkie ComponentUI Programista ma określić wyłączenie w jaki sposób komponent jest rysowany Synth operuje na poziomie niższym niż komponent na poziomie tzw. „regionów” Źródło: SynthLookAndFeel laf = new SynthLookAndFeel(); laf.load(MyClass.class.getResourceAsStream("laf.xml"), MyClass.class); UIManager.setLookAndFeel(laf); Przykład: Rozkład Regionów dla JScroll

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Modyfikacja Synth w XML i w programie class MojaFabrStylow extends SynthStyleFactory { public SynthStyle getStyle(JComponent c, Region id) { if (id == Region.BUTTON) { return buttonStyle; } else if (id == Region.TREE) { return treeStyle; } return defaultStyle; } SynthLookAndFeel laf = new SynthLookAndFeel(); UIManager.setLookAndFeel(laf); SynthLookAndFeel.setStyleFactory(new MyStyleFactory()); W pliku XMLW kodzie programu Uwaga! Więcej na temat tworzenia własnych L&F z Synth pod linkiem:

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Zaawansowane l’n’f: substance Przykładowy l’n’f: Substance. Źródło:

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Inne funkcjonalności Java Swing Desktop – możliwa interakcję aplikacji ze standardowymi aplikacjami skojarzonymi ze specyficznymi typami plików na komputerze, na którym została ona uruchomiona Actions – możliwość koordynacji stanu i obsługi zdarzeń dla większej liczby komponentów generujących zdarzenia actions. Timer – możliwość implementacji wątku, który wykonuje akację cyklicznie z jakimś opóźnieniem Focus – możliwość personalizacji sposobu ustawiania fokusu w aplikacjach w celu dokonania specyficznego przejścia po polach, walidacji, etc… Key Bindings – możliwość ustawienia sposobu reakcji na klawiaturę Wykorzystanie System Tray

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Integracja z aplikacjami Java 6 umożliwia integrację z aplikacji Javy z aplikacjami natywnymi uwzględniając aspekt wydajności Integracja realizowana jest po przez Java Desktop API (java.awt.Desktop). Dekstop API wyrosło z projektu JDesktop Integration Components (JDIC) Funkcjonalność oferowana przez Java Desktop API  Uruchamianie specyficznej dla systemu przeglądarki ze wskazanym URL  Uruchamianie standardowego klienta poczty elektronicznej  Uruchamianie aplikacji w celu otwarcia, edycji, wydrukowania plików skojarzonych z tymi aplikacjami Dostępność Desktop API: isDesktopSupported() Jeśli Dekstop API wspierane można pobrać obiekt Desktop: getDesktop()

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Java Desktop API Akcje które mogą być realizowane przez Java Dekstop API:  BROWSE  MAIL  OPEN  EDIT  PRINT Różne aplikacje mogą być zarejestrowane dla powyższych akcji Obsługa akcji BROWSE private void onLaunchBrowser(ActionEvent evt) { URI uri = null; try { uri = new URI(txtBrowserURI.getText()); desktop.browse(uri); } catch(IOException ioe) { //TO DO Exception }catch(URISyntaxException use) { //use.printStackTrace(); } Źródło:

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 System Tray System Tray – obszar w którym mogą być uruchamiane aplikacje. Obszar ten jest przez nie współdzielony Np. w Windows jest to System Tray odnosi się do paska, a w GNOME rozumiany jest jak obszar powiadomień (notification area). System Tray wprowadzony w Java 6 obsługiwany przez pakiet java.awt.SystemTray  dostęp do System Tray po przez metodę: SystemTray.getSystemTray()  Zalecane wywołanie metody isSupported() Dodawanie/Usuwanie ikon do Tray:  add(java.awt.TrayIcon)

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 System Tray (2) Możliwość wyświetlenia:  podpowiedzi (Text ToolTip)  pop-up menu  dymku z wiadomością Dostępny jest szereg nasłuchiwaczy i zdarzeń generowanych dla myszki Część zdarzeń wykonywana jest samoczynnie.  kliknięcie na ikonę powoduje rozwinięcie pop-up menu.  podwójne kliknięcie powoduje wygenerowanie zdarzenia ActionEvent final PopupMenu pop-up = new PopupMenu(); final TrayIcon trayIcon = new TrayIcon( createImage(„ikona.gif", „ikona z tray")); final SystemTray tray = SystemTray.getSystemTray(); //tworznie menu MenuItem Item1 = new MenuItem(„O aplikacji"); pop-up.add(Item1) trayIcon.setPopupMenu(pop-up); Więcej!

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Splash Screen Jest to ekran pojawiający się przeważnie w następujących sytuacjach:  Wskazanie, że aplikacja uruchamia się  Prezentacja informacji, która powinna być wyświetlona jednokrotnie Ze względu na cel w jakim stworzono Splash Screen opóźnienie związane z jego uruchomieniem powinno być minimalne, ale za nim zostanie wyświetlony wymagane jest uruchomienie JVM, załadowanie Swing i AWT Java 6 pozwala na wyświetlenie SS za nim zostanie uruchomiona JVM Możliwość wyświetlenia obrazu w formacie: gif, jpg, png z przeźroczystością i animacją

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Splash Screen

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Obsługa Splash Screen Funkcjonalność oferowana w klasie SplashScreen:  Zamknięcie ekranu  Zmiana wyświetlanej grafiki  Uzyskanie pozycji i wielkości obrazu  Rysowanie na SS Brak możliwości utworzenia instancji obiektu przez aplikację. Uzyskanie dostępu do SS po przez metodę:  getSplashScreen() final SplashScreen splash = SplashScreen.getSplashScreen(); if (splash == null) { System.out.println( "SplashScreen.getSplashScreen() " + " zwrocil null"); return; } Graphics2D g = splash.createGraphics(); if (g == null) { System.out.println("g is null"); return; }

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Wykorzystanie map w aplikacjach Wzbogacenie aplikacji o przetwarzanie danych geograficznych Popularyzacja Google Maps w technice AJAX Mapy w Swing – projekt open source o nazwie JXMapViewer rozwijany w Swinglabs ( Organizacje dostarczające mapy:  NASA's Blue Marble satellite (  OpenStreetMap.org (

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Budowa i użycie JXMapViewer JXMapViewer jest to JPanel, który wie jak załadować mapy z serwera z obrazami, jak łączyć obrazy, przekształcać współrzędne geograficzne, etc … JXMapViewer znajduje się w wersji 6 Netbeans. Netbeans 6 dostarcza również kilka nowych funkcjonalności ułatwiających tworzenie takiej aplikacji. Bardziej rozbudowaną funkcjonalność posiada JXMapKit (suwaki do manipulowania mapą) JXMapKit posiada zestaw Properties pozwalający na modyfikację poszczególnych elementów (suwaki, podgląd mapy, etc…)

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Użycie JXMapKit Modyfikacja lokalizacji – przesuwanie mapy: setAddressLocation() Przykład ustawienia lokalizacja na Łódź:  jXMapKit1.setAddressLocation(ne w GeoPosition( , )); GeoPosition przyjmuje jako parametr wartości szerokości i wysokości geograficznej Pobranie określonej lokalizacji na mapie przy pomocy metody:  getCenterPosition() public void addWaypoint() { //tworzenie zbioru punktow Set waypoints = new HashSet (); waypoints.add(new waypoint( , )); waypoints.add(new Waypoint( ,-74)); //WaypointPainter odrysowuje punkty WaypointPainter painter = new WaypointPainter(); painter.setWaypoints(waypoints); jXMapKit1.getMainMap(). setOverlayPainter(painter); }

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Przeładowanie standardowego sposobu rysowania punktów Painter.setWaypoints(waypoints); painter.setRenderer(new WaypointRenderer() { public boolean paintWaypoint(Graphics2D g, JXMapViewer map, Waypoint wp) { g.setColor(Color.RED); g.drawLine(-5,-5,+5,+5); g.drawLine(-5,+5,+5,-5); return true; } }); jXMapKit1.getMainMap().setOverlayPainter(painter); Źródło:

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Przykład

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Android – projekt Google Mobile Phone

Wydział Matematyki i Informatyki UŁ, Katedra Analizy Nieliniowej © 2007 Co dalej … Aplikacje wielowątkowe Animacje Prezentacja Java w Telekomunikacji Aplikacje sieciowe Wykorzystanie XML i baz danych