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



Podobne dokumenty
Kurs programowania. Wykład 5. Wojciech Macyna. 31 marzec 2016

Java - interfejs graficzny

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

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

Interfejs graczny w Javie.

Programowanie graficznych interfejsów użytkownika

Podstawy Języka Java

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Tworzenie elementów graficznych

Kontenery i komponenty graficzne

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

Programowanie zdarzeniowe

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

Java biblioteka Swing

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

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

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

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

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

SWING. dr Jarosław Skaruz

Programowanie zdarzeniowe

Rysowanie prostych obiektów graficznych przy użyciu biblioteki AWT (Abstract Window Toolkit)

PROGRAMOWANIE APLIKACJI MULTIMEDIALNYCH

Programowanie obiektowe

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

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

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

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

Podstawowe informacje o apletach

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

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

Scenariusz Lekcji. Część organizacyjna:

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

Podstawy Swing. Tomasz Borzyszkowski

Java jako zdalny interfejs aplikacji Webowych aplety

Programowanie w języku Java WYKŁAD

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

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

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

Bartosz Jachnik - Kino

Wzorzec projektowy Obserwator idiomatyczne rozwiązanie

Programowanie Multimediów. Programowanie Multimediów JAVA. programowanie GUI. (AWT i Swing) [1]

Programowanie obiektowe

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

Rozdział 5 Aplety, grafika w Javie

Dokumentacja do API Javy.

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

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

JAVA 2: PROGRAMY Z GRAFICZNYM INTERFEJSEM UŻYTKOWNIKA 1. WSTĘP

Języki Programowania II Wykład 7. Java Swing

Graphic User Interfaces pakiet Swing

Aplikacja wielow tkowa prosty komunikator

Aplikacje w Javie wykład 12 Programowanie GUI

Programowanie obiektowe

Aplikacja wielowątkowa prosty komunikator

Programowanie zdarzeniowe

Programowanie w środowisku graficznym- wykład 9 Programowanie GUI cz1

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

Klasy abstrakcyjne. Klasę abstrakcyjną tworzymy przy pomocy modyfikatora abstract

Operatory. Składnia. Typy proste. Znaki specjalne

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

Obsługa zdarzeń w JAVIE ((ActionListener,ItemListener,TableModelListener))

Wykład 3: Projektowanie graficznych interfejsów użytkownika w Java

Programowanie graficznych interfejsów uŝytkownika

package pakieta; import pakietb.b; package pakietb; public class B { B(){} public class A { private B b; A(B b) { this.b = b; } }

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

JAVA W SUPER EXPRESOWEJ PIGUŁCE

7 Pewne uzupełnienia Przepływ sterowania Układacze... 6

Aplikacje w środowisku Java

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Iteracyjno-rozwojowy cykl oprogramowania 4

Swing ćwiczenia 2 opis

Programowanie w środowiskach graficznych. Wykład 2.

Grafika i komunikacja człowiek komputer Laboratorium. Część 3: Tekst, czcionki, kolory

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

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

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

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

Programowanie obiektowe

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);

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

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

Programowanie Obiektowe Java

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

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

Kurs programowania. Wykład 8. Wojciech Macyna. 10 maj 2017

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

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

Podstawowe części projektu w Javie

Zakład Teoretycznych Podstaw Informatyki Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie

Programowanie i projektowanie obiektowe

JavaFX. Programowanie Obiektowe Mateusz Cicheński

Jakarta POI. POIFS obsługa dokumentów OLE 2, HSSF dokumenty w formacie Excel'a, HWPF proste dokumenty w formacie Word 97,

Programowanie sieciowe

Multimedia JAVA. Historia

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

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

Programowanie Obiektowe GUI

SWING ZAGADNIENIA: wprowadzenie, kontenery i komponenty, LayoutManager, komponenty tekstowe. inne przydatne komponenty.

JavaFX. Zaawansowane technologie Javy 2019

Transkrypt:

Wykład 4 23 marca 2016

Graficzny interfejs użytkownika - GUI W Javie możemy skorzystać z dwóch bibliotek do tworzenia graficznych interfejsów: AWT (Abstract Windowing Toolkit) podstawowa biblioteka będaca interfejsem do graficznych funkcji systemu. Stad wyglad komponentów zależny od systemu. Biblioteka: java.awt.* SWING biblioteka w Javie niezależna od systemu (ale wykorzystujaca niektóre elementy AWT). Stad identyczny wyglad GUI na różnych platformach. Komponenty maja podobne nazwy jak w AWT ale poprzedzone litera J (np. Frame w AWT i JFrame w SWING). Biblioteka: javax.swing.* Na wykładzie zostanie omówiona głównie biblioteka AWT.

