Frames, menyer och GUI-program

Storlek: px
Starta visningen från sidan:

Download "Frames, menyer och GUI-program"

Transkript

1 15 Frames, menyer och GUI-program Frames En frame-klass Om konstruktorer - igen Funktionella fönster Menyer Popupmenyer GUI-applikationer Dialogrutor Printerutskrift

2 Kap 15: Sid 2 Frames Redan i kapitel 3 skapade vi en Frame Dags att återuppta bekantskapen! En frame är ett fönster med en titellist och en ram. Vi kan använda frames som komponenter i applets. Mest används de för att bygga fristående applikationer. Vi ska se på båda tillämpningarna. Vi börjar med en applet med en knapp. När man trycker på knappen ska en frame visas. import java.applet.*; import java.awt.event.*; public class FrameTest extends Applet implements ActionListener Frame f; Button b; Label l; public void init() b = new Button("Visa en frame!"); add(b); b.addactionlistener(this); public void actionperformed(actionevent e) f = new Frame(); f.settitle("min första frame"); l=new Label("Detta är en frame!"); f.add(l); f.setsize(300,200); f.setresizable(true); f.setvisible(true); När man trycker på knappen instansieras ett frame-objekt ur klassen Frame. Med settitle() kan man bestämma vad som ska stå i titellisten. På raden därefter adderas labeln till vår frame. Man måste alltid sätta storlek på en frame (sker med setsize() ) Vår frame får storleken 200x300 pixels. Vi kommer att kunna ändra storlek på den ( setresizable(true) ) Slutligen görs komponenten synlig med setvisible(true) Övning: Visa en Frame Provkör ovanstående applet. Tryck på knappen skapa en frame. Flytta på den. Tryck igen skapa fler frames. Testa att ändra storlek (fungerar) Testa att minimera, maximera, stänga (allt fungerar utom stängning) När du stänger appleten stängs alla öppnade frames. Övning: Hur ärver klassen Frame? Gå in i dokumentationen och studera hur klassen Frame ärver. ( Frame ärver från Window som ärver från Container som ärver från Component som ärver från Object ) När vi i fortsättningen använder det svenska ordet fönster avses frame (och inte window ) om inget annat anges. Java15_FrameMenyGUI.doc Ove Lundgren 2

3 Kap 15: Sid 3 En frame-klass Vi gör en variant på förra övningen. Denna gång ska vi skapa en egen, fristående, frame-klass, en klass som ärver från Frame, alltså. Övning: En mycket enkel frame Skriv in, spara och kompilera filen MinFrame.java class MinFrame extends Frame Skriv in, spara och kompilera filen VisaFrame.java import java.applet.*; import java.awt.event.*; public class VisaFrame extends Applet implements ActionListener MinFrame f; //Här deklareras ett objekt av typ MinFrame Button b; public void init() b = new Button("Tryck här"); add(b); b.addactionlistener(this); public void actionperformed(actionevent e) if (f!=null) // Här testas om en frame redan är öpppen f.setvisible(false); // Om den är det så stängs den! f.dispose(); // Du kan bara öppna ett fönster åt gången // i den här versionen! f = new MinFrame(); // Här instansieras ett objekt av typen f.setsize(200,200); // MinFrame f.setlocation(200,200); // Bestämmer plats på skärmen f.setresizable(true); f.setvisible(true); Skriv också en VisaFrame.html -fil och provkör. Vi får ungefär samma funktion som i förra övningen. Den här gången kan vi dock bara öppna en frame åt gången på grund av testen som görs i VisaFrame. Fönstret hamnar med sitt övre vänstra hörn i skärmposition (200,200) Det går fortfarande inte att stänga fönstret. För att göra det måste vi skriva lite kod. Nu när vi har skapat en egen frame-klass har vi alla möjligheter att bygga in önskad funktionalitet i vår frame! I nästa övning ska vi se till att vår frame går att stänga. Dessutom vill vi ha en text i titellisten Java15_FrameMenyGUI.doc Ove Lundgren 3

4 Kap 15: Sid 4 Övning: Stäng fönstret! Skriv om klassen MinFrame enligt nedan. Läs kommentarerna! import java.awt.event.*; class MinFrame extends Frame implements WindowListener public MinFrame() // konstruktor settitle("min Frame"); addwindowlistener(this); WindowListener är ett gränssnitt som gör att vi kan implementera metoderna (händelsehanterarna) som har med fönsterhantering att göra. Vår frame kommer att få titeln Min Frame Här klistar vi även på en fönsterlyssnare. public void windowclosing(windowevent e) setvisible(false); dispose(); public void windowclosed(windowevent e) public void windowopened(windowevent e) public void windowiconified(windowevent e) public void windowdeiconified(windowevent e) public void windowactivated(windowevent e) public void windowdeactivated(windowevent e) Anropas när fönstret stängs Vi måste släpa på alla metoderna som gränssnittet hanterar även om vi inte använder dem! Spara filen MinFrame.java. Kompilera. Kör VisaFrame och klicka på knappen. Ett fönster öppnas. Fönstret har en titeltext och, framför allt, fönstret går att stänga! Som du ser är det många metoder som ska vara med i koden när vi implementerar gränssnittet WindowListener. Kommer du ihåg vad en adapterklass är? (Om inte: Repetera avsnittet om adapterklasser i kapitel 10 ) Naturligtvis finns det en adapterklass för metoderna i gränssnittet WindowListener. Adapterklassen heter WindowAdapter Om vi använder adapterklasser kan klassen ovan skrivas så här: import java.awt.event.*; class MinFrame extends Frame public MinFrame() // konstruktor settitle("min Frame"); addwindowlistener(new FonsterLyssnare() ); class FonsterLyssnare extends WindowAdapter public void windowclosing(windowevent e) setvisible(false); dispose(); Inre klass som ärver WindowAdapter Ändra så att MinFrame använder adapterklassen WindowAdapter. Spara kompilera kör! Java15_FrameMenyGUI.doc Ove Lundgren 4

