1 ITK:P1 Föreläsning 4 Grafiska gränssnitt och händelsehantering DSV Peter Mozelius.

Slides:



Advertisements
Liknande presentationer
Händelsehantering i grafiska gränssnitt byggda med Tkinter
Advertisements

Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
1 2I1049 Föreläsning 8 KTH-MI Peter Mozelius Grafiska gränssnitt, Java interface och händelsehantering.
Repetition av språket Java
Villkor Booelska operatorer Villkorsatser Switchsatser Villkor och annat.
Stefan Möller OOP F16:1 OOP Objekt-orienterad programmering Föreläsning 16 Grafiska användargränssnitt, GUI Ytor Komponenter Layout-managers Lyssnare.
2I1049 Föreläsning 11 Modularisering, återanvändning och JavaBeans
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Fortsättningskurs i Programmering lektion 6
Objektorienterad utveckling
Klassarv och inkapsling
Repetition av objektorientering
OOP Objekt-orienterad programmering
Objektorienterad utveckling Lektion 2 Objekt, överlagring, överskuggning, klasshierarkier och dynamisk bindning KTH Peter Mozelius.
TNSL04 – IT grundkurs. VT2009. Föreläsning nr 4, måndag 2 mars. kl Snabbrepris av grundbegreppen: Klasser, objekt, konstruktorer, anrop till konstruktorer,
Metoder i java Det finns två typer av metoder i java
Övning5 Så här ska man tänka när man löser uppgift 1 på tentan lite grafik, så här söker man genom en lista så här läser man från en fil i java lösa uppgift.
Programmeringsteknik för K och Media
Swing Grafik delen i Java kallas för Swing. Swing är stort; ca 800 klasser i 16 paket. Swing är en utveckling av AWT (Abstarct Window Toolkit). AWT var.
Att programmera i språket Java
Föreläsning 8 Appletprogram/fristående grafiska program Rita linjer, rektanglar mm Skriva text Byta färg Appletprogram html.
1 ITK:P1 Föreläsning 6 Layoutmodeller i Java DSV Marie Olsson.
1 Föreläsning 8 Grafik AWT. 2 Grafik Frame använder man för att skapa ett fönster Button använder man om man vill ha en knapp att trycka på Canvas är.
1 ITK:P1 Föreläsning 5 Iteration, slumpning och arrayer DSV Peter Mozelius.
Objektorienterad programmering i Java
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Datasamlingar och generiska enheter
MSPEL Föreläsning 2 Text, teckensnitt och grafiska komponenter
1 ITK:P1 Föreläsning 7 Algoritmer och datastrukturer DSV Marie Olsson.
Vektorer (klassen Vector) Sortering
Föreläsning 15 (16) Introduktion till Swing. Historik (java.awt) JDK 1.0 – AWT (Abstract Window Toolkit) Paket för gränssnittsprogrammering Har en del.
Arv.
Programmeringsteknik för Media1 & K1
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
ITK:P1 Lektion 4 Att implementera en spelidé i Java DSV Peter Mozelius.
1 MSPEL Lektion 2 DSV Peter Mozelius Spel i Java applets.
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
Föreläsning 8 Arv och abstrakta klasser. Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen ( extends.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 ITK:P1 Föreläsning 8 Multimedia för spelkonstruktion DSV Peter Mozelius.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Next previous GRIP 2000 Föreläsning 4 Innehåll Inmatningstyper Modeller för interaktiva applikationer Observer MVC Lyssnare Pluggbara komponenter Exempel.
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Java paket och jar-filer
Föreläsning 9 Gränssnitt. Super Super kan användas till anrop av en omdefinierad metod Super kan användas till anrop av konstruktorer i superklassen Super.
1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
0. Kod, Klassdiagram och Sekvensdiagram import java.awt.event.*; import javax.swing.*; import java.awt.*; public class TwoThreads implements ActionListener.
Föreläsning 13 Appletprogram/fristående grafiska program Arv Rita linjer, rektanglar mm Skriva text, byta färg Appletprogram & HTML Grafiska användargränssnitt.
ITK:P2 F8 Strömmar och filhantering DSV Peter Mozelius.
Föreläsning 9 Arv kap 8.1 Interface kap 9.2 Grafiska användargränssnitt (GUI) kap 10.
2I1073 Lektion 1 KTH-MI Peter Mozelius XHTML, stilmallar och Javascript.
7. Delegerare och notifierare
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
Programmeringsteknik för K och Media
OOP&M - teori1 OOP del III–vecka 15 Mer NetBeans MouseEvent Graphics Threads TIJ Chapter 14 Menus sid Drawing File Dialogs
OOP&M - teori1 OOP del III– Föreläsning vecka 9 GUI Containers och LayoutManagers (Inner classes)
OOP&M - teori1 OOP&M del III– Föreläsning 3 vecka 6 Kontrollkomponenter (Components) Som Applets.
OOP&M - teori1 OOP&M del III– Föreläsning 23 vecka 15 Graphics Graphics2D Menyer JMF.
OOP&M - teori1 OOP del III– Vecka 10 Händelser Kontrollkomponenter (Components) Featuring: Applets.
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
DA7351 Programmering 1 Skapa och placera en komponent i en container Layoutmanagers Applet Händelser och lyssnare Föreläsning 15.
OOP&M - teori1 OOPM del II – Föreläsning vecka Abstrakta klasser/metoder igen Gränssnitt/Interface klasser igen tillämpat.
Gruppövning Applikationsprogramering Klassuppdelning Loose Coupling Model View Controller Inversion of Control Layout med Swing JSplitPane Mouse-over Events.
Föreläsning 13: Swing (GUI), händelser, timer
Repetitionsföreläsning 2: Quiz & problemlösning med swing
Repetitionsföreläsning 1: Lite rekursion & problemlösning
Presentationens avskrift:

1 ITK:P1 Föreläsning 4 Grafiska gränssnitt och händelsehantering DSV Peter Mozelius

2 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

3 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

4 AWT-hierarkin

5 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

6 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  Komponenter som ser likadana ut oberoende av plattform och OS  Lättviktskomponenter

7 Swing-komponenter  Swing består av 9 st delpaket och en mängd olika klasser och interface  Grundpaketet heter javax.swing.*  import javax.swing.*; AWT utgår från klassen Component Swing utgår från JComponent Button blir JButton Label blir JLabel...

8 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  JFC = Java Foundation Classes  Innehåller AWT, Swing, Java 2D mm

9 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

10 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());

11 Kodexempel 1 knapp = new Button("Tryck här"); add(knapp); //gör fönstret synligt this.setVisible(true); }//konstruktor

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

Paus

14 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

15 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)

16 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

17 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

18 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

19 Händelselyssnare  Den metod som sedan behöver implementeras är actionPerformed: public void actionPerformed(ActionEvent e) { Lite smart kod; }//actionPerformed  Lyssnaren behöver slutligen även registreras: knapp1.addActionListener(this); knapp2.addActionListener(this);

20 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");

21 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

22 Kodexempel 2 public void actionPerformed(ActionEvent e){ sydEtikett.setText("Hallå ITK!"); }//actionPerformed public static void main(String[] args) { new F4_exempel2(); } }//F4_exempel2

23 Allt om Java för nu! Tack för att ni lyssnade!