Klasa java.awt.frame Główne konstruktory public Frame() public Frame(String title) public Frame(String title, GraphicsConfiguration gc) Główne metody public void setsize(int width, int height) [domyślny rozmiar 20x20] public void setbounds(int x, int y, int width, int height) public void pack() [dopasowuje rozmiar okna do zawartości] public void setvisible(boolean show)

Kontenery i komponenty W GUI rozróżniamy dwa podstawowe rodzaje elementów: komponenty i zawierajace (wyświetlajace) je kontenery. Podstawowe typy komponentów AWT Button, CheckBox, Choice, Label, List, TextField, TextArea, Menu,... Podstawowe typy kontenerów AWT Frame, Panel, ScrollPane Uwaga: Panel jest także komponentem. Dodawanie komponentu do konteneru Metoda public Component add(component c)

Przykład przyklad1.java 1 import java. awt.*; 2 3 public class przyklad1 { 4 public static void main ( String [] args ) { 5 Frame okno = new Frame (" Przyklad 1" ); 6 Button przycisk = new Button (" Przycisk " ); 7 8 okno. setbounds (100,100,640,480); 9 okno. add ( przycisk ); 10 okno. setvisible ( true ); 11 } 12 }

Zarzadzanie wygladem Kontener powinien użyć zarzadcy wygladu ustawianego metoda: public void setlayout(layoutmanager m) Podstawowe wyglady java.awt.flowlayout java.awt.borderlayout java.awt.gridlayout java.awt.gridbaglayout java.awt.cardlayout

Przykład użycia flowdemo.java 1 import java. awt.*; 2 public class flowdemo { 3 public static void main ( String [] args ) { 4 Frame okno = new Frame (" flowdemo " ); 5 Button l1 = new Button (" Napis1 " ); 6 Button l2 = new Button (" Napis2 " ); 7 Button l3 = new Button (" Napis3 " ); 8 Button l4 = new Button (" Napis4 " ); 9 10 okno. setbounds (100,100,200,200); 11 okno. setlayout ( new FlowLayout ( FlowLayout. CENTER )); 12 okno. add ( l1 ); 13 okno. add ( l2 ); 14 okno. add ( l3 ); 15 okno. add ( l4 ); 16 okno. setvisible ( true ); 17 } 18 }

Przykład użycia griddemo.java 1 import java. awt.*; 2 public class griddemo { 3 public static void main ( String [] args ) { 4 Frame okno = new Frame (" griddemo " ); 5 Button l1 = new Button (" Napis1 " ); 6 Button l2 = new Button (" Napis2 " ); 7 Button l3 = new Button (" Napis3 " ); 8 Button l4 = new Button (" Napis4 " ); 9 10 okno. setbounds (100,100,200,200); 11 okno. setlayout ( new GridLayout (2,2)); 12 okno. add ( l1 ); 13 okno. add ( l2 ); 14 okno. add ( l3 ); 15 okno. add ( l4 ); 16 okno. setvisible ( true ); 17 } 18 }

Przykład użycia borderdemo.java 1 import java. awt.*; 2 public class borderdemo { 3 public static void main ( String [] args ) { 4 Frame okno = new Frame (" borderdemo " ); 5 Button l1 = new Button (" Napis1 " ); 6 Button l2 = new Button (" Napis2 " ); 7 Button l3 = new Button (" Napis3 " ); 8 Button l4 = new Button (" Napis4 " ); 9 Button l5 = new Button (" Napis5 " ); 10 11 okno. setbounds (100,100,200,200); 12 okno. setlayout ( new BorderLayout ()); 13 okno. add (l1, BorderLayout. NORTH ); 14 okno. add (l2, BorderLayout. SOUTH ); 15 okno. add (l3, BorderLayout. WEST ); 16 okno. add (l4, BorderLayout. EAST ); 17 okno. add (l5, BorderLayout. CENTER ); 18 okno. setvisible ( true ); 19 } 20 }

