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

Slides:



Advertisements
Lignende præsentationer
Game Maker 7. Sådan ser Game Maker ud når det startes op.
Advertisements

DIEB9.1 Kursusgang 9 Oversigt: • Sidste kursusgang • Opgaver • Beskrivelser af komponenter • Typiske komponenter • Arkitektur for en GUI.
GP 4, 19/ Grundlæggende programmering Efterår 2001 Forelæsning 4 onsdag 19/ kl. 9:15 – 12:00.
GP9, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 9 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
Design af brugerflader11.1 Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing.
Design af brugerflader12.1 Kursusgang 12 Oversigt: Sidste kursusgang Layout-manager Event-håndtering.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Introduktion/Otto Knudsen 1 Overblik WebForms ASP.NET.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
FEN IntroJava AAU1 Opsamling: afvikling af Java-programmer Input fra keyboard og fil Fra en prompt Fra BlueJ Fra NetBeans.
Objektorienteret programmering
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
1 Bestanddele i en Windows form-løsning GUI kontroller (eng.: controls) & komponenter (eng.: components) Almindelige egenskaber, metoder & hændelser for.
GP 9, 10/ Grundlæggende programmering Forår 2002 Forelæsning 9 onsdag 10/ kl. 9:15 – 12:00.
1 Grafiske brugergrænseflader I. 2 Plan Grafiske komponenter Layout Hændelser og lyttere Rammer og dialoger Nye designmønstre: Composite Command.
To måder at overføre objekt- referencer mellem processer (1) Via naming service - interface RMISolver (2) Som parametre til fjernprocedurekald - interface.
Claus Brabrand, ITU, Denmark Mar 17, 2009Projekt: “Visualisering” Claus Brabrand [ ] ( “FÅP”: First-year Project Course, ITU, Denmark )
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
DIEB8.1 Kursusgang 8 Oversigt: Sidste kursusgang Opgaver Klassen Container Layout-manager Event-håndtering.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
1 Kursusafslutning. 2 Plan Opgaveseminar Kursusevaluering.
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
DIEB7.1 Kursusgang 7 Oversigt: Sidste kursusgang Layout-manager Event-håndtering.
GP 4, 27/ Grundlæggende programmering Forår 2002 Forelæsning 4 onsdag 27/ kl. 9:15 – 12:00.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Begreber og Redskaber 11. Plan for idag Lidt afrunding: Collections Framework i Java Noget om oversættere og sprog Evaluering Sidste gang øvelser før.
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
DIEB7.1 Kursusgang 7 Oversigt: Sidste kursusgang Opgaver Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing.
DIEB10.1 Kursusgang 10 Oversigt: Sidste kursusgang Eksempler på løsning af opgaven Arkitektur for brugergrænsefladen og for systemet Dokumentation af designet.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
Systemudvikling – Fra idé til kode.  Jens Bennedsen 2001Multimedie programmering9.2 Begrebsmodellering Problemspecifikke begreber Problem/vision vedrørende.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
 Jens Bennedsen 2002Objektorienteret systemudvikling Persistens.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge45 GUI.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
Javas GUI Framework GUI-programmering i Java vha. AWT.
 Jens Bennedsen, 2003Introducerende objektorienteret programmering MVC Et mønster for grænseflader.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
Grafiske brugergrænseflader Javas AWT framework.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringJava-syntaks.2 Introduktion.
DIEB6.1 Kursusgang 6 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Indledende Programmering Uge 6 - Efterår 2006
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
 Jens Bennedsen 2001Multimedie programmering MVC Et mønster for grænseflader.
Design af brugerflader13.1 Kursusgang 13 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Grafik Modeller, objekter og opførsel. dIntProg, F08Grafik.2 Nye begreber Repetition (iteration) –gentagelse af opførsel Parametrisering –generalisering.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
 Henrik Bærbak, 2000Introducerende objektorienteret programmering11A.1 Grafiske Brugergrænseflader Java’s AWT framework.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
DIEB8.1 Kursusgang 8 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
 Jens Bennedsen 2001Multimedie programmering1.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
 Jens Bennedsen 2001Multimedie programmering Collections Samlinger af objekter.
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
 Jens Bennedsen, 2003, revideret af EE Introducerende objektorienteret programmering MVC Et mønster for grænseflader.
Objektinteraktion i GUI’er MVC og Observer.  Michael E. Caspersen, 2003Introducerende objektorienteret programmeringmvc.2 AWT framework Listeners og.
Javas GUI Framework GUI-programmering i Java vha. AWT.
Forelæsning Uge 13 – Torsdag
”Avanceret” Programmering
Forelæsning Uge 13 – Mandag
Forelæsning Uge 13 Konstruktion af grafiske brugergrænseflader (GUI'er) Definition af de elementer, der vises på skærmen (vinduer, knapper, menuer, scrollbarer,
Præsentationens transcript:

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

 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) { }

 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!!

 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”

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

 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

 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:

 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

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

 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

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