5 Kap 15: Sid 5 Välj själv om du vill implementera WindowListener (och ta med alla metoderna i koden) eller om du vill arbeta med inre klasser som ärver adapterklassen WindowAdapter. (I detta kapitel används genomgående adapterklassen för fönsterhändelserna) Övning: Två konstruktorer Ändra i MinFrame så att klassen får dessa båda konstruktorer: public MinFrame() // Samma konstruktor som förut // Inget argument settitle("min Frame"); addwindowlistener(new FonsterLyssnare()); public MinFrame(String s, Color c) // Ny konstruktor: // Ett argument av typen String settitle(s); // och ett av typen Color setbackground(c); addwindowlistener(new FonsterLyssnare()); Spara MinFrame.java och kompilera. I VisaFrame, i actionperformed, byt ut f = new MinFrame() mot f = new MinFrame("Heja Åmål", Color.blue); Nu kommer den andra, den nya, konstruktorn att användas eftersom den "matchar" instansieringssatsen: Spara - Kompilera -Testa! Fönstret visas. Den sträng som var argument vid instansieringen står på titellisten. Java15_FrameMenyGUI.doc Ove Lundgren 5

6 Kap 15: Sid 6 Funktionella fönster Nu ska vi bygga in lite funktionalitet i ett fönster. Vi lägger in tre knappar. Genom att trycka på dem kan vi ändra fönstrets bakgrundsfärg. Observera att frames automatiskt har borderlayout! Övning: Ett fönster med knappar Skriv koden. Spara som KnappFrame.java. Kompilera. import java.awt.event.*; class KnappFrame extends Frame implements ActionListener Button b1, b2, b3; public KnappFrame() // konstruktorn! settitle("min Frame"); b1=new Button("Rött"); b1.addactionlistener(this); b2=new Button("Grönt"); b2.addactionlistener(this); b3=new Button("Blått"); b3.addactionlistener(this); add("west",b1);add("south",b2);add("east",b3); addwindowlistener(new FonsterLyssnare() ); public void actionperformed(actionevent e) if (e.getsource()==b1) setbackground(color.red); else if (e.getsource()==b2) setbackground(color.green); else if (e.getsource()==b3) setbackground(color.blue); repaint(); class FonsterLyssnare extends WindowAdapter public void windowclosing(windowevent e) setvisible(false); dispose(); Gå igenom koden noga. (Du bör känna igen allt.) Ändra i VisaFrame.java så att fönsterobjekt av typ KnappFrame skapas och visas då man trycker på knappen. När du trycker på knapparna i fönstret ändras bakgrundsfärgen Java15_FrameMenyGUI.doc Ove Lundgren 6

7 Kap 15: Sid 7 Menyer I frames kan man använda menyer Övning: Menyer Skriv in filen nedan. Spara den som MenyFrame.java och kompilera. Ändra så att VisaFrame kan visa fönstret MenyFrame. Spara - kompilera - provkör. Läs kommentarerna efter koden. import java.awt.event.*; class MenyFrame extends Frame implements ActionListener MenuBar mbar; Menu fargmeny; MenuItem rod, gro, bla, gul; Menu svmeny; MenuItem sva, vit, gra; public MenyFrame() // konstruktorn settitle("en frame med menyer"); mbar = new MenuBar(); fargmeny = new Menu("Färger"); rod = new MenuItem("Rött"); fargmeny.add(rod); rod.addactionlistener(this); gro = new MenuItem("Grönt"); fargmeny.add(gro); gro.addactionlistener(this); bla = new MenuItem("Blått"); fargmeny.add(bla); bla.addactionlistener(this); gul = new MenuItem("Gult"); fargmeny.add(gul); gul.addactionlistener(this); mbar.add(fargmeny); svmeny = new Menu("SvartVitt"); sva = new MenuItem("Svart"); svmeny.add(sva); sva.addactionlistener(this); vit = new MenuItem("Vitt"); svmeny.add(vit); vit.addactionlistener(this); gra = new MenuItem("Grått"); svmeny.add(gra); gra.addactionlistener(this); mbar.add(svmeny); this.setmenubar(mbar); addwindowlistener(new FonsterLyssnare() ); public void actionperformed(actionevent e) if (e.getsource()==rod) setbackground(color.red); else if (e.getsource()==gro)setbackground(color.green); else if (e.getsource()==bla) setbackground(color.blue); else if (e.getsource()==gul) setbackground(color.yellow); else if (e.getsource()==sva)setbackground(color.black); else if (e.getsource()==vit) setbackground(color.white); else if (e.getsource()==gra) setbackground(color.gray); repaint(); class FonsterLyssnare extends WindowAdapter public void windowclosing(windowevent e) setvisible(false); dispose(); Java15_FrameMenyGUI.doc Ove Lundgren 7

8 Kap 15: Sid 8 Högst upp i fönstret ser vi nu en "menylist" (MenuBar) På denna finns två menyer (Menu) med texterna "Färger" respektive "SvartVitt". Den vänstra menyn har fyra menyalternativ (MenuItem) den högra har tre. MenuBar Menu Menu Item Vår menylist (MenuBar) refererar vi till som mbar. Menyerna kallar vi fargmeny respektive svmeny. fargmeny har menyalternativen rod, gro, bla, gul. svmeny har menyalternativen sva, vit, gra I konstruktorn instansieras objekten: Menylisten: Första menyn: mbar = new MenuBar(); fargmeny = new Menu("Färger"); De alternativ som hör till denna meny instansieras, adderas till menyn och förses med en lyssnare: rod = new MenuItem("Rött"); fargmeny.add(rod); rod.addactionlistener(this); (på samma sätt för övriga alternativ ) Sedan adderas den "färdigkomponerade" menyn till menylisten: mbar.add(fargmeny); Andra menyn (svmeny) och dess objekt behandlas på motsvarande sätt Slutligen måste den kompletta menylisten anknytas till vår frame och det sker med: this.setmenubar(mbar); Händelsehanteraren som används vid menyhantering är actionperformed(avtionevent e) (samma som för Buttons alltså) så vi använder addactionlistener när vi adderar lyssnare. Metoden actionperformed() i denna frame är mycket lik motsvarande metod i föregående övning (den med knappar) Java15_FrameMenyGUI.doc Ove Lundgren 8

9 Kap 15: Sid 9 Övning: Undermenyer. Vi vill skapa en undermeny under alternativet "Grått", så här: Det är enkelt: Vi definierar gra som en Menu och skapar tre nya MenuItems: ljugra, melgra, morgra De nya menyalternativen adderas förstås till menyn gra. När menyn gra är färdigkomponerad adderas den till menyn svmeny Gör alltså tillägg och ändringar enligt följande: Menu svmeny; MenuItem sva, vit; Menu gra; MenuItem ljugra, melgra, morgra; svmeny = new Menu("SvartVitt"); sva = new MenuItem("Svart"); svmeny.add(sva); sva.addactionlistener(this); vit = new MenuItem("Vitt"); svmeny.add(vit); vit.addactionlistener(this); gra = new Menu("Grått"); ljugra = new MenuItem("Ljusgrått"); gra.add(ljugra); ljugra.addactionlistener(this); melgra = new MenuItem("Mellangrått"); gra.add(melgra); melgra.addactionlistener(this); morgra = new MenuItem("Mörkgrått"); gra.add(morgra); morgra.addactionlistener(this); svmeny.add(gra); mbar.add(svmeny); Spara, kompilera och kör VisaFrame. Java15_FrameMenyGUI.doc Ove Lundgren 9

