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



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

Kontenery i komponenty graficzne

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

Java - interfejs graficzny

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

Tworzenie elementów graficznych

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

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

Tworzenie i obsługa graficznego interfejsu uŝytkownika

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

Aplikacja wielowątkowa prosty komunikator

Przykładowe roz wiązanie:

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

Programowanie graficznych interfejsów użytkownika

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

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

Aplikacja wielow tkowa prosty komunikator

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

Iteracyjno-rozwojowy cykl oprogramowania 4

SWING. dr Jarosław Skaruz

Podstawy Języka Java

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

Programowanie obiektowe

Graphic User Interfaces pakiet Swing

Programowanie zdarzeniowe

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

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

Programowanie zdarzeniowe

Wykład 4_2 część druga. Iteracyjno-rozwojowy cykl oprogramowania 4

Bartosz Jachnik - Kino

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

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

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

Grafika i komunikacja człowiek komputer Laboratorium. Część 2: Graphics

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

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

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

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

Instrukcja 4 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwa klienta: Interfejs graficzny użytkownika

Programowanie obiektowe

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

PROJEKTOWANIE ABSTRAKCYJNEJ KLASY FIGURA PRZECHOWUJĄCEJ WSPÓLNE CECHY OBIEKTÓW GRAFICZNYCH

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

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

II Tworzenie klasy Prostokąt dziedziczącej z klasy wątku

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

Dokumentacja do API Javy.

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

Języki i metody programowania Java Lab2 podejście obiektowe

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

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

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

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

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

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

Comparable<Klasa_uzytkownika>

Programowanie obiektowe

Programowanie Obiektowe GUI

Przykładowe roz wiązanie:

PROGRAMOWANIE APLIKACJI MULTIMEDIALNYCH

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

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

INSTRUKCJA DO ĆWICZENIA 5

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

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

Klasy i obiekty cz I Klasy, obiekty, podstawy używania obiektów

Metody Metody, parametry, zwracanie wartości

Swing ćwiczenia 2 opis

Laboratorium z informatyki sem.iii/ćw. 4 Wydział Transportu PW /19

STWORZENIE PRZYKŁADOWEJ

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

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

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

LABORATORIUM 7 Cel: 1_1

Programowanie komponentowe

Aplikacje w środowisku Java

1. Zakładanie projektu Katalog typu Java Class Library do przechowywania obiektowego modelu danych projekt należy do warstwy biznesowej

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

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

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

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

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

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

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

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

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

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

Podstawy Swing. Tomasz Borzyszkowski

Klasy i obiekty cz II

Bezpieczne uruchamianie apletów wg

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

Programowanie wielowarstwowe i komponentowe

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Programowanie graficznych interfejsów uŝytkownika

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Języki i metody programowania Java Lab6 Budowa interfejsu graficznego użytkownika (GUI Graphical User Interfaces) z wykorzystaniem pakietu Swing

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

Transkrypt:

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com GUI-Swing Wstęp do tworzenia prostych aplikacji z interfejsem graficznym (GUI) przy pomocy Swing, rysowanie prostych elementów graficznych

