Java - interfejs graficzny



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

Kontenery i komponenty graficzne

Programowanie graficznych interfejsów użytkownika

Programowanie obiektowe

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

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

Podstawy Języka Java

Programowanie zdarzeniowe

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

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

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

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

Programowanie zdarzeniowe

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

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

Graphic User Interfaces pakiet Swing

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

Programowanie w języku Java WYKŁAD

SWING. dr Jarosław Skaruz

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

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

Java biblioteka Swing

Tworzenie elementów graficznych

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

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

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

Aplikacja wielowątkowa prosty komunikator

Programowanie obiektowe

PROGRAMOWANIE APLIKACJI MULTIMEDIALNYCH

Aplikacje w Javie wykład 12 Programowanie GUI

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

Programowanie w języku JAVA. Wykład IV Swing - GUI

Aplikacja wielow tkowa prosty komunikator

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

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

Tworzenie i obsługa graficznego interfejsu uŝytkownika

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

nazwisko_.setfont(new Font("Times New Roman", Font.BOLD, 12));

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

Interfejs graczny w Javie.

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

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

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

Programowanie Obiektowe Java

Programowanie graficznych interfejsów uŝytkownika

Aplikacje w środowisku Java

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

9. Swing wprowadzenie

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

Dokumentacja do API Javy.

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

Programowanie zdarzeniowe

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

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

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

Programowanie obiektowe

Przykładowe roz wiązanie:

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

Programowanie w języku Java

Podstawowe informacje o apletach

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

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

Obsługa zdarzeń. Wykład 4

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

Połączenia między bazami danych i programem w języku Java część 2

Aplikacje w Javie wykład 12 Programowanie GUI

Bartosz Jachnik - Kino

Architektura interfejsu użytkownika

Iteracyjno-rozwojowy cykl oprogramowania 4

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

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

W porównaniu do tekstowego interfejsu użytkownika

Rozdział 5 Aplety, grafika w Javie

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

Programowanie obiektowe

Programowanie Obiektowe Java

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

Scenariusz Lekcji. Część organizacyjna:

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

Programowanie obiektowe

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

LABORATORIUM 7 Cel: 1_1

Ćwiczenie 8. Rozległe sieci komputerowe

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

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Operatory. Składnia. Typy proste. Znaki specjalne

Programowanie obiektowe

Comparable<Klasa_uzytkownika>

1 Atrybuty i metody klasowe

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);

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

Programowanie Aplikacji Internetowych w Językach Skryptowych Laboratorium

1 Intefejsy graczne. 1.1 Okienka. 1.2 Komponenty

Podstawy Swing. Tomasz Borzyszkowski

GUI - projektowanie interfejsów cz. II

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

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

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

Transkrypt:

Java - interfejs graficzny Pakiet Swing

Pakiet Swing przygotował: pawel@kasprowski.pl

Czym jest Swing? Rozszerzenie AWT (Abstract Windows Toolkit) do tworzenia GUI (Graphical User Interface) w Javie import java.awt.*; import java.awt.events.*; import javax.swing.*;

Hierarchia Swing Kontenery Top Level Kontenery (general i special) Kontrolki

Kontenery Top-Level JApplet JDialog JFrame

Pozostałe kontenery JPanel JScrollPane JSplitPane JTabbedPane JToolBar

Proste kontrolki JButton JComboBox JList JMenu JSlider JSpinner JTextField