10 Kap 15: Sid 10 Popupmenyer Popupmenyer fungerar som vanliga menyer men man behöver ju inte någon MenuBar. Popupmenyn adderas direkt till fönstret. Så måste man förstås ha en muslyssnare som känner av om man klickar Testa gärna detta fönster. (Provkör det med VisaFrame.) import java.awt.event.*; class PopupMenyFrame extends Frame implements ActionListener, MouseListener PopupMenu fargmeny; MenuItem rod, gro, bla, gul; public PopupMenyFrame() // konstruktorn settitle("en frame med popupmeny"); fargmeny = new PopupMenu("Färger"); rod = new MenuItem("Rött"); fargmeny.add(rod); rod.addactionlistener(this); gro = new MenuItem("Grönt"); fargmeny.add(gro); gro.addactionlistener(this); bla = new MenuItem("Blått"); fargmeny.add(bla); bla.addactionlistener(this); gul = new MenuItem("Gult"); fargmeny.add(gul); gul.addactionlistener(this); this.add(fargmeny); addwindowlistener(new FonsterLyssnare() ); addmouselistener(this); public void actionperformed(actionevent e) if (e.getsource()==rod) setbackground(color.red); else if (e.getsource()==gro)setbackground(color.green); else if (e.getsource()==bla) setbackground(color.blue); else if (e.getsource()==gul) setbackground(color.yellow); repaint(); class FonsterLyssnare extends WindowAdapter public void windowclosing(windowevent e) setvisible(false); dispose(); public void mousepressed(mouseevent e) if(e.ismetadown() ) // kollar om höger musknapp tryckts fargmeny.show(this,e.getx(), e.gety() ); public void mousereleased(mouseevent e) public void mouseclicked(mouseevent e) public void mouseentered(mouseevent e) public void mouseexited(mouseevent e) Observera hur man känner av höger musknapp Java15_FrameMenyGUI.doc Ove Lundgren 10

11 Kap 15: Sid 11 GUI-applikationer Hittills har vi mest arbetat med applets, och ibland, då och då, med fristående konsolprogarm. Det är hög tid att skapa vår första GUI-applikation, det vill säga en fristående java-applikation med frames! (GUI = Graphic User Interface ) Redan i kapitel 3 visade vi hur det går till: Man skriver ett javaprogram (som innehåller metoden main) och så låter vi main instansiera ett frame-objekt och visa det. Övning: En GUI-applikation Vi vill visa vår frame KnappFrame som ett fristående fönster, som en egen GUI-applikation: Skriv nedanstående lilla fil. Spara den som StartaFrame.java Spara den i samma mapp som filerna KnappFrame.java och KnappFrame.class Kompilera. class StartaFrame public static void main( String args[]) KnappFrame f; f = new KnappFrame(); // Instansierar ett objekt av typ KnappFrame f.setsize(400,300); // Sätter storlek på fönstret f.setlocation(200,200); // Fönstrets placering f.setresizable(true); // Tillåter användaren att ändra storlek f.setvisible(true); // Visar fönstret I KnappFrame.java måste vi göra ett tillägg. Eftersom vår frame ska leva sitt eget liv måste vi se till att den stängs ordentligt (det skötte appleten förut) Gör tillägget System.exit(0); i metoden windowclosing( ), så här: public void windowclosing(windowevent e) setvisible(false); dispose(); System.exit(0); // stänger applikationen helt Spara KnappFrame.java och kompilera. Exekvera nu StartaFrame (med kommandot java) KnappFrame visas som en fristående applikation! Java15_FrameMenyGUI.doc Ove Lundgren 11

12 Kap 15: Sid 12 Vi skapade (av pedagogiska skäl) en särskild class-fil som endast innehöll en main-metod. Det är inte nödvändigt att skapa en särskild klass för main-metoden. Vi kan lika gärna skriva main-metoden direkt i frame-klassen! När frame-klassen exekveras startar den med att leta upp main-metoden, och när main-metoden utförs så instansieras ett objekt ur frame-klassen. (Klassen instansierar alltså objekt ur sig själv!) Övning: GUI-applikationen - igen Markera och kopiera main-metoden i StartaFrame-klassen Klistra in den i KnappFrame-klassen. Det spelar ingen roll var man placerar den. (Man brukar oftast lägga den först eller sist.) Så här kan det se ut: import java.awt.event.*; class KnappFrame extends Frame implements ActionListener public static void main( String args[]) KnappFrame f; f = new KnappFrame(); f.setsize(400,300); f.setlocation(200,200); f.setresizable(true); f.setvisible(true); Button b1, b2, b3; public KnappFrame() // konstruktorn! settitle("min Frame"); b1=new Button("Rött"); b1.addactionlistener(this); b2=new Button("Grönt"); b2.addactionlistener(this); b3=new Button("Blått"); b3.addactionlistener(this); add("west",b1);add("south",b2);add("east",b3); addwindowlistener(new FonsterLyssnare() ); och så vidare... Spara kompilera provkör! Övning: GUI-applikation med menyer Gör om MenyFrame till en fristående javaapplikation genom att tillfoga en main-metod. Kom ihåg att tillse att MenyFrame stängs ordentligt vid avslut. Java15_FrameMenyGUI.doc Ove Lundgren 12

