ITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter

Relevanta dokument
2I1049 Föreläsning 8. Grafiska gränssnitt i Java. AWT-komponenter. Grafiska gränssnitt, Java interface och händelsehantering

ITK:P1 Lektion 4. Lektion 4. Lektion 4. Att implementera en spelidé i Java. DSV Peter Mozelius

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Föreläsnings 11 - GUI, Händelsestyrda program, MVC

Föreläsning 3: Händelsestyrda program och användargränssnitt

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Mer om grafiska komponenter. Händelsestyrda program

ITK:P1 Föreläsning 8. Verktyget Javadoc. Kommentarer för Javadoc. Multimedia för spelkonstruktion

Objektorienterad Programmering DAT043. Föreläsning 5 29/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

OOP Objekt-orienterad programmering

Föreläsning 15 (16) Historik (java.awt) Historik (javax.swing) Introduktion till Swing

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 18

OOP Objekt-orienterad programmering

Laboration 15 Grafiskt användargränssnitt

Föreläsning 10. Mer om grafiska komponenter Händelsestyrda program. Layout Managers

Föreläsning 10. Mer om grafiska komponenter Händelsestyrda program. Layout Managers. Exempel: FlowLayout. Klassen FlowLayout

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Lektion Händelsehanterare

Java-concept och Swing. Swing low, sweet chariot

Swing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? LayoutManagers. Exempel på några av komponenterna

Programmeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt

Grafiska användargränsnitt i Java. Föreläsning 7 Innehåll. Använda klasspaketet Swing. Klasspaket i Java. Grafiska användargränsnitt i Java

MVC-mönstret. model-view-control i Swing

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU

Grafiskt användargränssnitt (GUI-Graphical User Interface) intro Komponenter

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

Händelsestyrda program

Properties. Användbara metoder som kan anropas i propertychanged:

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Fortsättningskurs i programmering F 5. GUI händelsehantering - undantagshantering Hugo Quisbert AWT. Paket för hantering av grafik

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling

Arv, Grafiska användaregränssnitt och Inre klasser! Förelasning 12!! TDA540 Objektorienterad Programmering!

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

Föreläsning 13: Swing (GUI), händelser, timer

Lösningar till tentamen i EDAF25

5 Användargränssnitt. 5.1 AWT och Swing

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h

Fönstersystem. Objektorientering och händelsebaserad programmering. Applikation. Interaktionstoolkit. Händelsehanterare och grafiktoolkit

Arv och polymorfi. Lite terminologi; Basklass eller superklass: En klass som fungerar som bas för vårt arv. Vi skapar nya klasser utifrån den.

Projekt 2 XL. Observer-mönstret

Arv och Grafiska Användargränssnitt

Två designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011)

Grafiska användargränssitt och händelsehantering

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Laboration 24 Databasen MySQL och java

Malmö högskola 2007/2008 Teknik och samhälle

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

2I1073 Lektion 2. Lektion 2a. Lektion 2a. Servlets, säkerhet, och filhantering. import java.io.*; import javax.servlet.*; import javax.servlet.http.

Grafiska komponenter.

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Repetitionsföreläsning 2: Quiz & problemlösning med swing Inget nytt material.

725G61 - Laboration 8 Ett enkelt GUI. Sahand Sadjadee och Johan Falkenjack

Rita Egna Bilder, Timer

Lösningsförslag till tentamen

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Lösningsförslag till tentamen

Objektorienterad programmering med Java Swing. Programexempel. Swing och AWT AWT. = Abstract windowing toolkit

kl

Laboration 4: Game of Life

Malmö högskola 2007/2008 Teknik och samhälle

GUI-program med Swing

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag aug - 23 Tentamen i Objektorientering och Java Skrivtid 5 h

Lösningar för tenta 3 DAT043,

Lösningsförslag till tentamen

Applets med komponenter

Föreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

Föreläsning 14: Grafik & mera händelsehantering

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015

Objektorienterad Programmering DAT043. Föreläsning 6 30/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Lösningsförslag till tentamen

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Modelsvar för Tentamen för Objektorienterad programvaruutveckling, TDA545

Lösningsförslag till tentamen

DAT043 - föreläsning 8

Lösningar till tentamen i EDAF25

Lösningsförslag till tentamen

GUI-programmering. Gustav Taxén Martin Berglund DH2640 Grafik och Interaktionsprogrammering VT 2008

Frames, menyer och GUI-program

Klasshierarkier. Klasser kan byggas på redan definierade klasser

Programstyrd / händelsestyrd

Tentamen FYTA11 Javaprogrammering

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Micael Karlsson

SMD091 Lektion 9. Definition. Inkapsling. Lite repetition. Grafik. Gränssnitt Definition och Implementation. Sammansättning... Implementation.

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 00 - juni - 17 Tentamen i Objektorientering och Java Skrivtid 5 h

Observer Pattern och MVC. Objekt-orienterad programmering och design Alex Gerdes, 2016

Föreläsningsmaterial (Arv) Skrivet av Andreas Lund

Transkript:

ITK:P1 Föreläsning 4 Grafiska gränssnitt och händelsehantering 1 DSV Peter Mozelius Grafiska gränssnitt i Java Efterfrågan på program med grafiskt gränssnitt har ökat avsevärt de senaste åren I Java finns två parallella komponenthierarkier som gör det enkelt att bygga fungerande GUI:s AWT (Abstract Windowing Toolkit) tungviktskomponenter, plattformsberoende Swing (Infördes som Core Java i ver 1.2) lättviktskomponenter, plattformsoberoende 2 AWT-komponenter Abstract Windowing Toolkit De grafiska komponenter som funnits med sedan den allra första versionen av Java Tungviktskomponenter som samarbetar med operativsystemet där applikationen körs En knapp t ex ser därför annorlunda ut när koden körs i Linux än den gör i Windows Gemensamma basklass är Component 3 1

AWT-hierarkin 4 Paketet java.awt awt package kan delas i tre delar: KOMPONENTER: knappar, textrutor... GRAFIK: bilder, fonter, färger LAYOUTMODELLER (Layout Managers) Separata paket för bl a: Händelsehantering: java.awt.event Bildhantering: java.awt.image Drag n Drop: java.awt.dnd 5 Java med Swing På mångas begäran så utökades Java i ver 1.2 med nya grafikklasser Var från början ett samarbete mellan bl a Sun, IBM och Netscape En del komponenter har sitt ursprung i Netscapes Internet Foundation Classes 6 Komponenter som ser likadana ut oberoende av plattform och OS Lättviktskomponenter 2

Swing-komponenter Swing består av 9 st delpaket och en mängd olika klasser och interface Grundpaketet heter javax.swing.* import javax.swing.*; 7 AWT utgår från klassen Component Swing utgår från JComponent Button blir JButton Label blir JLabel... Swing-komponenter Ett bra sätt att få en liten inblick i det som går att göra med Swing-komponenter är att ta sig till: X:\jdk1.6\demo\jfc\SwingSet2\ och sedan klicka på: SwingSet2Plugin.html 8 JFC = Java Foundation Classes Innehåller AWT, Swing, Java 2D mm Model - View Model View Controller MVC Det viktigaste och det som finns i Swing är att genom separeringen av Model View skilja mellan logik (Model) och gränssnitt (View) Swing-paketets content pane getcontentpane().add(button); JDK 1.2 1.4 Ej längre nödvändigt 9 3

Kodexempel 1 import java.awt.*; public class F4_ exempel1 extends Frame { private Button knapp; public F4_exempel1(){ super("f4 föreläsningsexempel1"); this.setsize(300, 300); this.setlayout(new FlowLayout()); 10 Kodexempel 1 knapp = new Button("Tryck här"); add(knapp); //gör fönstret synligt this.setvisible(true); }//konstruktor 11 Kodexempel 1 public static void main(string[] args) { new F4_exempel1(); } }//F4_exempel1 Börja med att leka med detta lilla exempel innan ni t ex ger er på Uppgift3! 12 4

Paus Java interface Java stödjer inte multipelt arv Men en klass kan implementera flera interface En samling metoder och konstanter som inte naturligt passar in i en arvhierarki Det går bra att skriva egna interface Vi kommer på denna kurs enbart att använda färdiga interface från java.awt.event 14 Java interface Interface - Gränssnitt Ett interface innehåller abstrakta metoder Ett interface ärvs inte utan implementeras: public class TV implements Fjärrkontroll I interfacet Fjärrkontroll finns abstraktdeklarerade metoder som sedan måste implementeras i klassen TV Exempel: public void bytkanal(int kanal) 15 5

Händelser - händelselyssning I Java är händelseobjekt en sorts objekt som hjälper till med kommunikationen när en händelse inträffar Händelseobjekt - event object är specialiseringar av basklassen java.util.event De händelser som skapar händelseobjekt behöver avlyssnas - händelselyssning 16 Händelselyssning En klass som kan fånga händelser är en lyssnarklass med särskilda metoder som systemet anropar när händelser inträffar Till vår hjälp har vi lyssnargränssnitt som t ex: MouseEvent - MouseListener WindowEvent WindowListener ListSelectionEvent - ListSelectionListener 17 Händelselyssnare Den händelse vi kommer att använda mest är av klassen ActionEvent Interfacet heter ActionListener och kopplas till en klass enligt: public class A extends JFrame implements ActionListener { Vi kan sedan fånga händelser från komponenter som (J)Button och (J)TextField 18 6

Händelselyssnare Den metod som sedan behöver implementeras är actionperformed: public void actionperformed(actionevent t e) { Lite smart kod; }//actionperformed Lyssnaren behöver slutligen även registreras: knapp1.addactionlistener(this); knapp2.addactionlistener(this); 19 Kodexempel 2 import java.awt.borderlayout; import java.awt.event.*; import javax.swing.*; public class F11_exempel2 extends JFrame implements ActionListener { private JButton nordknapp; private JLabel sydetikett; public F11_exempel2(){ super("föreläsning4 - Exempel2"); 20 Kodexempel 2 setsize(300, 80); nordknapp = new JButton("Tryck här "); nordknapp.addactionlistener(this); sydetikett = new JLabel( Hälsningen här", JLabel.CENTER); add(nordknapp, BorderLayout.NORTH); add(sydetikett, BorderLayout.SOUTH); setvisible(true); setdefaultcloseoperation(exit_on_close); }//konstruktor 21 7

Kodexempel 2 public void actionperformed(actionevent e){ sydetikett.settext("hallå ITK!"); }//actionperformed public static void main(string[] args) { new F4_exempel2(); } }//F4_exempel2 22 Allt om Java för nu! 23 Tack för att ni lyssnade! 8