12/8/2017 Curs 12 1 Programare Orientata Obiect Curs
12/8/2017 Curs 12 1 Programare Orientata Obiect Curs 12 Pachetele AWT si Swing
12/8/2017 Curs 12 2 Continutul cursului 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
12/8/2017 Curs 12 3 Curs 12 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
C12. 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
C12. 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.
C12. 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
C12. Pachetele AWT si Swing 1.3 Swing Libraria Swing are la baza libraria AWT Swing este implementata in intregime in Java
C12. 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
C12. Pachetele AWT si Swing 1.3 Swing
C12. Pachetele AWT si Swing 1.4 AWT sau Swing? Swing!
C12. 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
C12. 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, TextField, TextArea Cateva subclase ale clasei Component: Panel, Applet, Window, Frame
C12. 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)
C12. 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"); setSize(200, 200); setVisible(true); } public static void main(String argv[]) { new Hello(); } }
C12. Pachetele AWT si Swing 1.7 Hello World! Swing import javax.swing.*; public class HelloWorldSwing { public static void main(String[] args) { JFrame frame = new JFrame("HelloWorldSwing"); final JLabel label = new JLabel("Hello World"); frame.getContentPane().add(label); frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } }
C12. 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)
C12. 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 MyClass implements ActionListener { Se implementeaza metodele din interfata, metode ce vor fi executate cand va aparea evenimentul public void actionPerformed(ActionEvent e) { … } Se inregistreaza o instanta din clasa definita ca listener pentru o componenta someComponent.addActionListener(instanceOfMyClass);
C12. Pachetele AWT si Swing 1.8 Managementul evenimentelor import javax.swing.*; import java.awt.event.*; public class ButtonClickExample extends JFrame implements ActionListener { JButton b = new JButton("Click me!"); public ButtonClickExample() { b.addActionListener(this); getContentPane().add(b); pack(); setVisible(true); } public void actionPerformed(ActionEvent e) { b.setBackground(Color.CYAN); } public static void main(String[] args) { new ButtonClickExample(); } } 1 2 3
C12. Pachetele AWT si Swing 1.8 Managementul evenimentelor Se declara o clasa ca implementeaza o interfata de tip listener (ActionListener) Se inregistreaza o instanta a clasei pentru a interpreta evenimentele ce apar la nivelul butonului Se definesc actiunile care se intampla atunci cand apare evenimentul
C12. Pachetele AWT si Swing 1.9 Moduri de afisare a componentelor Exista 6 moduri de afisare (pozitionare) a componentelor intr-un container: BorderLayout BoxLayout FlowLayout GridBagLayout GridLayout CardLayout Fiecare mod de afisare controleaza pozitia si ordinea de aranjare a componentelor
C12. Pachetele AWT si Swing 1.9 Moduri de afisare a componentelor
C12. Pachetele AWT si Swing 1.10 Exemple (I) import javax.swing.*; import java.awt.event.*; Import java.util.*; public class ComboBoxExample implements ActionListener { JComboBox box; public ComboBoxExample() { JFrame frame = new JFrame("ComboBoxExample"); JPanel panel = new JPanel(); Set s = new TreeSet(); s.add(new Integer(1)); s.add(new Integer(2)); s.add(new Integer(3)); box = new JComboBox(s.toArray()); box.addActionListener(this); panel.add(box); frame.getContentPane().add(panel); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { new ComboBoxExample(); } public void actionPerformed(ActionEvent e) { if ("comboBoxChanged".equals(e.getActionCommand())) { System.out.println("User chose index " + box.getSelectedIndex()); } } }
C12. Pachetele AWT si Swing 1.10 Exemple (II) import javax.swing.*; import java.awt.*; public class GridLayoutTest extends JFrame { JButton b1=new JButton("Red"), b2=new JButton("Green"),b3=new JButton("Blue"), b4=new JButton("Yellow"),b5=new JButton("Pink"); public GridLayoutTest() { setTitle("GridLayout Test"); Container pane = getContentPane(); pane.setLayout(new GridLayout(2,3)); setBounds(0,0,300,100); pane.add(b1); pane.add(b2); pane.add(b3); pane.add(b4); pane.add(b5); } public static void main(String args[]) { JFrame f = new GridLayoutTest(); f.setVisible(true); } }
12/8/2017 Curs 12 24 Continutul cursului 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
4178-pachete_avt_si_swing.ppt
- Количество слайдов: 24