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

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

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

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

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

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

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

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

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

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

Inlämningsuppgift 1 Programmeringsteknik MN1 vt02

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

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

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

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

Rita Egna Bilder, Timer

Frames, menyer och GUI-program

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering

ID1004 Laboration 3, 5-6 November 2012

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

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

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

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

Tentamen ITK:P2. Inga hjälpmedel tillåtna förutom penna och papper. Skriv tydligt och texta gärna. 14 st frågor, 70 poäng.

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

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

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

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

Mer om grafiska komponenter. Händelsestyrda program

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

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

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

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

Grafiska komponenter.

Lösningsförslag till tentamen

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

MSPEL Föreläsning 4. Audio och Video. Audio - sampling. Analogt - Digitalt. Analoga värden för ljud eller bild kvantifieras och digitaliseras

lgammal2.txt // Lösningar till gammal tentamen // Uppgift 1 a

Laboration 15 Grafiskt användargränssnitt

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

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

Lösningsförslag till tentamen

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

Lösningsförslag till tentamen

Lösningsförslag till tentamen

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 5 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Java-concept och Swing. Swing low, sweet chariot

Tentamen i Objektorienterad programmering

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

FactoryCast HMI. Premium & Quantum PLC. Applets

Exempel på användning av arv: Geometriska figurer

Tentamen. Lösningsförslag

Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass.

Tentamen i Objektorienterad programmering E

Objektorienterad programmering i Java. Föreläsning 5 Kort om Java-Applets

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

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

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

JAVA Mer om klasser och objektorientering

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Efterhand fick vi ett system som vi tyckte var väl anpassat. Vi renskrev kladden (nedan) och började programmera menyerna.

Föreläsning 10. ADT:er och datastrukturer

LiTHehack? Här? lithehack se koma Tisdagar och torsdagar

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

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

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

Lösningsförslag övning 2.

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

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

kl

Föreläsning 1, vecka 8: Att förbereda sig för tentan

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

Klasser som datastrukturer

Laboration 4: Game of Life

Tentamen i Programmeringsteknik MN

Laboration 3 GUI-programmering

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

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

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

Ingenjörsfirman Stéen Java Sida 1 av 1

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

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

Input. Programmering. Andra källor

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

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

2 b) Följande finns definierat: import java.awt.*; public class Uppgift1b public static void main(string[] mupp) Color färg = Color.blue; Bil[] bilar

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

2I1049 Föreläsning 9. Iterativ programutveckling. Iterativ programutveckling. Modularisering, återanvändning och JavaBeans

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

Att använda Java SE JDK 6

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

Laboration 24 Databasen MySQL och java

Klassen javax.swing.timer

Labbinstruktioner för Java/Swing

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Transkript:

ITK:P1 Föreläsning 8 Multimedia för spelkonstruktion 1 DSV Peter Mozelius Verktyget Javadoc De flesta program behöver dokumentation I Java finns ett verktyg som genererar HTML- dokumentation på ett enkelt sätt PROMPT:\> javadoc minklass.java ELLER PROMPT:\> javadoc *.java Tar även med dina egna kommentarer 2 Kommentarer för Javadoc Klass- och metod-kommentarer enligt: /** raknaut beräknar summan av a, b och c resultatet d läggs sedan in i Vector v */ Särbehandling för rader som inleds med t ex: @param @return @version 3 1

Bilder i Java Bilder kan visas på 2 olika sätt i Java: 1. javax.swing.imageicon En klass med 8 olika konstruktorer kt bl a ImageIcon(String filnamn) 2. java.awt.image En klass med enbart en konstruktor som inte tar emot några parametrar??? 4 Bilder med ImageIcon //Skapa en instans ImageIcon ikon = new ImageIcon(bild.gif); //Kombinera text och bild JLabel minetikett = new JLabel( Lite text som beskriver bilden", ikon, JLabel.CENTER); //Lägg in enbart en bild Jlabel minandraetikett = new JLabel(ikon); 5 Bilder med java.awt.image Klassen java.awt.image som enbart har konstruktorn Image() En bild kan ändå skapas på flera olika sätt t ex tk = Toolkit.getDefaultToolkit(); Image image = tk.getimage( bild.gif")); Bilden kan sedan ritas ut genom: public void paintcomponent(graphics g){ g.drawimage(image, x, y, this); 6 2

