Java Foundation Clases. Tworzenie graficznych interfejsów użytkownika (GUI) w Javie

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

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

Multimedia JAVA. Historia

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

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

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

Java - interfejs graficzny

Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach

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

Tworzenie elementów graficznych

SWING. dr Jarosław Skaruz

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

Programowanie obiektowe

Scenariusz Lekcji. Część organizacyjna:

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

Aplikacja wielowątkowa prosty komunikator

Kontenery i komponenty graficzne

Podstawy Języka Java

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

Programowanie Obiektowe GUI

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

Programowanie graficznych interfejsów użytkownika

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe

Podstawowe informacje o apletach

Graphic User Interfaces pakiet Swing

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

Wykład 4_1. Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy.

Aplikacja wielow tkowa prosty komunikator

Pierwsza ramka. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 10

Tworzenie i obsługa graficznego interfejsu uŝytkownika

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

GUI - projektowanie interfejsów cz. II

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

Bezpieczne uruchamianie apletów wg

Programowanie zdarzeniowe

1 Atrybuty i metody klasowe

Programowanie obiektowe

Wstęp do programowania w języku Java

Wstęp do programowania w języku Java

Java Swing. Tomasz Mularczyk Luty 2005

SWING ZAGADNIENIA: wprowadzenie, kontenery I komponenty, LayoutManager, komponenty tekstowe.

Swing Application Framework czyli tam i z powrotem. Copyright Piotr Kochański & Erudis,

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

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

Java jako język programowania

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

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

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

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

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

WPROWADZENIE DO JĘZYKA JAVA

Aplikacje RMI Lab4

Wykład 1: Wprowadzenie do technologii Java

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

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

Kurs programowania. Wykład 6. Wojciech Macyna. 7 kwietnia 2016

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

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

Java jako zdalny interfejs aplikacji Webowych aplety

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

Iteracyjno-rozwojowy cykl oprogramowania 4

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

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

Wstęp do programowania w języku Java

Podstawy Swing. Tomasz Borzyszkowski

Język obiektowy o składni podobnej do C++ Zarządzanie pamięcią niepotrzebne obiekty automatycznie usuwane

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe.

ZSBD ćwiczenie 4. Obiektowe systemy zarządzania bazą danych. Przygotowanie środowiska pracy. Wymagania: ZSBD ćwiczenie 4

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wstęp do programowania w języku Java

TECHNOLOGIE INFORMACYJNE

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

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

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

Języki i metody programowania Java. Wykład 2 (część 2)

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

Języki i metody programowania Java Obsługa zdarzeń - przykłady

Podstawy języka Java. przygotował:

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Programowanie obiektowe

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Aplikacje RMI

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Aplikacje internetowe i rozproszone - laboratorium

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Java Podstawy. Michał Bereta

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

ZAPOZNANIE SIĘ Z TWORZENIEM

Programowanie obiektowe

Dokumentacja do API Javy.

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Zaawansowane programowanie obiektowe. Wykład 3 część 2

Programowanie w języku Java

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Transkrypt:

Java Foundation Clases Tworzenie graficznych interfejsów użytkownika (GUI) w Javie Jacek Starzyński, IETiSIP PW, 2006

Tematyka: Co to jest JFC? Swing zadania i struktura Szkielet programu Model zdarzeń Aplety Programowanie wizualne - Java Beans Wykorzystanie Netbeans

JFC co to jest? Java Foundation Classes (JFC) to zbiór bibliotek klas języka Java, stanowiący część Java 2 Platform Standard Edition (J2SE) i mający stanowić podstawę do tworzenia graficznych interfejsów użytkownika (GUI) przenośnych pomiędzy platformami Linux, MS Windows i Mac OSX. 1996 Internet FC Netscape + SUN => JFC przedstawiono na konferencji JavaOne w 1997 JFC składa się z biblioteki AWT biblioteki Java 2 Swing biblioteki Java 2D API. Dodatkowymi wyróżniającymi cechami są: dostosowywanie wyglądu komponentów przez PLAF, mechanizm DAD, wspomaganie tworzenia aplikacji dla osób upośledzonych i wspomaganie internacjonalizacji aplikacji.