Pierwsza aplikacja okienkowa import javax.swing.*; import java.awt.*; public class FirstWin { public static void main(string[] args) {new FirstWin(); public FirstWin() { JFrame frame = new JFrame("Test"); JPanel contentpane = (JPanel) frame.getcontentpane(); contentpane.add(new JLabel( Hello World")); frame.setvisible(true); FirstWin.java

Pierwsza aplikacja okienkowa import javax.swing.*; import java.awt.*; public class FirstWin { public static void main(string[] args) {new FirstWin(); public FirstWin() { JFrame frame = new JFrame("Test"); JPanel contentpane = (JPanel) frame.getcontentpane(); contentpane.add(new JLabel( Hello World")); frame.setsize(new Dimension(400, 300)); frame.setlocation(100,100); frame.setvisible(true);

Pierwsza aplikacja okienkowa import javax.swing.*; import java.awt.*; public class FirstWin { public static void main(string[] args) {new FirstWin(); public FirstWin() { JFrame frame = new JFrame("Test"); JPanel contentpane = (JPanel) frame.getcontentpane(); contentpane.add(new JLabel( Hello World")); frame.setsize(new Dimension(400, 300)); frame.setlocation(100,100); frame.addwindowlistener( new WindowAdapter() {public void windowclosing(windowevent e) {System.exit(0);); frame.setvisible(true); FirstWin2.java

Pierwsza aplikacja okienkowa import javax.swing.*; import java.awt.*; public class FirstWin { public static void main(string[] args) {new FirstWin(); public FirstWin() { JFrame frame = new JFrame("Test"); JPanel contentpane = (JPanel) frame.getcontentpane(); contentpane.add(new JButton( Click me")); frame.setsize(new Dimension(400, 300)); frame.setlocation(100,100); frame.addwindowlistener( new WindowAdapter() {public void windowclosing(windowevent e) {System.exit(0);); frame.setvisible(true); FirstWin2.java

Zarządzanie położeniem obiektów (Layout) Niezależne od GUI Brak współrzędnych obiektów BorderLayout BoxLayout FlowLayout GridBagLayout GridLayout

Border Layout 5 możliwych miejsc położenia: N,S,W,E i Center

Box Layout Pionowo (Vertical) lub poziomo (Horizontal) Komponenty jeden pod/obok drugiego

Card Layout Komponenty w jednym miejscu

Flow Layout Umieszcza komponenty jeden za drugim z możliwością wstawienia nowego wiersza

Grid Layout Tworzy kratę o podanych wymiarach

GridBagLayout Najbardziej skomplikowany krata ze zmienną liczbą wierszy i kolumn i różnymi ich wielkościami

Layout Manager [1] JPanel contentpane = (JPanel) frame.getcontentpane(); contentpane.setlayout(new BorderLayout()); contentpane.add(new JButton("Click me!"),borderlayout.north); contentpane.add(new JButton("No, Me!"),BorderLayout.SOUTH); Layouts1

Layout Manager [2] JPanel contentpane = (JPanel) frame.getcontentpane(); contentpane.setlayout(new BorderLayout()); contentpane.add(new JButton("Click me!"),borderlayout.north); contentpane.add(new JButton("No, Me!"),BorderLayout.SOUTH); contentpane.add(new JButton("West!"),BorderLayout.WEST); contentpane.add( new JButton( I m in the CENTER"),BorderLayout.CENTER); Layouts2

Layout Manager [3] JPanel contentpane = (JPanel) frame.getcontentpane(); contentpane.setlayout(new GridLayout(3,2)); contentpane.add(new JButton("Click me!")); contentpane.add(new JButton("No, Me!")); contentpane.add(new JButton("West!")); contentpane.add(new JButton( I m in the CENTER")); Layouts3

Layout Manager [4] JPanel contentpane = (JPanel) frame.getcontentpane(); contentpane.setlayout(new GridLayout(3,1)); JPanel inpane = new JPanel(); inpane.setlayout(new GridLayout(1,2)); inpane.add(new JButton("First")); inpane.add(new JButton("Second")); contentpane.add(new JButton("Third")); contentpane.add(new JButton("Fourth")); contentpane.add(inpane); Layouts4

Tworzenie formatki przygotował: pawel@kasprowski.pl

Pierwsza aplikacja okienkowa import javax.swing.*; import java.awt.*; public class FirstWin { public static void main(string[] args) {new FirstWin(); public FirstWin() { JFrame frame = new JFrame("Test"); JPanel contentpane = (JPanel) frame.getcontentpane(); contentpane.add(new JButton( Click me")); frame.setsize(new Dimension(400, 300)); frame.setlocation(100,100); frame.addwindowlistener( new WindowAdapter() {public void windowclosing(windowevent e) {System.exit(0);); frame.setvisible(true); FirstWin2.java

Tworzenie formatki contentpane.setlayout(new BorderLayout()); JPanel upperpanel = new JPanel(); upperpanel.setlayout(new GridLayout(1,2)); upperpanel.add(new JButton("jeden")); upperpanel.add(new JButton("dwa")); contentpane.add(upperpanel,borderlayout.north); contentpane.add(new JTextArea("JTextField"));

Obsługa zdarzeń Komponenty (event sources) generują zdarzenia Zarejestrowane listener y obsługują te zdarzenia

Podstawowe listener y Component listener Obsługuje (nasłuchuje) zmiany wielkości, położenia czy widoczności komponentu. Focus listener Nasłuchuje, czy komponent otrzymał lub utracił focus. Key listener Czeka na naciśnięcie klawisza; wywoływane z komponentu mającego focus. Mouse events Czeka na kliknięcia myszą i wejścia kursora myszy nad komponent. Mouse-motion events Obsługuje ruchy myszą nad komponentem.

Inne popularne listener y Action listener Obsługuje akcje : kliknięcie przycisku, wybranie z menu, naciśnięcie Enter w TextField. void actionperformed(actionevent e) ListSelection listener Obsługuje zmiany w wyborze aktualnego elementu na listach (JList) i tablicach (JTable) void valuechanged(listselectionevent) WindowEvent listener Obsługuje zmiany stanu okien (JFrame i JDialog). void windowopened(windowevent) void windowclosed(windowevent) void windowiconified(windowevent) void windowdeiconified(windowevent) void windowactivated(windowevent) void windowdeactivated(windowevent)

Tworzenie obiektu ActionListener Deklaracja klasy public class MyListener implements ActionListener { Implementacja metod z interface u public void actionperformed(actionevent e) { //obsługa zdarzenia Rejestracja listenera (w programie) MyListener complist = new MyListener(); acomponent.addactionlistener(complist);

Użycie ActionListener [1] class EventEx{ JButton btn = new JButton("Click me!"); MyListener mlist = new MyListener(); class MyListener implements ActionListener{ public void actionperformed(actionevent e) {btn.settext("thank you"); public EventsEx() { Inner class contentpane.add(btn); btn.addactionlistener(mlist); EventEx.class EventEx$MyListener.class EventsEx

Użycie ActionListener [2] class EventEx{ JButton btn = new JButton("Click me!"); class MyListener implements ActionListener{ public void actionperformed(actionevent e) {btn.settext("thank you"); public EventsEx() { contentpane.add(btn); btn.addactionlistener(new MyListener());

Użycie ActionListener [3] class EventEx{ JButton btn = new JButton("Click me!"); public EventsEx() { contentpane.add(btn); Anonymousinnerclass btn.addactionlistener(new ActionListener{ public void actionperformed(actionevent e) {btn.settext("thank you");); EventsEx.class EventsEx$1.class

Użycie ActionListener [4] class EventEx implements ActionListener{ JButton btn = new JButton("Click me!"); public EventsEx() { contentpane.add(btn); btn.addactionlistener(this); public void actionperformed(actionevent e) {btn.settext("thank you");

Jeden Listener dla wielu obiektów [1] JButton bt1 = new JButton("First"); JButton bt2 = new JButton("Second"); public EventsEx() implements ActionListener{ bt1.setactioncommand( FIRST ) bt1.addactionlistener(this); bt2.setactioncommand( SECOND ) bt2.addactionlistener(this); contentpane.add(bt1); contentpane.add(bt2); public void actionperformed(actionevent e){ if (e.getactioncommand() == "FIRST") {bt1.settext(bt1.gettext()+ X"); else {bt2.settext(bt2.gettext()+ X"); EventsEx2

Jeden Listener dla wielu obiektów [2] JButton bt1 = new JButton("First"); JButton bt2 = new JButton("Second"); public EventsEx() implements ActionListener{ bt1.setactioncommand( FIRST ) bt1.addactionlistener(this); bt2.setactioncommand( SECOND ) bt2.addactionlistener(this); contentpane.add(bt1); contentpane.add(bt2); public void actionperformed(actionevent e){ JButton bb; if (e.getactioncommand() == "FIRST") { bb = bt1; else { bb = bt2; bb.settext(bb.gettext()+"x"); EventsEx2

Robudowa przykładu o obsługę zdarzeń Edit2

Obsługa zdarzeń public class Edit2 { JButton b1,b2; JTextArea ta; b1 = new JButton("jeden"); b2 = new JButton("dwa"); ta = new JTextArea("tutaj"); upperpanel.add(b1); upperpanel.add(b2); contentpane.add(ta); b1.addactionlistener( new ActionListener() { public void actionperformed(actionevent e) { ta.settext("jeden"); ); Edit2