Tworzymy pierwsze okno import javax.swing.*; public class PierwszeGUI extends JFrame { public static void main(string[] args) { JFrame ramka = new JFrame(); ramka.setdefaultcloseoperation(jframe.exit_on_close); ramka.setsize(400, 300); ramka.setvisible(true);

Tworzymy okno z przyciskami import java.awt.borderlayout; import javax.swing.jbutton; import javax.swing.jframe; public class Przyciski { public static void main(string[] args) { // Tworzymy okno aplikacji JFrame ramka = new JFrame(); // Po zamknięciu okna, aplikacja ma zakończyc działanie ramka.setdefaultcloseoperation(jframe.exit_on_close); // Ustalamy rozmiar okna ramka.setsize(400, 300); // Tworzymy przycisk JButton witajbutton = new JButton(); // Ustawiamy jaki tekst ma się wyświetlać na przycisku witajbutton.settext("witaj"); // Można od razu utworzyć przycisk i ustawić tekst JButton zegnajbutton = new JButton("Żegnaj"); // Wstawiamy przycisk, umieszczając go po lewej ramka.getcontentpane().add(borderlayout.west, witajbutton); // Wstawiamy przycisk, umieszczając go po prawej ramka.getcontentpane().add(borderlayout.east, zegnajbutton); // Okno się wyświetla ramka.setvisible(true);

Tworzymy okno z przyciskami które coś robią import java.awt.borderlayout; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.*; public class PrzyciskiZAkcja implements ActionListener { JFrame ramka; JButton witajbutton; JButton zegnajbutton; public static void main(string[] args) { PrzyciskiZAkcja przyciski = new PrzyciskiZAkcja();... przyciski.zbudujgui();

Tworzymy okno z przyciskami które coś robią... public void zbudujgui() { ramka = new JFrame(); ramka.setdefaultcloseoperation(jframe.exit_on_close); ramka.setsize(400, 300); witajbutton = new JButton("Witaj"); zegnajbutton = new JButton("Żegnaj"); // dodajemy do przycisków ActionListener witajbutton.addactionlistener(this); zegnajbutton.addactionlistener(this);... ramka.getcontentpane().add(borderlayout.west, witajbutton); ramka.getcontentpane().add(borderlayout.east, zegnajbutton); ramka.setvisible(true);

Tworzymy okno z przyciskami które coś robią... public void actionperformed(actionevent akcja) { // metoda obsługująca akcje if (akcja.getsource() == witajbutton) System.out.println("Witaj robaczku!"); else if (akcja.getsource() == zegnajbutton) System.out.println("Żegnaj robaczku!"); else // to się nie powinno wydarzyć ;-) System.out.println("Skontaktowali się ze mną kosmici");

Tworzymy okno z przyciskami które coś robią, z tekstem w naszym GUI import java.awt.borderlayout; import java.awt.flowlayout; import java.awt.gridlayout; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.*; public class PrzyciskiITekst implements ActionListener{ JFrame ramka; JButton witajbutton; JButton zegnajbutton; JTextField textf; JLabel rezultatjl; public static void main(string[] args) { PrzyciskiITekst przyciski = new PrzyciskiITekst(); przyciski.zbudujgui();...

Tworzymy okno z przyciskami które coś robią, z tekstem w naszym GUI... public void zbudujgui() { ramka = new JFrame(); ramka.setdefaultcloseoperation(jframe.exit_on_close); ramka.setsize(400, 200); witajbutton = new JButton(); witajbutton.settext("witaj!"); zegnajbutton = new JButton("Żegnaj!"); witajbutton.addactionlistener(this); zegnajbutton.addactionlistener(this); JPanel jp = new JPanel(); jp.setlayout(new GridLayout(1,2)); jp.add(witajbutton); jp.add(zegnajbutton); JPanel jp2 = new JPanel(); jp2.setlayout(new GridLayout(3,1)); // tworzymy pole tekstowe z domyślnym tekstem textf = new JTextField("Wpisz swe imię przybyszu!"); // tworzymy pole na którym będzie wypisany tekst rezultatjl = new JLabel(); rezultatjl.setsize(400,20); jp2.add(textf); jp2.add(rezultatjl); jp2.add(jp); ramka.add(jp2); ramka.setvisible(true);...

Tworzymy okno z przyciskami które coś robią, z tekstem w naszym GUI... public void actionperformed(actionevent akcja) { if (akcja.getsource() == witajbutton) // modyfikujemy komponent, zmieniając tekst rezultatjl.settext(" Witaj "+textf.gettext()); else if (akcja.getsource() == zegnajbutton) // modyfikujemy komponent, zmieniając tekst rezultatjl.settext(" Żegnaj "+textf.gettext()); else System.out.println("Skontaktowali się ze mną kosmici");

Grafika - układ współrzędnych x (0,0) (getwidth(),0) (x1, y1) y (x2, y2) (0, getheight()) (getwidth(), getheight())

Grafika - proste figury (x, y) w (x1, y1) (x2, y2) (x, y) string h drawline(x1, y1, x2, y2) drawstring(string, x, y) (x, y) w (x, y) w drawoval(x, y, w, h) (x, y) w h drawrect(x, y, w, h) h h hr/2 wr/2 drawroundrect(x, y, w, h, wh, hr) fillrect(x, y, w, h) analogicznie: fillroundrect(...), filloval(...) itd. Uwaga: wcześniej trzeba ustawić kolor wypełnienia (patrz przykład poniżej)

Aplikacja z panelem rysująca figury geometryczne import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Rysunek implements ActionListener { JFrame ramka; JButton liniabutton; JButton kwadratbutton; JButton kolobutton; JButton wzorekbutton; PanelRysunkowy rysunkowyp; public static void main(string[] args) { Rysunek rysunek = new Rysunek(); rysunek.zbudujgui();

public void zbudujgui() { ramka = new JFrame(); ramka.setdefaultcloseoperation(jframe.exit_on_close); ramka.setsize(400, 400); liniabutton = new JButton("Linia"); kwadratbutton = new JButton("Kwadrat"); kolobutton = new JButton("Kolo"); wzorekbutton = new JButton("Wzorek"); liniabutton.addactionlistener(this); kwadratbutton.addactionlistener(this); kolobutton.addactionlistener(this); wzorekbutton.addactionlistener(this); JPanel jp = new JPanel(); jp.setlayout(new BorderLayout()); rysunkowyp = new PanelRysunkowy(); JToolBar tb = new JToolBar(); tb.add(liniabutton); tb.add(kwadratbutton); tb.add(kolobutton); tb.add(wzorekbutton); jp.add("center", rysunkowyp); jp.add("north", tb); ramka.add(jp); ramka.setvisible(true);

public void actionperformed(actionevent akcja) { Graphics gr = rysunkowyp.getgraphics(); gr.clearrect(0, 0, 400, 400); if (akcja.getsource() == liniabutton) gr.drawline(20, 20, 200, 200); else if (akcja.getsource() == kwadratbutton) { gr.drawrect(20, 20, 220, 220); gr.setcolor(color.blue); Ustawiamy kolor wypełnienia gr.fillroundrect(50, 50, 100, 100, 40, 40); else if (akcja.getsource() == kolobutton) { gr.setcolor(color.green); gr.filloval(20, 20, 200, 200); else if (akcja.getsource() == wzorekbutton) malujwzorek(rysunkowyp, (int) rysunkowyp.getwidth() / 2, else (int) rysunkowyp.getheight() / 2, 200); System.out.println("Skontaktowali się ze mną kosmici");

public void malujwzorek(panelrysunkowy pr, int x, int y, int r) { rysunkowyp.getgraphics().drawoval(x - r / 2, y - r / 2, r, r); if (r > 1) { malujwzorek(pr, x + r / 2, y, r / 2); malujwzorek(pr, x - r / 2, y, r / 2); Druga klasa w tym samym pliku! Tak, jest to możliwe. class PanelRysunkowy extends JPanel { public void paintcomponent(graphics g) { super.paintcomponents(g);

Co dalej? Swing http://docs.oracle.com/javase/tutorial/uiswing/ JavaFX http://www.oracle.com/technetwork/java/javafx/overview/index.html http://docs.oracle.com/javafx/