7 import java.awt.*; import javax.swing.*; public class F8_exempel1 extends JFrame { private JPanel panel; private TextYta ty; private Image bild; 8 public F8_exempel1(){ setbackground(new Color(204, 0, 0)); setsize(375, 225); Toolkit tk = Toolkit.getDefaultToolkit(); bild = tk.getimage("bild.jpg"); ty = new TextYta(bild); add(borderlayout.center, ty); 9 3

setvisible(true); setdefaultcloseoperation(exit_on_close); }//konstruktor public static void main(string[] args){ new F8_exempel1(); } }//F8_exempel1 10 class TextYta extends JPanel{ private Image bild; private String text; private Font minfont; private FontMetrics fm; private Dimension dim; private int x, y; 11 public TextYta(Image bild){ this.setsize(375, 225); this.bild = bild; minfont = new Font("TimesRoman", java.awt.font.bold, 52); text = new String("Hej ITKP1!"); } 12 4

public void paintcomponent(graphics g){ super.paintcomponent(g); g.drawimage(bild, 0, 0, this); g.setcolor(new Color(70, 70, 70)); g.setfont(minfont); fm = g.getfontmetrics(minfont); dim = getsize(); int swidth = fm.stringwidth(text); 13 x = (dim.width/2) - (swidth/2); y = 160; g.drawstring(text, x, y); }//paintcomponent }//TextYta 14 Paus 5

Applets Små Javaprogram för Internet Startas genom en HTML-fil I en webbläsare, eller genom PROMPT:\> appletviewer fil.html HTML-filen har en applet- eller object-tagg: <applet code = HuvudKlass.class > Problem med applets </applet> 16 Applets Några metoder i klassen java.applet.applet init() //motsvarighet till en konstruktor start() //körs varje gång webbsidan startas stop() //körs varje gång g webbsidan avslutas destroy() //motsvarighet till en destruktor init() är den metod som används mest Om ni vill så får ni lösa inlämningsuppgiften som en applet 17 Ljud i Java applets Interfacet java.applet.audioclip Beskriver de tre metoder som behövs för att hantera ljud i applets (och applikationer): AudioClip aclip = Applet.newAudioClip(sökväg + filnamn); aclip.play(); aclip.loop(); aclip.stop(); 18 6

Ljud i Java-applikationer Det går att hitta exempel på applikationer som spelar upp ljud m h a AudioClip Ja, det fungerar också. Men bara i ver < 1.5 Den som vill spela upp ljud i version 1.5 kan själv läsa mera om hur man gör på: http://www.javaworld.com/javaworld/ javatips/jw-javatip24.html 19 Kodexempel2 Ljud i Java import sun.audio.*; import java.io.*; public class F8_exempel2 { public static void main(string[] args){ try{ InputStream instream = new FileInputStream("ecuador.wav"); 20 Kodexempel2 Ljud i Java AudioStream astream = new AudioStream(instream); AudioPlayer.player.start(astream); }catch(ioexception ioe){ System.out.println("Det gick inte... } }//main }//F8_exempel2 21 7

javax.swing.boxlayout Ibland stöter man på problem med de klaser som finns för layout i AWT GridBagLayout kan också kännas komplex och lite omständlig för vissa lösningar. I Swing-paketet finns BoxLayout Lite som att jobba med lådor uppbyggda av <div> och <span> i XHTML 22 javax.swing.boxlayout Skapa utrymme mellan olika komponenter med hjälp av det inbyggda elastiska klistret 23 Box är en hjälpklass med användbara metoder javax.swing.boxlayout Lägg ut lådorna vertikalt eller horisontellt: panel.setlayout(new BoxLayout( panel, BoxLayout.Y_AXIS)); panel.setlayout(new BoxLayout( panel, BoxLayout.X_AXIS)); 24 8

Exempel3 Bilder i BoxLayout FlowLayout, BoxLayout och JSplitPane, 3 olika sätt för att göra samma sak? Ta en titt på Kodexempel 3: 25 Tack för i år! Det blir fler föreläsningar när vi ses igen till våren på ITKP2! 26 9