Delegacyjny model zdarzeń Źródło zdarzenia jaki komponent jest źródłem zdarzenia. Słuchacz zdarzenia kto słucha i jaka metodę powinien wywołać. Interfejs zbiór metod odpowiedzialnych za obsługę zdarzeń. Przykładowe interfejsy obsługi zdarzeń java.awt.event.actionlistener z metoda public void actionperformed(actionevent e) java.awt.event.windowlistener z metodami: public void windowopened(windowevent e) public void windowclosing(windowevent e) public void windowclosed(windowevent e) public void windowiconified(windowevent e) public void windowdeiconified(windowevent e) public void windowactivated(windowevent e) public void windowdeactivated(windowevent e)

Adaptery Klasy implementujace interfejsy obsługi zdarzeń z pustymi metodami. Podstawowe klasy adapterów WindowAdapter ComponentAdapter ContainerAdapter FocusAdapter KeyAdapter MouseAdapter

Przykład użycia adaptera przyklad2.java 1 import java. awt.*; 2 import java. awt. event.*; 3 class WindowAdapterDemo extends WindowAdapter { 4 Label p; 5 WindowAdapterDemo ( Label p) { this.p = p; } 6 public void windowclosing ( WindowEvent e) { System. exit (0); } 7 public void windowactivated ( WindowEvent e) { 8 p. settext (" Aktywne " ); } 9 public void windowdeactivated ( WindowEvent e) { 10 p. settext (" Nie aktywne " ); } 11 } 12 public class przyklad2 { 13 public static void main ( String [] args ) { 14 Frame okno = new Frame (" Przyklad 2" ); 15 Label napis = new Label ("", Label. CENTER ); 16 napis. setbackground ( Color. RED ); 17 napis. setforeground ( Color. BLUE ); 18 napis. setfont ( new Font ( Font. SERIF, Font. BOLD,100)); 19 okno. addwindowlistener ( new WindowAdapterDemo ( napis )); 20 okno. setbounds (100,100,640,240); 21 okno. add ( napis ); 22 okno. setvisible ( true ); 23 } 24 }

Klasa java.awt.button Główne konstruktory public Button() public Button(String label) Główne metody public void addactionlistener(actionlistener a) public void setactioncommand(string c)

Klasa java.awt.label Główne konstruktory public Label() public Label(String text) public Label(String text, int alignment) [wyrównanie za pomoca stałych Label.LEFT, Label.RIGHT, Label.CENTER] Główne metody public void settext(string text) public String gettext()

Klasa java.awt.textfield Główne konstruktory public TextField() public TextField(String text) public TextField(int columns) public TextField(String text, int columns) Główne metody public String gettext() public void settext(string text) public void seteditable(boolean b)

Przykład Program.java (1/3) 1 import java. awt.*; 2 import java. awt. event.*; 3 class MyWindowAdapter extends WindowAdapter { 4 public void windowclosing ( WindowEvent e) { System. exit (0); } 5 } 6 class EndButtonAdapter implements ActionListener { 7 public void actionperformed ( ActionEvent e) { System. exit (0); } 8 } 9 class EndButton extends Button { 10 EndButton () { 11 super (" Koniec " ); addactionlistener ( new EndButtonAdapter ()); } 12 } 13 class MyButtonAdapter implements ActionListener { 14 Program p; 15 MyButtonAdapter ( Program p) { this.p = p; } 16 public void actionperformed ( ActionEvent e) { p. action (); } 17 } 18 class MyButton extends Button { 19 MyButton ( Program p) { 20 super (" Przepisz " ); addactionlistener ( new MyButtonAdapter (p ));} 21 }

Przykład cd. Program.java (2/3) 22 class MyFrame extends Frame { 23 MyFrame ( Program p) { 24 super (" Program " ); 25 setbounds (100,100,640,480); 26 addwindowlistener ( new MyWindowAdapter ()); 27 setfont ( new Font ( Font. SANS_SERIF, Font. PLAIN,40)); 28 setlayout ( new GridLayout (4,1)); 29 30 EndButton koniec = new EndButton (); 31 MyButton akcja = new MyButton (p ); 32 p. wynik = new Label (); 33 p. dane = new TextField (40); 34 add (p. dane ); 35 add ( akcja ); 36 add (p. wynik ); 37 add ( koniec ); 38 39 pack (); 40 setresizable ( false ); 41 } 42 }

Przykład cd. Program.java (3/3) 43 public class Program { 44 MyFrame frame ; 45 Label wynik ; 46 TextField dane ; 47 48 void action () { 49 wynik. settext ( dane. gettext ()); 50 dane. settext ("" ); 51 } 52 public static void main ( String [] args ) { 53 Program p = new Program (); 54 p. frame = new MyFrame (p ); 55 p. frame. setvisible ( true ); 56 } 57 }