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



Podobne dokumenty
Java - interfejs graficzny

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

Podstawy Języka Java

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

Tworzenie elementów graficznych

Programowanie graficznych interfejsów użytkownika

Kontenery i komponenty graficzne

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

Programowanie zdarzeniowe

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

Programowanie obiektowe

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

Programowanie zdarzeniowe

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

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

SWING. dr Jarosław Skaruz

Graphic User Interfaces pakiet Swing

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

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

Aplikacja wielowątkowa prosty komunikator

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

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

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

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

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

Programowanie obiektowe

Aplikacje w Javie wykład 12 Programowanie GUI

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

Java biblioteka Swing

Aplikacja wielow tkowa prosty komunikator

Programowanie graficznych interfejsów uŝytkownika

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

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

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

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

Scenariusz Lekcji. Część organizacyjna:

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

Tworzenie i obsługa graficznego interfejsu uŝytkownika

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

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

Programowanie Obiektowe GUI

Programowanie w języku Java WYKŁAD

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

Ćwiczenia 9 - Swing - część 1

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

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

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

Iteracyjno-rozwojowy cykl oprogramowania 4

Interfejs graczny w Javie.

GUI - projektowanie interfejsów cz. II

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

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

Programowanie w języku Java

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

Programowanie Obiektowe Java

9. Swing wprowadzenie

Programowanie obiektowe

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

LABORATORIUM 7 Cel: 1_1

Podstawy Swing. Tomasz Borzyszkowski

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

Przykładowe roz wiązanie:

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

Podstawowe informacje o apletach

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

Aplikacje w Javie wykład 12 Programowanie GUI

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

Język Java. Rysowanie GUI Określanie wyglądu komponentów

PROGRAMOWANIE APLIKACJI MULTIMEDIALNYCH

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

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

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

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

Języki i metody programowania Java Lab4 podejście obiektowe, zastosowanie pojemników

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

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

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

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

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Wstęp 5 Rozdział 1. Instalacja systemu 13. Rozdział 2. Logowanie i wylogowywanie 21 Rozdział 3. Pulpit i foldery 25. Rozdział 4.

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 1

Dokumentacja do API Javy.

Dodanie nowej formy do projektu polega na:

4. W konstruktorze klasy Grafika wywołaj metodę określającą rozmiary ramki oraz ustaw kolor tła metodą setbackground():

Aplikacje w środowisku Java

DOSTĘP DO METOD I ZMIENNYCH. Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla każdego, Helion 2001)

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

Programowanie komponentowe

Programowanie Obiektowe Java

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

Java Podstawy. Michał Bereta

Bartosz Jachnik - Kino

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. Wykład 2 (część 2)

Edytor tekstu OpenOffice Writer Podstawy

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

Kontynuacja wprowadzenia do SWING. Przykłady implementacji wybranych komponentów

Okno logowania. Okno aplikacji. 1. Logowanie i rejestracja

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

Zaawansowane aplikacje WWW - laboratorium

Transkrypt:

Kierunek: Informatyka i Ekonometria Przedmiot: Programowanie komputerów Forma zajęć: Ćwiczenia Temat: Tworzenie aplikacji z wykorzystaniem graficznego interfejsu użytkownika - Swing. Biblioteka SWING podstawowa bliblioteka do tworzenia interfejsów użytkownika, rozszerzenie możliwości biblioteki AWT, napisana całkowicie w Javie, bogaty zestaw komponentów, przyciski, etykiety, listy, drzewa, tabele itp., łatwa zmiana wyglądu aplikacji, pełna obsługa grafiki 2D, drag-and-drop, internacjonalizacja, nazwy obiektów JNazwa, główny pakiet to: javax.swing 1