Swing Swing jest obiektową biblioteką komponentów do tworzenia GUI (GUI toolkit) Swing jest napisany w Javie, a więc w pełni przenośny Swing symuluje wygląd widgetów podobny do widgetów środowiska, w którym działa (PLAF) Swing jest częścią J2SE, czyli podstawowego API dla wszystkich programów w Javie

Komponenty Swing Poprawione AWT etykiety (labels) pola tekstowe (text fields) przyciski (buttons) pola opcji (check boxes) pola wyboru (radio buttons) rozwijane listy wyboru (combo boxes) listy (lists) pola tekstowe (text areas) suwaki (scroll panes and scroll bars) panele (panels) ramki (frames) pola dialogowe (dialogs) menu (menus and menu bars) Nowe podpowiedzi (tool tips) potencjometry (sliders) tabele (tables) drzewa (trees) style tekstu (styled text areas) paski postepu (progress bars) listy wyboru (spinners) od 1.4 formatowane pola tekstowe (formatted text fields) od 1.4 dialogi wyboru koloru (color choosers) dialogi wyboru pliku (file choosers) pola stowarzyszone (split panes) panele pól (tabbed panes) ramki wewnętrzne (internal frames) warstwy (layered panes)

Pakiety Swing 17 pakietów publicznych javax.swing javax.accessibility javax.swing.plaf javax.swing.text.html javax.swing.plaf.basic javax.swing.text.parser javax.swing.border javax.swing.plaf.metal javax.swing.text.rtf javax.swing.colorchooser javax.swing.plaf.multi javax.swing.tree javax.swing.event javax.swing.table javax.swing.undo javax.swing.filechooser javax.swing.text Swing jest dużą biblioteką. W ramach tych zajęć zorientujemy się w ogólnych jego koncepcjach, ale nie jest możliwe omawianie tu wszystkich detali, a nawet wszystkich komponentów. Nazwy pakietów pozwalają łatwo zorientowac się w ich zawartości. Swing jest konsekwentnym, dobrze zaprojektowanym modelem programowania GUI. Do tworzenia aplikacji Swing bardzo pomocne jest wykorzystanie narzędzi graficznych. Zdecydowanie przyspieszają one projektowanie wyglądu aplikacji. Swing umożliwia uzyskanie czytelnego kodu nawet przy pomocy takich narzędzi.

