Pachete AVT si SWING.ppt
- Количество слайдов: 24
Programare Orientata Obiect Curs 12 Pachetele AWT si Swing 2/12/2018 Curs 12 1
Continutul cursului 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Introducere Platforma Java, Clase si Obiecte Modificatori, Constructori Pachete. Incapsularea datelor Mostenirea / Extinderea claselor Conversii de date. Clase si metode abstracte Interfete Exceptii (I) Exceptii (II) Fire de executie Pachetul I/O Pachetele AWT si Swing 2/12/2018 Curs 12 2
Curs 12 1. Pachetele AWT si Swing 1. 1 Privire de ansamblu 1. 2 Abstract Window Toolkit (AWT) 1. 3 Swing 1. 4 AWT sau Swing? 1. 5 Construirea unei interfete grafice 1. 6 Containere si componente 1. 7 Hello World! 1. 8 Managementul evenimentelor 1. 9 Moduri de afisare a componentelor 1. 10 Exemple 2/12/2018 Curs 12 3
C 12. Pachetele AWT si Swing 1. 1 Privire de ansamblu – GUI – Graphical User Interface – Java pune la dispozitie 2 librarii pentru dezvoltarea de aplicatii cu interfata grafica: – AWT – in pachetul java. awt – Swing – in pachetul javax. swing
C 12. Pachetele AWT si Swing 1. 2 Abstract Window Toolkit (AWT) – AWT este o librarie portabila pentru dezvoltarea de interfate grafice. – Face legatura dintre o aplicatie Java si sistemul de operare pe care ruleaza. – AWT “ascunde” detaliile de implementare ale interfetei grafice. – AWT depinde de componente ale sistemului de operare pe care ruleaza pentru a putea construi interfata cu utilizatorul.
C 12. Pachetele AWT si Swing 1. 2 Abstract Window Toolkit (AWT) – Avantaje: – Viteza – Look and feel – datorita faptului ca foloseste componente ale sistemului de operare arata similar cu alte aplicatii – Dezavantaje: – Portabilitate redusa – fiindca se folosesc componente ale sistemului de operare pot sa apara dependente specifice – AWT ofera doar un numar redus de elemente de interfata grafica
C 12. Pachetele AWT si Swing 1. 3 Swing – Libraria Swing are la baza libraria AWT – Swing este implementata in intregime in Java
C 12. Pachetele AWT si Swing 1. 3 Swing – Avantaje: – Portabilitate – sunt implementate 100% in Java – Ofera o gama larga de componente grafice – Look and feel – componentele adopta stilul sistemului de operare pe care ruleaza – Dezavantaje: – Performanta redusa fata de AWT – datorita faptului ca nu foloseste API-urile sistemului de operare pentru desenarea interfetelor – Look and feel – componentele pot fi usor diferite fata de cele ale sistemului de operare
C 12. Pachetele AWT si Swing 1. 3 Swing java. lang. Object java. awt. Component java. awt. Container javax. swing. JComponent java. awt. Window javax. swing. JPanel java. awt. Frame javax. swing. JFile. Chooser javax. swing. JPopup. Menu javax. swing. JFrame javax. swing. JToolbar javax. swing. JLabel
C 12. Pachetele AWT si Swing 1. 4 AWT sau Swing? Swing!
C 12. Pachetele AWT si Swing 1. 5 Construirea unei interfete grafice – Pentru a construi o interfata grafica cu utilizatorul este nevoie sa putem realiza containere (de exemplu, ferestre) in care sa adaugam diverse componente – Pasi: – Se importa pachetele AWT sau Swing – Se construieste containerul principal al aplicatiei – Se adauga elemente de interfata – Se fac modificarile necesare pentru interpretarea evenimentelor ce apar in urma interactiunii cu utilizatorul – Se afiseaza containerul aplicatiei
C 12. Pachetele AWT si Swing 1. 6 Containere si componente – Un container (obiect de tip Container) contine si afiseaza componente (obiecte de tip Component) – Cateva subclase ale clasei Component: Button, Checkbox, Label, Scrollbar, Text. Field, Text. Area – Cateva subclase ale clasei Component: Panel, Applet, Window, Frame
C 12. Pachetele AWT si Swing 1. 6 Containere si componente – In pachetul Swing un container poate fi: – JFrame – o fereastra clasica a unei aplicatii cu toatele elementele de grafica obisnuite – JDialog – o ferestra care este dependenta de o alta fereastra – JApplet – o zona de afisare intr-o pagina web (un applet este o aplicatie Java care ruleaza intr-un browser)
C 12. Pachetele AWT si Swing 1. 7 Hello World! – AWT import java. awt. *; public class Hello extends Frame { Hello() { Label hello = new Label("Hello World"); add(hello, "Center"); set. Size(200, 200); set. Visible(true); } public static void main(String argv[]) { new Hello(); } }
C 12. Pachetele AWT si Swing 1. 7 Hello World! – Swing import javax. swing. *; public class Hello. World. Swing { public static void main(String[] args) { JFrame frame = new JFrame("Hello. World. Swing"); final JLabel label = new JLabel("Hello World"); frame. get. Content. Pane(). add(label); frame. set. Default. Close. Operation( JFrame. EXIT_ON_CLOSE); frame. pack(); frame. set. Visible(true); } }
C 12. Pachetele AWT si Swing 1. 8 Managementul evenimentelor – De fiecare data cand un utilizator apasa o tasta sau foloseste mouse-ul, apare un eveniment la nivelul interfetei utilizator. – Orice obiect din cadrul aplicatiei poate fi anuntat atunci cand apare un eveniment – Pentru aceasta obiectul trebuie sa implementeze o anumita interfata si sa se inregistreze ca event listener (adica sa anunte ca vrea sa interpreteze un anumit eveniment)
C 12. Pachetele AWT si Swing 1. 8 Managementul evenimentelor – Crearea unui event handler – Se creaza o clasa ce implementeaza o interfata de tip listener public class My. Class implements Action. Listener { – Se implementeaza metodele din interfata, metode ce vor fi executate cand va aparea evenimentul public void action. Performed(Action. Event e) { … } – Se inregistreaza o instanta din clasa definita ca listener pentru o componenta some. Component. add. Action. Listener(instance. Of. My. Class);
C 12. Pachetele AWT si Swing 1. 8 Managementul evenimentelor 1 import javax. swing. *; import java. awt. event. *; public class Button. Click. Example extends JFrame implements Action. Listener { JButton b = new JButton("Click me!"); 2 } public Button. Click. Example() { b. add. Action. Listener(this); get. Content. Pane(). add(b); pack(); set. Visible(true); } public void action. Performed(Action. Event e) { b. set. Background(Color. CYAN); } public static void main(String[] args) { new Button. Click. Example(); } 3
C 12. Pachetele AWT si Swing 1. 8 Managementul evenimentelor 1. Se declara o clasa ca implementeaza o interfata de tip listener (Action. Listener) 2. Se inregistreaza o instanta a clasei pentru a interpreta evenimentele ce apar la nivelul butonului 3. Se definesc actiunile care se intampla atunci cand apare evenimentul
C 12. Pachetele AWT si Swing 1. 9 Moduri de afisare a componentelor – Exista 6 moduri de afisare (pozitionare) a componentelor intr-un container: Border. Layout Box. Layout Flow. Layout Grid. Bag. Layout Grid. Layout Card. Layout – Fiecare mod de afisare controleaza pozitia si ordinea de aranjare a componentelor
C 12. Pachetele AWT si Swing 1. 9 Moduri de afisare a componentelor
C 12. Pachetele AWT si Swing 1. 10 Exemple (I) import javax. swing. *; import java. awt. event. *; Import java. util. *; public class Combo. Box. Example implements Action. Listener { JCombo. Box box; public Combo. Box. Example() { JFrame frame = new JFrame("Combo. Box. Example"); JPanel panel = new JPanel(); Set s = new Tree. Set(); s. add(new Integer(1)); s. add(new Integer(2)); s. add(new Integer(3)); box = new JCombo. Box(s. to. Array()); box. add. Action. Listener(this); panel. add(box); frame. get. Content. Pane(). add(panel); frame. pack(); frame. set. Visible(true); } public static void main(String[] args) { new Combo. Box. Example(); } public void action. Performed(Action. Event e) { if ("combo. Box. Changed". equals(e. get. Action. Command())) { System. out. println("User chose index " + box. get. Selected. Index()); } } }
C 12. Pachetele AWT si Swing 1. 10 Exemple (II) import javax. swing. *; import java. awt. *; public class Grid. Layout. Test extends JFrame { JButton b 1=new JButton("Red"), b 2=new JButton("Green"), b 3=new JButton("Blue"), b 4=new JButton("Yellow"), b 5=new JButton("Pink"); public Grid. Layout. Test() { set. Title("Grid. Layout Test"); Container pane = get. Content. Pane(); pane. set. Layout(new Grid. Layout(2, 3)); set. Bounds(0, 0, 300, 100); pane. add(b 1); pane. add(b 2); pane. add(b 3); pane. add(b 4); pane. add(b 5); } public static void main(String args[]) { JFrame f = new Grid. Layout. Test(); f. set. Visible(true); } }
Continutul cursului 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Introducere Platforma Java, Clase si Obiecte Modificatori, Constructori Pachete. Incapsularea datelor Mostenirea / Extinderea claselor Conversii de date. Clase abstracte Interfete Exceptii (I) Exceptii (II) Fire de executie Pachetul I/O Pachetele AWT si Swing 2/12/2018 Curs 12 24
Pachete AVT si SWING.ppt