13 Kap 15: Sid 13 Övning: Från applet till GUI-applikation Ta fram en gammal applet, Cirkel.java (Testa först att den fungerar!) Vi ska göra de ändringar som krävs för att appleten ska bli en fristående applikation. Vi kallar klassen CirkelApp. Den ska ärva från frame och implementera några lyssnare: public class CirkelApp extends Frame implements ActionListener Skriv klassens konstruktor: public CirkelApp() I denna: Välj (eventuellt) flowlayout: setlayout(new FlowLayout()); Associera fönsterlyssnaren till fönstret: addwindowlistener(new FonsterLyssnare() ); Kopiera satserna i init-metoden (och i eventuell start-metod) till konstruktorn och ta bort denna (dessa) metod(er). Lägg in en inre klass för att hantera fönstret: class FonsterLyssnare extends WindowAdapter public void windowclosing(windowevent e) setvisible(false); dispose(); System.exit(0); Lägg till en main-metod: public static void main( String args[]) CirkelApp f; f = new CirkelApp(); f.setsize(400,300); f.setresizable(true); // eventuellt f.setlocation(200,200); f.setvisible(true); Spara som CirkelApp.java Kompilera och provkör Den f d appleten uppträder nu som en fristående applikation Mer att tänka på: I applets som inte har händelsehantering: Kom ihåg import java.awt.event.*; Lägg satser som används vid dubbelbuffring (createimage och getgraphics) i windowopened() Satser i appletens stop- och destroy-metod lägger du först i windowclosing() och ta bort stop-och destroy-metoderna. Ljud och bild hanteras på lite annat sätt än i applets: Se nästa avsnitt! Övning: Applet till applikation Välj någon annan applet. Skriv om den som applikation. Java15_FrameMenyGUI.doc Ove Lundgren 13

14 Kap 15: Sid 14 Bild och ljud i applikationer Bild Gör så här för att visa en bild, som är lagrad på en fil, i en applikation: Deklarera en referens Image-objekt: Image bild; Denna sats skapar Image-objektet im och hämtar bilden från fil: im = Toolkit.getDefaultToolkit().getImage("minbild.gif"); Ljud Importera paketen sun.audio och java.io : import sun.audio.*; import java.io.*; Deklarera dessa objektreferenser: InputStream in; AudioStream as; Skapa ett FileInputStream-objektet, in (Öppna en inputstream till ljudfilen): try in = new FileInputStream("ljud.au"); catch(filenotfoundexception fnfe ) Skapa ett AudioStream-objekt, as, från in: try as = new AudioStream(in); catch(ioexception ioe) Ljudet spelas upp med: AudioPlayer.player.start(as); Ljudet stoppas med: AudioPlayer.player.stop(as); Om du vill ha ett kontinuerligt ljud: Deklarera även dessa objektreferenser: AudioData data ; ContinuousAudioDataStream cas; Lägg till satserna: try data = as.getdata(); catch(ioexception ioe) cas = new ContinuousAudioDataStream (data); Ljudet spelas upp med: Ljudet stoppas med: AudioPlayer.player.start(cas); AudioPlayer.player.stop(cas); ( Källa: Tips nummer 24 ) Java15_FrameMenyGUI.doc Ove Lundgren 14

15 Kap 15: Sid 15 Dialogrutor En dialogruta (objekt ur klassen Dialog ) är ett fönster utan ram men med titellist. Övning: Meddelanderuta Öppna en applikation, förslagsvis KnappFrame.java Lägg till ytterligare en knapp, b4: Button b1, b2, b3, b4; b4=new Button("Visa meddelande"); b4.addactionlistener(this); add("north",b4); Deklarera en dialogruta, d, samt en label, en knapp och en panel som ska finnas på dialogrutan: Dialog d; Label dlabel; Button dbutton; Panel dpanel; Instansiera objekten och addera dem till dialogrutan. Knappen ska dessutom få en lyssnare: d = new Dialog(this, "Meddelande", true); dpanel = new Panel(); dlabel = new Label("Detta är ett meddelande!"); dbutton=new Button("Stäng"); d.add("center", dpanel); dpanel.add(dlabel); dpanel.add(dbutton); dbutton.addactionlistener(this); Gör tilläg i actionperformed() så att de nya knapparna får respons: if (e.getsource()==b4 &&!d.isshowing() ) // knapp b4 öppnar såvida inte // dialogrutan redan visas d.setsize(200,100); d.setlocation(200,200); d.setvisible(true); if (e.getsource()==dbutton) // knapp dbutton på dialogrutan gör att // dialogrutan stängs d.setvisible(false); d.dispose(); Spara filen. kompilera och provkör. När du klicka knappen Visa meddelande visas dialogrutan. Försök att ändra fönstrets bakgrundsfärg medan dialogrutan visas. Det går inte. Denna dialogruta är modal. Det betyder att man måste stänga dialogrutan innan man kan påverka andra fönster. Dialogrutan instansierades med satsen d = new Dialog(this, "Meddelande", true); Första argumnetet ska vara ett frame-objekt, nämligen det fönster från vilket dialogrutan startas. Den andra argumentet är texten i dialogrutans titellist. Den tredje argumentet anger om dialogrutan ska vara modal eller ej. Ändra tredje argumentet från true till false. Spara. Kompilera. Provkör. Dialogrutan är nu icke-modal. I vårt exempel kan färgerna ändras medan dialogrutan visas Java15_FrameMenyGUI.doc Ove Lundgren 15

16 Kap 15: Sid 16 Printerutskrift Från en applikation kan vi få utskrift på printer. Här är ett testprogram. Läs kommentarer nedan import java.awt.event.*; class SkrivTest extends Frame implements ActionListener PrintJob pjobb; Graphics pg; Button b; public SkrivTest() settitle("skrivtest"); b = new Button("Utskrift"); add("south",b); b.addactionlistener(this); addwindowlistener(new FonsterLyssnare() ); public void paint(graphics g) g.setcolor(color.lightgray); g.fillrect(50,50,250,80); g.setfont( new Font("Helvetica",Font.BOLD,30) ); g.setcolor(color.red); g.drawstring("hallå Java",100,100); public void actionperformed(actionevent e) pjobb = this.gettoolkit().getprintjob(this,"utskrift",null); if(pjobb!=null) pg = pjobb.getgraphics(); if(pg!=null) pg.setcolor(color.lightgray); pg.fillrect(50,50,250,80); pg.setfont( new Font("Helvetica",Font.BOLD,30) ); pg.setcolor(color.red); pg.drawstring("hallå Java",100,100); pg.dispose(); pjobb.end(); class FonsterLyssnare extends WindowAdapter public void windowclosing(windowevent e) setvisible(false); dispose(); System.exit(0); public static void main(string[] args) SkrivTest f; f = new SkrivTest(); f.setsize(360,200); f.setresizable(false); f.setvisible(true); Java15_FrameMenyGUI.doc Ove Lundgren 16

