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.

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

1 2I1049 Föreläsning 8 KTH-MI Peter Mozelius Grafiska gränssnitt, Java interface och händelsehantering.
Repetition av språket Java
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
1 Windows programmering (2) Borland C++ Builder 4/5 Modsoft Ab Kent Westerholm.
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Klassarv och inkapsling
OOP Objekt-orienterad programmering
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.
Välkommen Vahid Mosavat
Programmeringsteknik för K och Media
Programmeringsteknik K och Media
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.
Programkodens uppbyggnad
1 ITK:P1 Föreläsning 4 Grafiska gränssnitt och händelsehantering DSV Peter Mozelius.
Föreläsning 8 Appletprogram/fristående grafiska program Rita linjer, rektanglar mm Skriva text Byta färg Appletprogram html.
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
1 ITK:P1 Föreläsning 6 Layoutmodeller i Java DSV Marie Olsson.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
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.
Föreläsning 13 Polymorfism, Paket och JAR-filer. Polymorfism Ordet härstammar från grekiskan Poly – många Morf – form Polymorf – många former Någonting.
Objektorienterad programmering i Java
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmeringsteknik
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
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.
Programmeringsteknik för Media1 & K1
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.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
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.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
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.
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder,
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.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
Föreläsning 4 Klasser Och Objekt.
1. Ett problem/uppgift.
0. Kod, Klassdiagram och Sekvensdiagram import java.awt.event.*; import javax.swing.*; import java.awt.*; public class TwoThreads implements ActionListener.
1 Objektorienterad programmering i Java Föreläsning 5 Kort om Java-Applets.
PROCESSPROGRAMMERING Föreläsning 1 ( )‏ Innehåll: Introduktion till paralellprogrammering (“concurrent programming”)‏ Introduktion till parallellprogrammering.
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.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Ö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öreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
OOP&M - teori1 OOP del III–vecka 15 Mer NetBeans MouseEvent Graphics Threads TIJ Chapter 14 Menus sid Drawing File Dialogs
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
OOP&M - teori1 OOP del III– Föreläsning vecka 9 GUI Containers och LayoutManagers (Inner classes)
Chapter 8: Getting Started with Graphics Programming
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
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.
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.
Föreläsning 13: Swing (GUI), händelser, timer
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

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 (GUI)

Appletprogram/fristående program Appletprogrammet –körs i en webbläsare eller med programmet appletviewer. –behöver ingen main-metod. –se Cirkel.java Ett fristående grafiskt program –körs med java-kommandot. –kräver att man öppnar ett fönster att rita i. –se CirkelFri.java Exempel finns under ”The Java Tutorial”

Klassen Graphics Ett objekt ur klassen Graphics representerar den yta man ritar på. I klassen finns metoder för att rita linjer, rektanglar, ellipser och polygoner samt skriva text. Skriv import java.awt.*; och import java.awt.event.*; i början av programmet.

Koordinatsystemet (0,0) x y

Linjer drawLine(xstart, ystart, xslut, yslut) (xstart, ystart) (xslut, yslut)

Rektanglar drawRect(xstart, ystart, bredd, höjd) fillRect(xstart, ystart, bredd, höjd) (xstart, ystart) höjd bredd

Text Metoden println fungerar inte i ett grafiskt fönster. Istället används metoden drawString: drawString(sträng, xstart, ystart) Metoden String.valueOf() som omvandlar ett värdet till en sträng behövs när man vill skriva ut tecken eller tal: drawString(String.valueOf(tkn), 5, 20)

Färg Vill man byta den färg som linjer ritas med använder man setColor: setColor(Color.blue); Skapa en egen färg: Color mörkröd = new Color(125,0,0); Metoden setBackground byter bakgrundsfärg: setBackground(Color.pink);

Appletprogram Tas med i hemsidans HTML-kod Kan köras av vem som helst via Netscape/Explorer Innehåller ingen main- utan en paint-metod: public void paint(Graphics g) Parametern g är ett objekt ur klassen Graphics. Skriv import java.applet.*; och import java.awt.*; i början av filen.

Cirkel.java import java.applet.*; import java.awt.*; public class Cirkel extends Applet{ public void paint(Graphics g){ int sida = (int)(100*Math.random()); g.setColor(new Color(100,200,255)); g.fillOval(20,20,sida,sida); } //paint } //Cirkel

Arv När man skapar en ny klass kan man låta den ärva metoder och data från en klass som redan finns. Den existerande klassen kallas superklass. Den klassen som ärver metoder och data kallas subklass.

extends Ordet extends används vid deklaration av subklassen class Cirkel extends Applet { //bla bla } Klassen Cirkel blir nu subklass till Applet och ärver t ex metoden paint() från Applet.

super Om man i subklassen vill hänvisa till superklassen skriver man super. För att anropa en metod som ligger i superklassen kan man skriva super.metod(); Konstruktorn ärvs aldrig. För att anropa superklassens konstruktor kan man skriva super();

interface Ett interface används ungefär som en fördefinierad klass. Metoder i ett interface har givna namn men man måste själv tala om vad metoderna ska göra. Ordet implements används när man deklarerar en klass som ska använda ett interface: class TextInmatning implements ActionListener { // bla bla }

Cirkel.java import java.applet.*; import java.awt.*; public class Cirkel extends Applet{ public void paint(Graphics g){ int sida = (int)(100*Math.random()); g.setColor(new Color(100,200,255)); g.fillOval(20,20,sida,sida); } //paint } //Cirkel

HTML hypertext markup language Består av taggar som markerar textavsnitt. Taggarna omges av <> Filen börjar med taggen och avslutas med taggen I Applet-taggen anger man class-filens namn samt grafikfönstrets storlek (bredd och höjd).

RundaHemsidan.html Min runda hemsida Titta, en cirkel!

Händelsestyrda program I vanliga program utförs satserna i main- metoden - de bestämmer programmets beteende. I ett händelsestyrt program styr tex. användaren vad som ska göras och när, genom att trycka på knappar, välja menyalternativ osv.

Grafiska användargränssnitt Består av: –grafiska komponenter (knappar, menyer, mm) På engelska: GUI components –layout (hur komponenterna placeras ut i fönstret) På engelska: Layout managers –hantering av händelser (t ex en knapptryckning) På engelska: Event handling

Grafiska komponenter Label - används för textutskrifter. Label fråga = new Label(”Ge temp:”); add(fråga); TextField - kan användas för textinmatning. TextField indata = new TextField(”-”); add(indata); String texten = indata.getText(); Button - en knapp att trycka på. Button knapp = new Button(”Tryck!”); add(knapp);

Layout FlowLayout - komponenterna placeras ut radvis från vänster till höger. setLayout(new FlowLayout()); GridLayout - rader och kolumner BorderLayout - en komponent kan placeras i North, East, South, West eller Center CardLayout - som spelkort (med överlapp) GridBagLayout - variant av GridLayout

Händelser (events) Programmet måste reagera på att en händelse har inträffat. Man definierar särskilda klasser, lyssnare, som väntar på att en händelse ska inträffa. I programmet finns: –Kod som visar komponenterna –Lyssnare som väntar på händelser –Metoder som utförs när en händelse inträffat.

Hur gör man? Den klass där lyssnaren ligger måste implementera ett lyssnar-interface: class Fönster extends Frame implements ActionListener{ } En komponent måste associeras med lyssnaren: knapp.addActionListener(this);

Man måste definiera en metod som talar om vad som ska göras vid en händelse. public void actionPerformed(ActionEvent e) { duk.kastaMyntet(); }//Metoden actionPerformed