przygotował Michał Wdaniec

Slides:



Advertisements
Podobne prezentacje
Klasy abstrakcyjne i interfejsy
Advertisements

Java dla studentów II roku Wydziału Fizyki PW Przemysław Duda, 2012
Programowanie obiektowe
Programowanie obiektowe
Programowanie obiektowe
Programowanie obiektowe
Programowanie obiektowe PO PO - LAB 3 Wojciech Pieprzyca.
Programowanie obiektowe Andrzej Ziółkowski Wykład 3.
Klasy i obiekty.
Rysowanie GUI Określanie wyglądu komponentów
Tworzenie i obsługa programów – przykład 3 uwagi cd. Wykorzystując różne klasy biblioteki języka Java należy pamiętać w jakim pakiecie się znajdują. Wszystkie.
Dziedziczenie wieloaspektowe
Java applet (c.d.) Nguyen Hung Son Uniwersytet Warszawski.
Programowanie Obiektowe w Javie (c.d.)
Nguyen Hung Son Uniwersytet Warszawski
Programowanie obiektowe w Javie
Podstawy języka Java Nguyen Hung Son Uniwersytet Warszawski.
Wzorce projektowe Paweł Ciach.
OOPC++ - wstêp, klasy1 Klasy Do struktury można dołączyć operacje działające na jej polach. struct date { int day, month, year; void set (int d, int m,
Serwery Aplikacji ASP .NET Web Objects Arkadiusz Popa.
Widoki.
Projektowanie interfejsu Pakiet AWT, komponenty i kontenery, klasa Component, metody klasy Component, klasa Label, komponenty tekstowe, klasa TextField,
Programowanie wielowątkowe
Multimedia Obrazy i dźwięki w apletach Javy, praca z tekstem, zdarzenia od myszki, obsługa wyjątków w Javie, aplety z wątkami, animacja poklatkowa.
Programowanie sieciowe w Javie
Plan Prezentacji Wczytywanie grafiki Wyświetlanie obrazów
142 JAVA – sterowanie i wątki public class A20 extends javax.swing.JApplet implements ActionListener { private int licznik = 0; private JTextField t =
AWT i Swing, Layout Managers
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Tadeusz Ziębakowski Zachodniopomorski Uniwersytet Technologiczny.
Tworzenie aplikacji mobilnych
Aplety w javie.
Podstawy inżynierii oprogramowania Zofia Kruczkiewicz
PIO 3_2, Zofia Kruczkiewicz1 Wykład 3 – część druga Iteracyjno-rozwojowy cykl oprogramowania 3.
Programowanie obiektowe
Tworzenie aplikacji mobilnych
Programowanie obiektowe
Tworzenie aplikacji mobilnych
Programowanie obiektowe – zastosowanie języka Java SE
Seminarium problemowe
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
PIO 2_2, Zofia Kruczkiewicz1 Wykład 2 – część druga Iteracyjno-rozwojowy cykl oprogramowania 2.
Programowanie komponentowe jesień-zima 2013
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 8.
Java 3 MPDI Programowanie obiektowe W5. Java - obiektowy język programowania stworzony przez firmę Sun Microsystems. Java jest językiem tworzenia programów.
  ELEMENTY JĘZYKA JAVA komentarze w Javie, słowa kluczowe i operatory, proste typy danych, tablice, podstawowy zestaw instrukcji.
OCPJP Inner classes.
Zaawansowane komponenty graficzne Swing
Dobry kod OO Jeżeli zapytamy statystycznego programistę z czym kojarzy mu się dobry kod OO to najprawdopodobniej będzie mówił o wzorcach projektowych.
PAT: Persistent Applications Toolkit Aplikacje bazodanowe bez bazy danych Tomasz Nazar.
PROGRAMOWANIE W JAVA Informatyka Stosowana – ROK II / III Laboratoria mgr inż. Krzysztof Bzowski.
Model współbieżności w Javie autor: Grzegorz Szuba.
Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej Swing Java Wykład 7 mgr inż. Michał Misiak.
Odwzorowania relacyjno-obiektowe Hibernate preselekcja.
Biblioteki graficzne: Swing, AWT, SWT
Mirosław Ochodek Szkolenie finansowane ze ś rodków Europejskiego Funduszu Spo ł ecznego (75%) i bud ż etu pa ń stwa (25%)
Mirosław Ochodek Szkolenie finansowane ze ś rodków Europejskiego Funduszu Spo ł ecznego (75%) i bud ż etu pa ń stwa (25%)
Tworzenie dokumentacji w systemie Doxygen Paweł Strużyński 25 maja 2011.
Wykład 3a Działanie aplikacji okienkowej
Przeglądarka stron WWW
Wątki, programowanie współbieżne
(według:
(c) Krzysztof Barteczko 2014
Java-wykład Grafika.
Klasy wewnętrzne. Praktyka użycia interfejsów i klas wewnętrznych
Iteracyjno-rozwojowy cykl oprogramowania 3
Programowanie obiektowe – zastosowanie języka Java SE
Zdarzenia (eventy) Zdarzenia służą do powiadomienia użytkownika, gdy w używanej klasie dojdzie do pewnych wydarzeń zdefiniowanych przez twórcę klasy.
PGO GUI - Swing Michail Mokkas.
Tworzenie wątków w Javie
Zapis prezentacji:

przygotował Michał Wdaniec AWT & SWING przygotował Michał Wdaniec

Abstract Window Toolkit Główne cele AWT to stworzenie interfejsu który będzie wyglądał równie dobrze na wszystkich maszynach... Wygląda równie źle. przygotował Michał Wdaniec

przygotował Michał Wdaniec SWING Ostateczna biblioteka GUI dla Javy 2. Zalety: Prostota i dobry projekt Czytelność kodu, nawet wygenerowanego przez narzędzia graficzne Możliwość umieszczania wstawek HTML w komponentach. przygotował Michał Wdaniec

Przechwytywanie zdarzeń przygotował Michał Wdaniec

przygotował Michał Wdaniec Action Listners ActionListener KeyListner MouseListner przygotował Michał Wdaniec

przygotował Michał Wdaniec ActionListner public class Test extends JApplet { private JButton b1 = new JButton("Wyczysc"); private JTextArea t = new JTextArea(20,40); public void init() { b1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ t.setText(""); }} ); ... przygotował Michał Wdaniec

przygotował Michał Wdaniec MouseListner public class Test extends JApplet { private JTextArea t = new JTextArea(20,40); public class MyMouseListener implements MouseListener{ public void mouseClicked(MouseEvent e){ t.setText("Nacisnąłeś mysz");} public void mouseExited(MouseEvent e){} public void mousePressed(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseEntered(MouseEvent e){} } MyMouseListener l1 = new MyMouseListener(); public void init() { addMouseListener(l1); ... przygotował Michał Wdaniec

przygotował Michał Wdaniec KeyListener class Keys { static Keys keys; public static Keys Keys() return keys; } /** * Is space pressed? */ static boolean space; * Is up arrow pressed? static boolean up; * Is down arrow pressed? static boolean down; public class SkiJump extends Applet implements Runnable, KeyListener public void keyReleased(KeyEvent e){ if (e.getKeyCode()==KeyEvent.VK_SPACE){ Keys.space=false;} if (e.getKeyCode()==KeyEvent.VK_UP){ Keys.up=false;} if (e.getKeyCode()==KeyEvent.VK_DOWN){ Keys.down=false;} return; //inne metody wymagające przysłonienia public void init(){ addKeyListener(this); ... przygotował Michał Wdaniec

przygotował Michał Wdaniec Inne Listnery Nazwa Komponenty które generują zdarzenie Action Jbutton,Jlist,JTextField,JMenuItem... Component Component i dziedziczące Container Container i dziedziczące MouseMotion Component i dziedziczące Item JCheckBox, JComboBox... Window Window i dziedziczące Text JTextComponent i dziedziczące przygotował Michał Wdaniec

Rozmieszczanie komponentów przygotował Michał Wdaniec

Najważniejsze Layout Managery BorderLayout FlowLayout GridLayout BoxLayout przygotował Michał Wdaniec

przygotował Michał Wdaniec BorderLayout public class Test extends JApplet { public void init() { JPanel panel1=new JPanel(); JPanel panel2=new JPanel(); panel1.setLayout(new BoxLayout(panel1,BoxLayout.X_AXIS)); for (int i=0;i<3;i++) {panel1.add(new JButton("NORTH "+i));} panel2.setLayout(new BoxLayout(panel2,BoxLayout.Y_AXIS)); for (int i=0;i<2;i++) {panel2.add(new JButton("WEST "+i));} Container cp= getContentPane(); cp.setLayout(new BorderLayout()); cp.add(BorderLayout.NORTH,panel1); cp.add(BorderLayout.WEST,panel2); cp.add(BorderLayout.EAST,new JButton("EAST")); cp.add(BorderLayout.CENTER,new JButton("CENTER")); cp.add(BorderLayout.SOUTH,new JButton("SOUTH"));} } NORTH 0 NORTH 1 NORTH 2 WEST 0 WEST 1 CENTER EAST SOUTH przygotował Michał Wdaniec

przygotował Michał Wdaniec FlowLayout Ustawia komponenty w poziomej linii, jeżeli się nie mieszczą przesuwa je do następnej. Bardzo nie polecany ze względu na przemieszczanie się elementów miedzy liniami w trakcie zmiany rozmiaru okna. przygotował Michał Wdaniec

przygotował Michał Wdaniec GridLayout Tworzy rozciągniętą tabele komponentów. Konstruktor: GridLayout(liczbaKolumn,LiczbaWierszy) Bardzo przydatny i estetyczny. przygotował Michał Wdaniec

przygotował Michał Wdaniec BoxLayout Pozwala na rozmieszczenie elementów w pionie lub poziomie za pomącą „rozdzielaczy i kleju”. Nazwa „klej” jest myląca i oznacza sprężynę.  Konstruktor: BoxLayout(pojemnik,BoxLayout.X_AXIS) przygotował Michał Wdaniec

przygotował Michał Wdaniec Pojemnik Box Pojemnik z domyślnym menadżerem BoxLayout. Konstruktor: Box myBox = Box.createVerticalBox(); Tworzenie kleju: myBox.add(Box.createVerticalGlue()); Tworzenie rozdzielaczy: myBox.add(Box.createRigidArea(new Dimension(szerokosc,wysokosc))); przygotował Michał Wdaniec

Inne Przydatne/Ciekawe Rzeczy przygotował Michał Wdaniec

Wspaniałe wyskakujące okienka Wywołuje je metoda JOptionPane.showTypDialog(null, ”Napis na pasku”,”Napis w oknie”, ...pozostałe opcje w zależności od typu..., JOptionPane.Typ_Obrazka_w_Okienku) gdzie: Typ – typ okienka Przykład: JOptionPane.showMessageDialog(null, „Błąd krytyczny", „Wystąpił błąd krytyczny 39h. Twój dysk twardy został sformatowany.", JOptionPane.ERROR_MESSAGE); przygotował Michał Wdaniec

Dźwięki, czyli wspaniała prostota Javy Aby odtworzyć dźwięk w Javie wystarczy wywołać metodę klasy Applet: play(URL codec,nazwaPliku); Jako pierwszy argument najczęściej wywołuje się metodę getCodecBase() Przykład: play(getCodecBase(),”plik.wav”); Takie wywołanie pozwala na odtwarzanie plików w formacie wave. przygotował Michał Wdaniec

przygotował Michał Wdaniec Podwójne buforowanie public class SkiJump extends Applet implements Runnable{ Graphics Gbuffer; //Obiekt rysujący na obrazek offscreen Image offscreen; //bufor, kopia ekranu Dimension dim; //Rozmiar okna Thread loop; //Wątek boolean running = true; public void run(){ while (running) {repaint();//metoda uaktualniająca try{loop.sleep(10);}//oddajemy sterowanie catch (InterruptedException e){System.out.println(e);}}} public void init(){ dim=getSize(); offscreen=createImage(dim.width,dim.height);//Tworzymy buffor Gbuffer=offscreen.getGraphics(); //Ustawiamy, Gbuffer na offscreen loop= new Thread(this); loop.start();} public void paint(Graphics g){ //tutaj całe rysowanie, rysujemy na GBuffer g.drawImage(offscreen,0,0,this);}//przerysowanie bufora na ekran public void update(Graphics g){ paint(g);} ... przygotował Michał Wdaniec

przygotował Michał Wdaniec KONIEC (OKLASKI) przygotował Michał Wdaniec