Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

 Jens Bennedsen 2001Multimedie programmering10C.1 Brugergrænseflader Swing.

Lignende præsentationer


Præsentationer af emnet: " Jens Bennedsen 2001Multimedie programmering10C.1 Brugergrænseflader Swing."— Præsentationens transcript:

1  Jens Bennedsen 2001Multimedie programmering10C.1 Brugergrænseflader Swing

2  Jens Bennedsen 2001Multimedie programmering10C.2 To kategorier af grænseflader Program drevne –Algoritmen er aktiv og i centrum –Når der kræves input, læser algoritmen fra en input stream –Når der skal laves output skrives til en output stream –Bruges ved processering af information/styrede input forløb Hændelses orienterede –Algoritme er passiv og lytter efter hæste opgave (hændelse) –Input omsættes til en hændelse som håndterers –Output skrives til en output stream –Bruges ved interaktive og brugerkontrollerede input While (true) { }

3  Jens Bennedsen 2001Multimedie programmering10C.3 Swing Java har to standarder for grænseflader –Swing (Java 1.2, light ewight) Baserer sig bl.a. på AWT –AWT (Java 1.1, heawy weight) Vi vil benytte swing!!

4  Jens Bennedsen 2001Multimedie programmering10C.4 knapper JPanel w JFrame Koden JFrame w = new JFrame("Components"); Container c = w.getContentPane(); //Lav en række knapper JPanel knapper = new JPanel(); knapper.add(new JButton("OK")); knapper.add(new JButton("Cancel")); c.add(knapper); w.setVisible(true); ’ok’ JButton ’cancel’ JButton ”Et vindue er opbygget Som en kinesisk æske”

5  Jens Bennedsen 2001Multimedie programmering10C.5 Composite Hvordan modellerer vi den kinesiske æske? –En æske kan indeholde en komponent og en æske, der indeholder en æske, der indeholder to komponenter...

6  Jens Bennedsen 2001Multimedie programmering10C.6 Designmønstre The Pattern Community: Aggresive disregard of originality Et designmønster - navngiver, - abstraherer og - identificerer de centrale aspekter ved en gængs designstruktur. Et designmønster identificerer deltagende klasser (og instanser) deres rolle og samarbejde samt ansvarsfordelingen mellem dem. Det foregående er et design mønster kaldet Composite

7  Jens Bennedsen 2001Multimedie programmering10C.7 ”Top klasser” Der er containere der ikke kan indeholdes i andre containere –JFrame: Et almindeligt vindue –JWindow: Et vindue uden titel-bar, luk knap mm. –JDialog: En (modal) dialogbox –JInternalFrame: Et vindue i et andet vindue –JApplet: Et vindue til at afvikle i en browser De har alle en JRootPane, der indeholder en Container af elementer:

8  Jens Bennedsen 2001Multimedie programmering10C.8 Hvordan placeres komponenter For at kunne håndtere resize’ing m.m. af containere, er der en komponent der håndterer det: LayoutManager –FlowLayout: Venstre til højre i en (eller flere) række(r) –BorderLayout: nord, syd, øst, vest og center –GridLayout: Tabel med et antal rækker og søjler –GridBagLayout: vandret og lodret ud fra en række begrænsninger Resize

9  Jens Bennedsen 2001Multimedie programmering10C.9 Layout managers FlowLayout: BorderLayout GridLayout.setLayout(new GridLayout(2,3));.setLayout(new BorderLayout());.setLayout(new FlowLayout()); Default for JFrame

10  Jens Bennedsen 2001Multimedie programmering10C.10 Input Hvordan får vi grænsefladen til at gøre noget? Den skal generere et event som en eller anden skal reagere på: En knap genererer en ActionEvent når der trykkes på den Den skal opfanges af en ”event lytter” Hvergang der trykkes skal der lægges en til feltet actionEvent

11  Jens Bennedsen 2001Multimedie programmering10C.11 Input -> output En lytter skal implementere ActionListener interfacet - i.e. have operationen actionPerformed import java.awt.event.*; import java.awt.*; import javax.swing.*; public class Adder implements ActionListener { public Adder(JTextField res) { this.res = res; } public void actionPerformed(ActionEvent e){ res.setText(Integer.toString(Integer.parseInt(res.getText())+1)); } JTextField res; } JButton add1 = new JButton("Add 1"); JTextField res = new JTextField("0");... add1.addActionListener(new Adder(res));


Download ppt " Jens Bennedsen 2001Multimedie programmering10C.1 Brugergrænseflader Swing."

Lignende præsentationer


Annoncer fra Google