17 Kap 15: Sid 17 För utskrift används ett objekt av klassen PrintJob Objekt av klassen Window (som ju Frame ärver ifrån) har en metod vid namn gettoolkit() Denna metod returnerar ett objekt av en klass som heter Toolkit. Ett Toolkit -objekt har en metod getprintjob(frame f, String s, Properties p) som returnerar ett PrintJob-objekt. getprintjob(f,s,p) har tre argument: f är aktuell Frame (i vårt fall this) s är en sträng, ett namn på printerjobbet p är ett objekt av typ Properties som kan ge utskriften vissa egenskaper. Vi sätter värdet null. PrintJob-objektet (som vi kallar pjobb) instansieras med satsen pjobb = this.gettoolkit().getprintjob(this,"utskrift",null); pjobb har ett grafiskt objekt (precis som applets,frames, images ) Med pg = pjobb.getgraphics(); får vi en referens(i vårt fall pg ) till pjobbs grafiska objekt. Sen kan vi beskriva vad som ska skrivas ut, i vårt exempel, bland annat: pg.setfont( new Font("Helvetica",Font.BOLD,30) ); pg.setcolor(color.red); pg.drawstring("hallå Java",100,100); (Samma teknink som när vi byggde upp spökbilder för dubbelbuffring, alltså ) Kom ihåg och pg.dispose(); pjobb.end(); Övning: Utskrift Testa ovanstående applikation Java15_FrameMenyGUI.doc Ove Lundgren 17

18 Kap 15: Sid 1 Del av klasshierarkien TextComponent Event CheckBox Panel Applet Objekt Component Container Window Frame Graphics Label Dialog FileDialog CheckboxGroup Button Image List Choice Java15_FrameMenyGUI.doc Ove Lundgren 1

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

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser? Programmeringsteknik och Matlab Övning 6 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

Händelsestyrda program

Händelsestyrda program JavaD- 1 Program- eller händelsestyrd exekvering Händelsestyrda program JavaD- 2 Programstyrd exekvering I ett traditionellt program bestämmer programmet när det är dags att läsa indata, programmets exekvering

Läs mer

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

Kort om klasser och objekt En introduktion till GUI-programmering i Java Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på

Läs mer

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

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h Antalet uppgifter : 2 (20p + 20p = 40 p) ) Lärare, jourhavande lärare :

Läs mer

Grafiska komponenter.

Grafiska komponenter. Grafiska komponenter. Kap J5-1 Grafiska användargränssnitt är det moderna alternativet till traditionell terminal-i/o. GUI-programmering bygger på en händelsestyrd flödeskontroll. I Java utförs GUI-programmeringen

Läs mer

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

Fortsättningskurs i programmering F 5. GUI händelsehantering - undantagshantering Hugo Quisbert 20130205 AWT. Paket för hantering av grafik Fortsättningskurs i programmering F 5 GUI händelsehantering - undantagshantering Hugo Quisbert 20130205 1 Abstract Window Toolkit Paket för hantering av grafik dvs skapa grafisk användargränssnitt java.awt

Läs mer

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

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - aug - 23 Tentamen i Objektorientering och Java Skrivtid 5 h Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - aug - 23 Tentamen i Objektorientering och Java Skrivtid 5 h Antalet uppgifter : 3 (15p + 20p + 5p = 40 p) Lärare, jourhavande lärare

Läs mer

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

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:

Läs mer

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

Föreläsning 15 (16) Historik (java.awt) Historik (javax.swing) Introduktion till Swing 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 nackdelar: Använder s.k. native code Stödjer endast komponenter

Läs mer

Applets med komponenter

Applets med komponenter 5 Applets med komponenter Knappar Om gränssnitt (interface) Händelser Måla om appletytan Etiketter och textrutor Förvandla strängar till tal Aritmetik Omvandla datatyper med cast Felhantering Kap 5: Sid

Läs mer

Laboration 15 Grafiskt användargränssnitt

Laboration 15 Grafiskt användargränssnitt Laboration 15 Grafiskt användargränssnitt Avsikten med denna laboration är att du ska träna på att skriva program som använder grafiskt användargränssnitt, dvs program som använder grafiska komponenter

Läs mer

Lab5 för prgmedcl04 Grafik

Lab5 för prgmedcl04 Grafik Lab5 för prgmedcl04 Grafik Viktigt läs detta först:den här labblydelsen är ganska lång, detta betyder inte att labben tar lång tid.en hel del av lydelsen är anvisning om hur man går tillväga för att kunna

Läs mer

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

Objektorienterad programmering i Java. Föreläsning 5 Kort om Java-Applets Objektorienterad programmering i Java Föreläsning 5 Kort om Java-Applets 1 Läsanvisningar Den här föreläsningen syftar till att ge en bild av vad en Java-Applet är och är ganska fristående från föregående

Läs mer

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

ITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter 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

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F9:1 OOP Objekt-orienterad programmering Föreläsning 9 Arv och klasshierarkier Polymorfism OOP F9:2 Djur - String namn - int vikt + String getnamn() + int getvikt() + void ökavikt(int x) Ko - int mjölkvolym

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet

Läs mer

5 Användargränssnitt. 5.1 AWT och Swing

5 Användargränssnitt. 5.1 AWT och Swing 5 Användargränssnitt 5.1 AWT och Swing AWT (Abstract Windowing Toolkit) är ett omfattande klassbibliotek för hantering av användargränssnitt i Java. Det är gjort så att applikationerna blir helt plattformsoberoende

Läs mer

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

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se 1 F18-20-2006 Denna vecka Måndag: Ett komplext problem Tisdag: Lektion. Kväll: Essäfrågan distribueras via webben. Dead-line onsdag 17 maj, kl 12.00. Inlämning elektroniskt och på papper. Onsdag: Grafik

Läs mer

Programstyrd / händelsestyrd

Programstyrd / händelsestyrd Programstyrd / händelsestyrd Jevent - 1 Händelsestyrda program Jevent - 2 Programstyrd exekvering I ett traditionellt program bestämmer programmet när det är dags att läsa indata, programmets exekvering

Läs mer

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

Malmö högskola 2007/2008 Teknik och samhälle Laboration Gui Avsikten med denna laboration är att du ska träna på att bygga grafiska användargränssnitt. Spara dina resultat i paketet laborationgui. Längst bak i laborationen finns fullständiga lösningar

Läs mer

Mer om grafiska komponenter. Händelsestyrda program

Mer om grafiska komponenter. Händelsestyrda program Layout Managers TDA143 I1 Programmerade system Föreläsning 14 (OH-bilder 10) Mer om grafiska komponenter. Händelsestyrda program Utplaceringen av komponenter i en behållare styrs med en Layout Manager.

Läs mer

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

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det

Läs mer

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

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 00 - juni - 17 Tentamen i Objektorientering och Java Skrivtid 5 h Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 00 - juni - 17 Tentamen i Objektorientering och Java Skrivtid 5 h Antalet uppgifter : 4 (12p+8p+12p+8p = 40p) Lärare, jourhavande lärare :