Główne kontenery JApplet JDialog JFrame Klasa JFrame utworzenie okna z tytułem, ramką, menu, kontener dla innych komponentów. import javax.swing.*; public class Test { public static void main(string[] args) { JFrame ramka = new JFrame("Pierwszy program"); JLabel napis = new JLabel("Tekst"); ramka.add(napis); ramka.setsize(200,200); ramka.setdefaultcloseoperation(jframe.exit_on_close); ramka.setvisible(true); 2

Klasa JPanel podstawowy kontener import javax.swing.* import java.awt.*; class MojPanel extends JPanel { JButton przycisk1,przycisk2,przycisk3; public MojPanel (){ przycisk1 = new JButton("pierwszy"); przycisk2 = new JButton("drugi"); przycisk3 = new JButton("trzeci"); add(przycisk1); add(przycisk2); add(przycisk3); setbackground(color.yellow); public void paintcomponent(graphics g) { super.paintcomponent(g); public class Test { public static void main(string[] args) { JFrame ramka = new JFrame("Aplikacja w SWING'u"); MojPanel panel = new MojPanel(); ramka.add(panel); ramka.setsize(400,100); ramka.setdefaultcloseoperation(jframe.exit_on_close); ramka.setvisible(true); 3

Pozostałe komponenty - kontenery JPanel JScrollPane JSplitPane JTabbedPane JToolBar Pozostałe komponenty JButton JComboBox JList JMenu 4

JSlider JTextField JLabel JProgressBar JToolTip JColorChooser JFileChooser JTable JTextComponent 5

JTree Menedżery rozkładu główne kontenery korzystają z rozkładu BorderLayout, kontener JPanel używa rozkładu FlowLayout, zmiana domyślnego rozkądu to metoda setlayout() JPanel panel = new JPanel(); panel.setlayout(new BorderLayout()); BorderLayout BoxLayout FlowLayout GridLayout GridBagLayout 6

Obsługa zdarzeń deklaracja klasy obsługującej zdarzenia (interfejs ActionListener), class Obsluga implements ActionListener stworzenie kodu uruchamianego podczas konkretnego zdarzenia, public void actionperformed (ActionEvent e) rejestracja obiektu powyższej klasy jako nasłuchiwacza dla jednego bądź też wielu komponentów, komponent.addlistener (obiekt klasy Obsluga) import odpowiednich interfejsów i klas do obsługi zdarzeń. import java.awt.event.*; Zdarzenia i powiązane z nimi typy nasłuchiwaczy Typ zdarzenia Kliknięcie na przycisku, naciśnięcie klawisza Enter podczas pisania w polu tekstowym, wybranie pozycji z menu Zamknięcie ramki (główne okno) Obługa przycisków myszy Obsługa poruszania myszą Komponent staje się widoczny Komponent uzyskuje fokus Wybór z listy Typ nasłuchiwacza ActionListener WindowListener MouseListener MouseMotionListener ComponentListener FocusListener ListSelectionListener Przykładowa aplikacja import javax.swing.*; import java.awt.*; import java.awt.event.*; class MojPanel extends JPanel { JButton przycisk1,przycisk2,przycisk3; public MojPanel (){ przycisk1 = new JButton("Czerwony"); przycisk2 = new JButton("Zielony"); przycisk3 = new JButton("Żółty"); add(przycisk1); add(przycisk2); add(przycisk3); 7

Obsluga dzialanie1 = new Obsluga(Color.red); Obsluga dzialanie2 = new Obsluga(Color.green); Obsluga dzialanie3 = new Obsluga(Color.yellow); przycisk1.addactionlistener(dzialanie1); przycisk2.addactionlistener(dzialanie2); przycisk3.addactionlistener(dzialanie3); setbackground(color.white); public void paintcomponent(graphics g) { super.paintcomponent(g); private class Obsluga implements ActionListener { private Color kolor; public Obsluga(Color k){ this.kolor = k; public void actionperformed(actionevent e){ setbackground(kolor); repaint(); public class Test { public static void main(string[] args) { JFrame ramka = new JFrame("Aplikacja w SWING'u"); MojPanel panel = new MojPanel(); ramka.add(panel); ramka.setsize(400,100); ramka.setdefaultcloseoperation(jframe.exit_on_close); ramka.setvisible(true); 8

Grafika metoda paintcomponent(graphics g) grafika dwuwymiarowa: klasa Graphics2D przykładowe klasy pakietu java.awt.geom: Ellipse2D Point2D, Line2D,Rectangle2D, czcionki: klasa Font kolory: klasa Color import javax.swing.*; import java.awt.*; import java.awt.geom.*; class MojPanel extends JPanel { JButton przycisk1,przycisk2,przycisk3; public MojPanel (){ setbackground(color.white); public void paintcomponent(graphics g) { super.paintcomponent(g); Graphics2D g2 = (Graphics2D) g; public class Test { g2.setpaint(color.red); Line2D linia = new Line2D.Double (10,10,380,10); g2.draw(linia); g2.setpaint(color.green); Rectangle2D pros = new Rectangle2D.Double (10,20,370,40); g2.draw(pros); g2.setpaint(color.blue); Font czcionka = new Font("Tahoma", Font.BOLD, 20); g2.setfont(czcionka); g2.drawstring("figury geometryczne",10,120); public static void main(string[] args) { JFrame ramka = new JFrame("Figury"); MojPanel panel = new MojPanel(); ramka.add(panel); ramka.setsize(400,200); ramka.setdefaultcloseoperation(jframe.exit_on_close); 9

ramka.setvisible(true); Swing w przykładach http://java.sun.com/docs/books/tutorial/uiswing/index.html Zadania 1. Dodaj do przykładowego kodu dwa nowe przyciski "Biały" oraz "Niebieski". Dodaj również etykietę tekstową JLabel, która będzie zawierać napis: Aktualny kolor to: aktualny kolor. Uzupełnij brakujący kod tak, aby aplikacja działała prawidłowo. Wykorzystaj BorderLayout oraz dodatkowe kontenery. Tekst z przycisku możesz pobrać za pomocą metody getactioncommand() dostępnej w klasie ActionEvent. 10

2. Napisz prosty kalkulator. +---------------+-+ Kalkulator x +---------------+-+ Pole tekstowe +---+---+---+---+ 7 8 9 / +---+---+---+---+ 4 5 6 x +---+---+---+---+ 1 2 3 - +---+---+---+---+ 0. = + +---+---+---+---+ Wykorzystaj obsługę zdarzeń, komponenty itd. 3. Napisz nastepujaca aplikacje: +---------------------------------------------------------------------------+-+ MiniOutlook - Imię i Nazwisko x +---------------------------------------------------------------------------+-+ Plik Wiadomość Konto Pomoc +-----------------------------------------------------------------------------+ 1 2 3 4 5 +-------------------------+------------+---------------------------+----------+ -MiniOutlook Od Temat Rozmiar `-Foldery Lokalne +------------+---------------------------+----------+ -Skrzynka odbiorcza Arek Zaproszenie 12 KB -Skrzynka nadawcza Madzia Wyniki 3 KB -Elementy wyslane Jurek FWD: Smieszne 195 KB `-Kopie robocze +---------------------------------------------------+ Zapraszam Was serdecznie dzis na spotkanie do- tyczace znajomosci GUI w srodowisku JAVA. Sala 426 godz 14.00 pozdrawiam Arkadiusz Markowski +-------------------------+---------------------------------------------------+ Wiadomosci: 34, nie przeczytane: 53 +-----------------------------------------------------------------------------+ Aplikacja: Tytuł: MiniOutlook - Imię Nazwisko (proszę podać swoje dane) Całość zawiera Menu, Toolbar z obrazkami oraz główne okno podzielone na 4 cześci: 1 cześć: Drzewo z odpowiednią struktura 2 cześć: Tabela z wiadomościami 3 cześć: Podgląd wiadomości (komponent tekstowy) 4 cześć: Status (komponent tekstowy) 11

Wszystkie komponenty zostały opisane ponizej: Menu: Struktura menu: Plik - Nowy, Otwórz, Zapisz Importuj, Exportuj Drukuj Zamknij Wiadomość - Nowa, Odpowiedz nadawcy, Prześlij dalej Konto - Nowe, Właściwości Pomoc - Spis treści O programie gdzie to separator Toolbar: 5 przycisków (grafika na stronie 1.gif itd.) podpowiedzi (tooltipsy pod przyciskami): - Napisz wiadomość - Odpowiedz nadawcy - Odpowiedz wszystkim - Prześlij dalej - Wyślij i odbierz wszystkie Drzewo: Struktura taka jak na formatce Tabela: Struktura i zawartość taka jak na formatce Podglad: Zawartość taka jak na formatce Status: Zawartość taka jak na formatce 12