Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

przygotował Michał Wdaniec

Podobne prezentacje


Prezentacja na temat: "przygotował Michał Wdaniec"— Zapis prezentacji:

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

2 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

3 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

4 Przechwytywanie zdarzeń
przygotował Michał Wdaniec

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

6 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

7 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

8 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

9 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

10 Rozmieszczanie komponentów
przygotował Michał Wdaniec

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

12 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

13 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

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

15 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

16 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

17 Inne Przydatne/Ciekawe Rzeczy
przygotował Michał Wdaniec

18 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

19 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

20 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

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


Pobierz ppt "przygotował Michał Wdaniec"

Podobne prezentacje


Reklamy Google