SlideServe
Menu
Préférences
© SlideServe · v2026

AWT & SWING

ianthe avatar
21 diapositives · 422 Views · Sep 09, 2014

AWT & SWING. 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. SWING. Ostateczna biblioteka GUI dla Javy 2. Zalety: Prostota i dobry projekt

AWT & SWING - slide 1
01 / 21AWT & SWING
1 / 17

Télécharger la présentation

AWT & SWING
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. 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. 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. Action Listners • ActionListener • KeyListner • MouseListner przygotował Michał Wdaniec

  6. ActionListner publicclassTestextendsJApplet{ privateJButtonb1=newJButton("Wyczysc"); privateJTextAreat=newJTextArea(20,40); publicvoidinit(){ b1.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ t.setText(""); }} ); ... przygotował Michał Wdaniec

  7. MouseListner publicclassTestextendsJApplet{ privateJTextAreat=newJTextArea(20,40); publicclassMyMouseListenerimplementsMouseListener{ publicvoidmouseClicked(MouseEvente){ t.setText("Nacisnąłeś mysz");} publicvoidmouseExited(MouseEvente){} publicvoidmousePressed(MouseEvente){} publicvoidmouseReleased(MouseEvente){} publicvoidmouseEntered(MouseEvente){} } MyMouseListenerl1=newMyMouseListener(); publicvoidinit(){ addMouseListener(l1); ... przygotował Michał Wdaniec

  8. publicclassSkiJumpextendsAppletimplementsRunnable,KeyListenerpublicclassSkiJumpextendsAppletimplementsRunnable,KeyListener publicvoidkeyReleased(KeyEvente){ 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 publicvoidinit(){ addKeyListener(this); ... classKeys { staticKeyskeys; publicstaticKeysKeys() { returnkeys; } /** *Isspacepressed? */ staticbooleanspace; /** *Isuparrowpressed? */ staticbooleanup; /** *Isdownarrowpressed? */ staticbooleandown; } KeyListener przygotował Michał Wdaniec

  9. 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. BorderLayout publicclassTestextendsJApplet{ publicvoidinit(){ JPanelpanel1=newJPanel(); JPanelpanel2=newJPanel(); panel1.setLayout(newBoxLayout(panel1,BoxLayout.X_AXIS)); for(inti=0;i<3;i++) {panel1.add(newJButton("NORTH "+i));} panel2.setLayout(newBoxLayout(panel2,BoxLayout.Y_AXIS)); for(inti=0;i<2;i++) {panel2.add(newJButton("WEST "+i));} Containercp=getContentPane(); cp.setLayout(newBorderLayout()); cp.add(BorderLayout.NORTH,panel1); cp.add(BorderLayout.WEST,panel2); cp.add(BorderLayout.EAST,newJButton("EAST")); cp.add(BorderLayout.CENTER,newJButton("CENTER")); cp.add(BorderLayout.SOUTH,newJButton("SOUTH"));} } NORTH 0 NORTH 1 NORTH 2 WEST 0 WEST 1 CENTER EAST SOUTH przygotował Michał Wdaniec

  13. 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. GridLayout Tworzy rozciągniętą tabele komponentów. Konstruktor: GridLayout(liczbaKolumn,LiczbaWierszy) Bardzo przydatny i estetyczny. przygotował Michał Wdaniec

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

  21. KONIEC (OKLASKI) przygotował Michał Wdaniec