Läs mer

Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08

Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Programmering A C# VT 2010 Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Innehåll Hjälp och referenser... 3 Kap 1 Introduktion... 3 Steg för steg... 3 Kapitel 2 Variabler...

Läs mer

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

ITK:P1 Föreläsning 8. Verktyget Javadoc. Kommentarer för Javadoc. Multimedia för spelkonstruktion 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

Läs mer

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

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel Lösningar till Fiktiv Tentamen på kursen 2D4135 Objektorienterad programmering, design och analys med Java vt2004 Teoridel T1) (4p) Förklara kort följande grundläggande begrepp inom objektorienterad programmering:

Läs mer

Lektion Händelsehanterare

Lektion Händelsehanterare Lektion Händelsehanterare Händelsehanterare kallas även lyssnare. En lyssnare har som uppgift att ta hand om olika händelser som kan inträffa. För att lyssnaren skall reagera på händelser måste den registreras

Läs mer

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tid: 2:a september 200, klockan 8:30-12:30. Plats: V Ansvarig lärare: Katarina Blom, tel 772 10 0. Läraren besöker tentamen kl 9:30

Läs mer

Klasshierarkier. Klasser kan byggas på redan definierade klasser

Klasshierarkier. Klasser kan byggas på redan definierade klasser Klasshierarkier Klasser kan byggas på redan definierade klasser på två sätt: Klassobjekt används som dataattribut när en ny klass beskrivs. Exempel: klassen partikel består av ett antal attribut av typen

Läs mer

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

Föreläsnings 11 - GUI, Händelsestyrda program, MVC Föreläsnings 11 - GUI, Händelsestyrda program, MVC Josef Svenningsson Tisdag 20/11 Boken Denna föreläsning går igenom följande sektioner i boken: 10.1 och 10.2 11.1 Notera att kapitel 11 inte finns i boken

Läs mer

Övningar Dag 2 En första klass

Övningar Dag 2 En första klass Kurs i C++ Sid 1 (5) Övningar Dag 2 En första klass Denna övning går ut på att steg för steg bygga upp en klass och skapa objekt. Vi kommer att utgå från en sammansatt datatyp i en struct och parallellt

Läs mer

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

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 5 Innehåll Subklasser och arv Inledning till grafik (JFrame och JPanel).

Läs mer

Rita Egna Bilder, Timer

Rita Egna Bilder, Timer Rita Egna Bilder, Timer Josef Svenningsson November 27, 2012 Grafik Varje gång ett fönster behöver ritas om, pga av att det flyttas eller varit övertäckt, anropas automatiskt en metod som har namnet paintcomponent.

Läs mer

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tid: Onsdagen 15 december 2004, 8:30 till 13:30 Plats: M Ansvarig lärare: Katarina Blom, tel 772 10 60. Läraren besöker tentamen kl

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public

Läs mer

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

Föreläsning 14: Grafik & mera händelsehantering TDA 545: Objektorienterad programmering Föreläsning 14: Grafik & mera händelsehantering Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag Idag: grafik läs kap 17 Viktigt i denna föreläsning: att rita

Läs mer

Konstruktion av klasser med klasser

Konstruktion av klasser med klasser Konstruktion av klasser med klasser Klasser kan byggas på redan denierade klasser genom att klassobjekt används som dataattribut när en ny klass beskrivs. Exempel: Klassen PairOfDice har två attribut attribut

Läs mer

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-01-10 Skrivtid: 8.00 13.00 Hjälpmedel: Java-bok Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02 Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02 Denna laboration är frivillig och syftar till att låta dig lära mer om grafik i java. Labben är ganska grundlig och går igenom vad du skall

Läs mer

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

Två designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011) Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Innehåll Föreläsning 8 Två designmönster, MVC och Observer/Observable. Designrekommendation

Läs mer

Tentamen i Objektorienterad programmering

Tentamen i Objektorienterad programmering CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Lördagen 12 mars 2011, 8.30 12.30. Jourhavande lärare: Björn von Sydow, tel 0762/981014. Inga hjälpmedel. Lösningar

Läs mer

PROG2 Tenta 2013-06-07 Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

PROG2 Tenta 2013-06-07 Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2 DSV SU/KTH sid 1 (6) PROG2 VT13 PROG2 Tenta 2013-06-07 Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2 Tentan består av tre uppgifter. Max poäng är 38. För betyget E (godkänd) krävs minst

Läs mer

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

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015 Objektorienterad Programkonstruktion Föreläsning 3 9 nov 2015 Kursnämnd Namn kommer... UML: Klassdiagram UML: Relationer Ärver från superklass Implementerar gränssnitt Dubbelriktad eller oriktad relation

Läs mer

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.

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. Arv och polymorfi Arv och polymorfi är två centrala begrepp i objektorientering. Arvsmekanismen innebär att vi kan skapa nya klasser utifrån redan existerande klasser. Man gör detta med hjälp av nyckelordet

Läs mer

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

Föreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag Föreläsning 12 Föreläsning 12 Rörliga figurer Klassen Timer Undantag Något om applets Rörliga appletsfigurer Klassen Timer Undantag Något om applets Klassen javax.swing.timer I Swing finns en klass Timer

Läs mer

Objektsamlingar i Java

Objektsamlingar i Java 1 (6) Objektsamlingar i Java Objektorienterad programmering 3 Syfte Att ge träning i att använda objektsamlingar i Java. Mål Efter övningen skall du kunna använda objektsamlingsklasserna ArrayList och

Läs mer

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

