Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Przygotował Michał Wdaniec AWT & SWING. przygotował Michał Wdaniec Abstract Window Toolkit Główne cele AWT to stworzenie interfejsu który będzie wyglądał

Podobne prezentacje


Prezentacja na temat: "Przygotował Michał Wdaniec AWT & SWING. przygotował Michał Wdaniec Abstract Window Toolkit Główne cele AWT to stworzenie interfejsu który będzie wyglądał"— Zapis prezentacji:

1 przygotował Michał Wdaniec AWT & SWING

2 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.

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.

4 przygotował Michał Wdaniec Przechwytywanie zdarzeń

5 przygotował Michał Wdaniec Action Listners ActionListener KeyListner MouseListner

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(""); }} );...

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

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

9 przygotował Michał Wdaniec Inne Listnery NazwaKomponenty które generują zdarzenie ActionJbutton,Jlist,JTextField,JMenuItem... ComponentComponent i dziedziczące ContainerContainer i dziedziczące MouseMotionComponent i dziedziczące ItemJCheckBox, JComboBox... WindowWindow i dziedziczące TextJTextComponent i dziedziczące

10 przygotował Michał Wdaniec Rozmieszczanie komponentów

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

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"));} } CENTER SOUTH EAST NORTH 0NORTH 1NORTH 2 WEST 0 WEST 1

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.

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

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)

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

17 przygotował Michał Wdaniec Inne Przydatne/Ciekawe Rzeczy

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

19 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.

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

21 przygotował Michał Wdaniec KONIEC (OKLASKI)


Pobierz ppt "Przygotował Michał Wdaniec AWT & SWING. przygotował Michał Wdaniec Abstract Window Toolkit Główne cele AWT to stworzenie interfejsu który będzie wyglądał"

Podobne prezentacje


Reklamy Google