Najprostszy(?) program import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.swingutilities; public class HelloSwing { Dawniej: frame.addwindowlistener( new WindowAdapter() { public void windowclosing( WindowEvent e) { System.exit(0); ); public static void main(string[] args) { Runnable r = new Runnable() { public void run() { JFrame frame = new JFrame(); frame.setdefaultcloseoperation(jframe.dispose_on_close); frame.add(new JLabel("Hello, Swing!")); // <1.5: frame.getcontentpane().add(...) frame.pack(); frame.setlocationrelativeto(null); frame.setvisible(true); ; SwingUtilities.invokeLater( r ); Przykład: HelloSwing

Zdarzenia Źródło (np. Komponent) Zdarzenie Odbiorca import javax.swing.jframe; import javax.swing.jbutton; import javax.swing.swingutilities; import java.awt.*; import java.awt.event.*; public final class EventIntro { public static void main(string[] args) throws Exception { SwingUtilities.invokeLater( new Runnable() { public void run() { final JFrame frame = new JFrame(); frame.setdefaultcloseoperation(jframe.dispose_on_close); JButton cb= new JButton("Close"); cb.addactionlistener( new ActionListener() { public void actionperformed( ActionEvent E ) { frame.dispose(); System.exit(0); ); frame.add(cb); frame.pack(); frame.setlocationrelativeto(null); frame.setvisible(true); ); Przykład: EventIntro

Odbiorcy zdarzeń Definicja class Closer implements ActionListener() { public void actionperformed( ActionEvent E ) { frame.dispose(); System.exit(0); Użycie... element.addactionlistener( new Closer() );...

Odbiorcy zdarzeń cb.addmouselistener( new MouseAdapter() { public void mouseentered( MouseEvent e ) { cb.settext("don't click me!"); cb.repaint(); public void mouseexited( MouseEvent e ) { cb.settext("uffffffffff!"); cb.repaint(); new Thread( new Runnable() { public void run() { try { Thread.sleep( 2000 ); catch( Exception x ) { cb.settext("don't touch me!"); cb.repaint(); ); ).start(); Źródło (np. Komponent) Źródło (np. Komponent) Odbiorca Odbiorca Odbiorca cb.addactionlistener( new ActionListener() { public void actionperformed( ActionEvent E ) { frame.dispose(); System.exit(0); ); Przykład: EventMulti

Applety Applet (aplet) to prawie-program, który działa w otoczeniu innego programu (najczęściej przeglądarki internetowej). Określenie zostało wprowadzone w języku AppleScript (Apple, Mac OS, 1993), ale spopularyzowane przez applety Javy (Sun, 1995). Applety Javy służą przede wszystkim do bezpiecznego sieciowego programowania po stronie klienta. Przykład: Applet1

Applety // <applet code=applet1 width=100 height=30></applet> import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Applet1 extends JApplet { public void init() { final JTextField c= new JtextField( "Enter your name here and press <ENTER>"); c.addactionlistener( new ActionListener() { public void actionperformed( ActionEvent e ) { c.settext("hello " + ((JTextField)e.getSource()).getText()+", nice to meet you!"); ); getcontentpane().add( c );

Komunikacja apletu z otoczeniem Otoczenie appletu przesyła mu szereg komunikatów, czyli wywołujemetody appletu. Najwazniejsze z nich to: init() - wywoływana po ładowaniu appletu, start() - wywoływana za każdym razem, gdy applet staje się widoczny, stop() - wywoływana, gdy applet staje się niewidoczny, destroy() - wywoływana, gdy applet jest usuwany z przeglądarki paint() - wywoływana w celu przerysowania appletu Przykład: Applet2 i appletviewer

Ograniczenia GUI appletu Applet działa w oknie innego programu: kolor tła może się różnić może być konieczne wywołanie validate() aby komponety stały się widoczne. Applet ma wielkość określaną przez przeglądarkę. Applet (JApplet) jest podklasą java.awt.panel. Kod appletu (i jego składników) jest ładowany z sieci, co może być dość wolne. URL kodu appletu i jego dokumentu są wykorzystywane do dostępu do innych Przykład: ShowMethods składników (dźwięków, obrazków,..)

Bezpieczeństwo Applety nie mogą doładowywać bibliotek, ani definiować metod natywnych. Mogą używać tylko własnego kodu i API dostarczanego przez przeglądarkę: przyjmuje się, że przeglądarka powinna dostarczać min. pakietów java.* Applety nie powinny dotykać lokalnego dysku. Mogą natomiast dostawać się do plików poprzez pełny URL. Applety mogą łączyć się co najwyżej z własnym serwerem (obchodzi się to przez komunikację za pośr. serwera). Applet nie powinien uruchamiać żadnych programów po stronie klienta. Applet nie powinien sprawdzać niektórych zmiennych systemowych klienta. Okna otwierane przez applet wyglądają inaczej, niż własne okna klienta.

Programowanie wizualne Visual Basic Borland Delphi Java Netbeans Technologia przeciągnij i upuść Bardzo wydajne: jedno z podstawowych narzędzi RAD Tworzenie GUI z gotowych komponentów Komponenty muszą być konfigurowalne Język obiektowy jest naturalnie wygodnym narzędziem do tworzenia komponentów

Netbeans

Netbeans