Föreläsning 3: Händelsestyrda program och användargränssnitt (2 september 2015 F3.1 ) Föreläsning 3: Händelsestyrda program och användargränssnitt Idag Från sekventiella till händelsestyrda program Lyssnare Kontroller Layout för ordning av kontroller (2 september

Läs mer

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

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Grafiskt användargränssnitt, Swing Layout och komponenter Göra

Läs mer

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

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

Grundläggande programmering med C# 7,5 högskolepoäng

Grundläggande programmering med C# 7,5 högskolepoäng Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)

Läs mer

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) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna MER Java Foundation Classes (JFC) Swing Swing Många klasser Vettigt att lära sig dem utantill - Tror inte det -... men det kan vara bra att ha en liten överblick över vad som finns - Idag (och med fortsättning

Läs mer

Lite logik. Kap 6: Sid 2

Lite logik. Kap 6: Sid 2 6 Loopar och val Lite logik Val mellan två alternativ Val mellan flera alternativ Sammansatta villkor Boolska variabler Jämför strängar While-loopar Do-loopar For-loopar Kortformer Kap 6: Sid 2 Lite logik

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20.

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20. Umeå Universitet Datavetenskap Anders Broberg 130605 TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg VT-13 Datum: 13-06-05 Tid: kl 16.00-20.00 Namn: Personnummer:

Läs mer

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

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. 1 (8) DUGGA: Objektorienterade applikationer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt namn, personnummer och e-postadress på försättsbladet. Skriv rent dina svar.

Läs mer

Skapa ett register över din grupp/klass

Skapa ett register över din grupp/klass SYDSOL Handledning CW 2000-02-23 Skapa ett register över din grupp/klass Syfte: Att göra ett register i ClarisWorks och hantera olika informationer om en grupp/klass Pedagogens viktigaste uppgift är att

Läs mer

Objektorienterad programmering D2

Objektorienterad programmering D2 Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste

Läs mer

Laboration 4: Game of Life

Laboration 4: Game of Life Laboration 4: Game of Life Programmerade system I1 Bakgrund: I denna laboration ska vi ägna oss åt Game of Life, vilket är en mycket enkel modell av en population organismer som kan leva, dö och fortplanta

Läs mer

Vad är ett Framework? 2203$ ) UHOlVQLQJ. Hollywood. Frameworks (FW) Frameworks. Konstruktion av fönster, gränssnitt och användning av grafik i Java

Vad är ett Framework? 2203$ ) UHOlVQLQJ. Hollywood. Frameworks (FW) Frameworks. Konstruktion av fönster, gränssnitt och användning av grafik i Java 2203$ ) UHOlVQLQJ Frameworks. Konstruktion av fönster, gränssnitt och användning av grafik i Java Innehåll, kort om: Frameworks Grafik med främst AWT Grafiska interaktiva applikationer Händelsehantering

Läs mer

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

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Föreläsning 5 (6) Metoder Metoder Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Metoder Deklarera public void setnamn(string n) Åtkomstmodifierare Returtyp

Läs mer

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? 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 MER Java Foundation Classes (JFC) Swing Swing Många klasser" Vettigt att lära sig dem utantill" - Tror inte det" -... men det kan vara bra att ha en liten överblick över vad som finns" - Idag (och med

Läs mer

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

Programmeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt Programmeringsteknik II - HT18 Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt 18-09-28 1 Förra gången: Arv och klasshierarkier Vi såg hur

Läs mer

Projekt 2 XL. Observer-mönstret

Projekt 2 XL. Observer-mönstret Projekt 2 XL Objektorienterad modellering och diskreta strukturer Inför nästa projekt Lennart Andersson Reviderad 2011 10 24 2011 OMD 2011 F15-1 Schema designmöten OMD 2011 F15-2 Observer-mönstret 2 och

Läs mer

Klasshierarkier - repetition

Klasshierarkier - repetition Klasshierarkier - repetition Klasser kan byggas på redan denierade klasser, egna och/eller färdigskrivna, genom: I att klassobjekt används som attribut (instansvariabler): har-relation. Exempel: traksystemet

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F16:1 OOP Objekt-orienterad programmering Föreläsning 16 Grafiska användargränssnitt, GUI Ytor Komponenter Layout-managers Lyssnare GUI - Graphical User Interface OOP F16:2 Man skapar en yta (ett fönster)

Läs mer

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

Modelsvar för Tentamen för Objektorienterad programvaruutveckling, TDA545 Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Magnus Myréen Modelsvar för Tentamen för Objektorienterad programvaruutveckling,

Läs mer

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

Föreläsning 13: Swing (GUI), händelser, timer TDA 545: Objektorienterad programmering Föreläsning 13: Swing (GUI), händelser, timer GUI = graphical user interface Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag Idag: grafiska gränssnitt; läs kap

Läs mer

Styra olika typer av objekt som animering, video, ljud och Flashfilm

Styra olika typer av objekt som animering, video, ljud och Flashfilm Grunder och Filmklippsobjekt med animering Vi vill kunna visa olika typer av mediaobjekt i en och samma Flashfilm. Vi börjar med att titta på hur man kan visa och köra en animering samt stoppa och dölja

Läs mer

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

Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling Fulltentamen vitsord: 3=28p, 4=38p, 5= 48p, max 60p. Max 30p i denna halvtentamen Hjälpmedel:

Läs mer

Labbinstruktioner för Java/Swing

Labbinstruktioner för Java/Swing Labbinstruktioner för Java/Swing Grafik- och interaktionsprogrammering 2008 Martin Berglund Allmänt Dessa instruktioner är på intet sett den enda möjliga lösningen på labben, tvärtom finns

Läs mer

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

Repetitionsföreläsning 2: Quiz & problemlösning med swing Inget nytt material. TDA 545: Objektorienterad programmering Repetitionsföreläsning 2: Quiz & problemlösning med swing Inget nytt material. Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag En quiz! tinyurl.com/tda545quiz

Läs mer

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

ITK:P1 Lektion 4. Lektion 4. Lektion 4. Att implementera en spelidé i Java. DSV Peter Mozelius ITK:P1 Att implementera en spelidé i Java DSV Peter Mozelius import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Lektion4 extends JFrame implements ActionListener { final int

Läs mer

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14. Tentamen 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.00, sal E33 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel

Läs mer

Omentamen FYTA11 Javaprogrammering

Omentamen FYTA11 Javaprogrammering Lunds universitet FYTA11 Institutionen för Teoretisk Fysik HT 08 Omentamen FYTA11 Javaprogrammering Onsdag 4:e februari 2009, 13:00 17:00 Instruktioner Inga hjälpmedel är tillåtna. Behandla högst en uppgift

Läs mer

FactoryCast HMI. Premium & Quantum PLC. Applets 2004-10-28

FactoryCast HMI. Premium & Quantum PLC. Applets 2004-10-28 FactoryCast HMI Premium & Quantum PLC Applets 2004-10-28 INNEHÅLLSFÖRTECKNING 1 OM DETTA DOKUMENT...3 2 FÖRUTSÄTTNINGAR...3 3 PROJEKT I J++...4 3.1 LÄSA PLC-VARIABLER...4 3.1.1 Gränssnittet...4 3.1.2 Upprätta

Läs mer

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

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson Lösningar till TENTAMEN I IXC003 SYSTEMUTVECKLING MED INTERNET/INTRANET, del 1 (5p) för IT3 och INTERNETPROGRAMMERING MED JAVA

Läs mer

Programuppbyggnad från komponenter (en liten orientering)

Programuppbyggnad från komponenter (en liten orientering) Programuppbyggnad från komponenter (en liten orientering) Exempel från tre områden: grafiska användargränssnitt sparande på filer datasamlingsklasser Texten till labb 8 finns sist i häftet, den finns även

Läs mer

Objektorienterad programmering Föreläsning 15. Grafiska användargränssnitt (GUI Graphical User Interface)

Objektorienterad programmering Föreläsning 15. Grafiska användargränssnitt (GUI Graphical User Interface) Objektorienterad programmering Föreläsning 15 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webacademy.se Agenda Grafiska användargränssnitt (GUI Graphical User Interface) Standardklassen (Control)

Läs mer

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen 20150613, kl. 9.00-12.00

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen 20150613, kl. 9.00-12.00 Skolan för datavetenskap och kommunikation Objektorienterad Programkonstruktion, DD1346 FACIT Tentamen 20150613, kl. 9.00-12.00 Tillåtna hjälpmedel: Papper, penna och radergummi. Notera: Frågorna i del

Läs mer

Tentamen i Objektorienterad programmering

Tentamen i Objektorienterad programmering CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Fredagen 13 januari 2012, 14.00 18.00. Jourhavande lärare: Björn von Sydow, tel 0722/391401. Inga hjälpmedel. Lösningar

Läs mer

Fördjupad Java. Undantagshantering. Fel

Fördjupad Java. Undantagshantering. Fel Fördjupad Java 1 Undantagshantering Ett undantag (Exception) är ett objekt som påtalar en ovanlig eller felaktig situation i ett program. Undantag kastas av programmet och kan fångas och hanteras. Java

Läs mer

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)

Läs mer

Tentamen Objekt-orienterad programmering med Java, 1DL100 Sommarkurs och distanskurs

Tentamen Objekt-orienterad programmering med Java, 1DL100 Sommarkurs och distanskurs Tentamen 2006-0823 Objekt-orienterad programmering med Java, 1DL100 Sommarkurs och distanskurs Uppsala Universitet Instutitionen för informationsteknologi Avdelningen för datalogi Kursansvarig: Sven-Olof

Läs mer

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34 Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger

Läs mer

Att använda Java SE JDK 6

Att använda Java SE JDK 6 Att använda Java SE JDK 6 Programmeringsspråket Java är utvecklat av det amerikanska företaget Sun Microsystems. Sun erbjuder gratis en utvecklingsmiljö för java-programmering, Java 2 SE (Standard Edition).

Läs mer

Laboration 10 - NetBeans

Laboration 10 - NetBeans Laboration 10 - NetBeans Avsikten med laborationen är att du ska träna på att använda paket, att du ska packa några klassfiler i en jar-fil och slutligen använda innehållet i en jar-fil från en annan klass

Läs mer

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

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016 Objektorienterad Programkonstruktion Föreläsning 3 7 nov 2016 Klass/instans Med hjälp av nyckelordet static kan vi bestämma att en metod eller ett fält ska tillhöra själva klassen i stället för en specifik

Läs mer

Editering, Kompilering och Exekvering av Javaprogram

Editering, Kompilering och Exekvering av Javaprogram UMEÅ UNIVERSITET Institutionen för informatik B.1, Programmeringens grunder, 5 poäng Editering, Kompilering och Exekvering av Javaprogram Introduktion Syftet med kursmomentet Programmeringens grunder (B.1)

Läs mer

Tentamen , Grundläggande programmering i Java

Tentamen , Grundläggande programmering i Java Institutionen för informationsteknologi och medier Sid:1(3) Grundläggande programmering i Java Martin Kjellqvist Lösningsförslag, lösningsansatser Tentamen 2006-01-20, Grundläggande programmering i Java

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F16:1 OOP Objekt-orienterad programmering Föreläsning 16 Grafiska användargränssnitt, GUI Ytor Komponenter Layout-managers Lyssnare GUI - Graphical User Interface OOP F16:2 Man skapar en yta (ett fönster)

Läs mer

Tentamen FYTA11 Javaprogrammering

Tentamen FYTA11 Javaprogrammering Lunds universitet FYTA11 Institutionen för Teoretisk Fysik HT 08 Tentamen FYTA11 Javaprogrammering Fredag 9:e januari 2009, 09:00 13:00 Instruktioner Inga hjälpmedel är tillåtna. Behandla högst en uppgift

Läs mer

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2011 10 19, 8.00 13.00 Anvisningar: Denna tentamen består av fem uppgifter. Preliminärt ger uppgifterna

Läs mer

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

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Micael Karlsson Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Micael Karlsson TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2000-03-22, kl 14.00-18.00 Hjälpmedel: En lärobok

Läs mer

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

Fönstersystem. Objektorientering och händelsebaserad programmering. Applikation. Interaktionstoolkit. Händelsehanterare och grafiktoolkit Objektorientering och händelsebaserad programmering Gustav Taxén gustavt@nada.kth.se Fönstersystem Applikation Interaktionstoolkit Händelsehanterare och grafiktoolkit Operativsystem Hårdvara 1 Frameworks

Läs mer

JAVA Mer om klasser och objektorientering

JAVA Mer om klasser och objektorientering JAVA Mer om klasser och objektorientering Begreppet package - paket Package används när man t ex vill skapa ett eget bibliotek med klasser. Sen är det då meningen att man ska importera detta paket i det

Läs mer

Föreläsning 7. Träd och binära sökträd

Föreläsning 7. Träd och binära sökträd Föreläsning 7 Träd och binära sökträd Föreläsning 7 Träd Binära träd Binärt sökträd som ADT Implementering av binärt sökträd Travestera binärt sökträd Sökning Insättning/borttagning Läsanvisningar och

Läs mer

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

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten? Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

SI-pass 4. Johan Brook och Jesper Persson. 25 september 2012. Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

SI-pass 4. Johan Brook och Jesper Persson. 25 september 2012. Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner. SI-pass 4 Johan Brook och Jesper Persson 25 september 2012 1. Sant eller falskt? Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner. Interfaces i Java kan innehålla privata

Läs mer

2. Komma igång Skapa grupper och elever Skriv också ut sidan 13 så att eleverna har en snabbguide till programmet.

2. Komma igång Skapa grupper och elever Skriv också ut sidan 13 så att eleverna har en snabbguide till programmet. 2. Komma igång Skapa grupper och elever Börja med att läsa texten nedan om hur man börjar jobba med programmet efter installationen. Skriv gärna ut sidan och ha bredvid dig tills du känner att du behärskar

Läs mer