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

Storlek: px
Starta visningen från sidan:

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

Transkript

1 725G61 - Laboration 8 Ett enkelt GUI Sahand Sadjadee och Johan Falkenjack December 20, 2013

2 1 Inledning I de tidigare labbarna har ni fått lära er grundläggande programmering och objektorientering samt hur ni dokumenterar er kod. I den här labben kommer vi använda en del terminologi ni förväntas ha lärt er vid det här laget för att göra något mer verklighetsnära. 2 Vad är GUI? GUI står för Graphical User Interface och det är något ni använder er av varje dag. Ett GUI är det ni stöter på när ni startar ett program. I operativsystem som Windows och OS X är GUI:t mer eller mindre fönsterbaserat, dvs programmen representeras som fönster på en bakgrund. I operativsystem som ios på iphone/ipad/ipod och Android på mobiltelefoner fungerar GUI:n annorlunda men det är den grafikbaserade, till skillnad från textbaserade, interaktionen som gör att det kallas för ett GUI. I labb 4 byggde ni upp ett mer traditionellt textbaserat UI där användaren fick interagera med systemet genom att skriva olika kommandon. Nu är det dags att testa att bygga ett grafiskt gränssnitt, där användaren istället använder t ex knappar för att skicka olika kommandon till systemet. Att bygga grafiska gränssnitt är inte trivialt, det är faktiskt så komplicerat att det finns flera hela kurser i specifikt GUI-programmering (ofta heter de något i stil med Interaktionsprogrammering) och det finns även kurser i hur själva designen av GUI:n ska se ut (de brukar heta något i stil med Interaktionsdesign). Ofta säger man att i utvecklingen av ett nytt program läggs 90 % av själva programmeringstiden på GUI:t. Även om detta är en grov förenkling och beror väldigt mycket på vad det är för typ av program som skapas, finns det en viss sanning i det. I den här labben ska ni dock bara följa instruktionerna rakt av för att se ungefär hur processen att bygga ett GUI ser ut. Syftet är alltså inte främst att ni ska lära er bygga upp GUI:n, utan att ni ska få en känsla för hur GUI:n hänger ihop med det ni har gjort tidigare i kursen och hur man kan bygga upp och förpacka körbara program som är lite mer lika de ni alla är vana vid att använda. 3 Swing I Java byggs de flesta grafiska gränssnitt idag med Swing. Swing är ett paket med klasser baserat på det äldre AWT (Abstract Window Toolkit). I det gamla AWT såg Java-program ungefär likadana ut på alla system och var enligt många ganska fula och klumpiga. Med Swing kan man variera sina GUI:n mer och skapa program som ser ut som program normalt ser ut i den aktuella miljön (t.ex. Windows XP vs. Windows 8 vs. OS X). Dessa olika utseenden kallas "look-and-feel" och beroende på om ni gör den här labben i Windows, i OS 1

3 X eller till och med i Linux kommer resultatet, dvs utseenedet på fönstret och knapparna, variera lite. 4 Att skapa själva fönstret Vi ska nu skapa ett grafiskt program som använder en del av vår kod från Labb 6. Det GUI vi bygger i den här labben är generellt sett avsett att köras på ett fönstersystem som Windows eller OS X. Det kommer dock se lite olika ut i de olika systemen, pga olika look-and-feel, så oroa er inte om det inte ser exakt ut som på bilderna nedan. 4.1 Om JFrame Klassen JFrame är en så kallad container, en klass vars uppgift är att innehålla andra Swing-komponenter. I Swing-termer är en JFrame förälder (parent) till alla komponenter som ligger i JFrame:n. Vi pratar då inte om förälder i klassmeningen, att alla andra komponenter ärver av JFrame, utan att programmets organisation är hierarkisk och att alla komponenter som placeras i en JFrame visuellt, också logiskt tillhör denna JFrame, och man kan komma åt en komponents JFrame genom speciella metoder. Rent visuellt ger JFrame en tom rektangel med en titelrad överst, det vi i dagligt tal kallar ett fönster. Titelraden är det som ligger högst upp i alla fönster och innehåller normalt sett programmets titel, samt knappar för att minimera, maximera och stänga fönstret. Innan några inställningar gjorts eller några komponenter lagts till gör Swing automatiskt alla komponenter så små som möjligt, det kommer ni märka i Uppgift 8.1. JFrame kan användas på två sätt, antingen kan man skapa ett objekt av klassen och manuellt lägga till element, eller så kan man göra som i Uppgift 8.1 och skapa en subklass som är specialanpassad för ett visst syfte. Generellt sett betraktas den andra lösningen som bättre, då den tydliggör att vi skapar en specifik version av JFrame för ett visst syfte och vi kan förhållandevis lätt återanvända denna. Verkar det knöligt? Oroa er inte, vi kommer ta ett steg i taget och ni behöver inte förstå allting i detalj. Syftet med den här labben är, till skillnad mot de tidigare, mer fokuserat på att ni ska få pröva på att skapa ett GUI, snarare än att ni ska lära er exakt hur alla komponenter fungerar. 2

4 UPPGIFT 8.1 Skapa ett nytt paket edu.liu.ida.svp725g61.lab8. I detta paket ska ni skapa en ny klass Facade som ärver av klassen javax.swing.jframe. Klassen ska i nuläget inte innehålla någon kod utöver detta. Skapa sedan en klass som heter Main i samma paket. Klassen Main ska ha en main-metod som skapar en ny instans av Facade samt anropar metoden setvisible() med argumentet true på den nya instansen. Kör sedan klassen Main. Ni borde nu få upp ett litet, och tomt, fönster, t.ex. uppe i vänstra hörnet av skärmen. Fönstret borde, i Windows, se ut ungefär som i Bild 1. Bild 1: Efter Uppgift 8.1. I Uppgift 8.1 skapade ni ett första fönster. Eftersom ni inte skrev någon kod i klassen Facade har ni säkert räknat ut att vad vi kört är ett standardfönster som exakt motsvarar klassen javax.swing.jframe. Vi ska nu modifiera det här fönstret lite. OBS! När ni stänger det nyskapade fönstret betyder det inte att Java-processen bakom fönstret avslutas, för att stänga av den processen måste ni trycka på den lilla röda stopp-knappen i Consolefönstret i Eclipse. 3

5 UPPGIFT 8.2 Inne i klassen Facade ska ni nu skapa en ny metod init(), som inte har något returvärde och inte tar några parametrar. Följande kod ska finnas i init(): // setting size, location, title and // default behavior on close. this.setsize(200, 200); this.setlocation(100, 100); this.settitle("untitled"); this.setdefaultcloseoperation(jframe.hide_on_close); // --- end of setting size, location, title and // default behavior on close. Skapa sedan en konstruktor för Facade som inte tar några argument och som bara anropar init(). Kör Main igen och se vad det blir för skillnad. Det borde se ut ungefär som i Bild 2. Gör nu följande ändringar i koden: Ändra storleken från 200x200 till 640x480, placeringen från 100,100 till 250,250 och namnet på fönstret till "Student Registration Form". Ni ska också ändra standardbeteendet när fönstret stängs till JFrame.EXIT_ON_CLOSE. Efter den sista ändringen kommer ni inte längre behöva stoppa Java-processen manuellt (inifrån Eclipse) utan den kommer avslutas när fönstret stängs. Det kommer se ut ungefär som i Bild 3 Bild 2: Efter första ändringarna i Uppgift

6 Bild 3: Efter sista ändringarna i Uppgift 8.2. Notera förändringen i skala från tidigare bilder. 5 Lägga till komponenter Swing består av ett antal olika komponenter, avsedda för olika syften och med speciella utseenden. Med undantag av JLabel, som visar en text, och några få andra komponenter för att visa information, t.ex. bilder, så är de flesta andra komponenter interaktive, så att användaren kan interagera med dem på olika sätt. De kan t.ex. användas både för att visa information eller skicka kommandon eller data från användaren till programmet. Några sådana komponenter är t.ex. JTextField, JTextArea och JButton, vilka kommer användas i nästa uppgift. Ni har nu skapat fönstret i ett rimligt format, med en rimlig placering, med ett bra namn och med det förväntade avslutningsbeteendet. Nu ska ni lägga till lite fler grafiska komponenter i fönstret. 5

7 UPPGIFT 8.3 Nu ska ni lägga till koden från Bild 4 och Bild 5 på lämpliga ställen i Facadeklassen. Ni ska också lägga till koden från Bild 6 och Bild 7 i metodkroppen för metoden init(). När det är gjort bör fönstret se ut som i Bild 8. Ge sedan JTextField-elementen för förnamn, efternamn och födelseår standardvärden (använd ditt eget namn och födelseår), dvs värden som visas från början när komponenten visas (men som användaren naturligtvis kan gå in och ändra om han eller hon vill). Använd metoden settext() på lämpliga ställen i init() för att åstadkomma detta. När detta är gjort bör programmet se ut ungefär som i Bild 9 direkt när du startar det. // imports import javax.swing.jbutton; import javax.swing.jlabel; import javax.swing.jtextarea; import javax.swing.jtextfield; Bild 4: Imports att lägga till i Uppgift

8 // declaring component variables private JLabel firstnamelabel; private JLabel familynamelabel; private JLabel birthyearlabel; private JTextField firstnametextfield; private JTextField familynametextfield; private JTextField birthyeartextfield; private JButton registerbutton; private JButton showallbutton; private JLabel outputlabel; private JTextArea outputtextarea; // end of declaring component variables Bild 5: Instansvariabler att lägga till i Uppgift 8.3. // creating and adding new components to the main frame this.setlayout(null); firstnamelabel = new JLabel("Name"); firstnamelabel.setsize(100,20); firstnamelabel.setlocation(20,20); firstnametextfield = new JTextField(); firstnametextfield.setsize(300,20); firstnametextfield.setlocation(120,20); familynamelabel = new JLabel("Familyname"); familynamelabel.setsize(100,20); familynamelabel.setlocation(20,50); Bild 6: Kod att lägga till i init() i Uppgift

9 familynametextfield = new JTextField(); familynametextfield.setsize(300,20); familynametextfield.setlocation(120,50); birthyearlabel = new JLabel("Birth Year"); birthyearlabel.setsize(100,20); birthyearlabel.setlocation(20,80); birthyeartextfield = new JTextField(); birthyeartextfield.setsize(300,20); birthyeartextfield.setlocation(120,80); registerbutton = new JButton("Register"); registerbutton.setsize(120,30); registerbutton.setlocation(500, 20); showallbutton = new JButton("Show All"); showallbutton.setsize(120,30); showallbutton.setlocation(500, 60); outputlabel = new JLabel("Output"); outputlabel.setsize(200,20); outputlabel.setlocation(20, 110); outputtextarea = new JTextArea(); outputtextarea.seteditable(false); outputtextarea.setsize(600,300); outputtextarea.setlocation(20, 130); this.add(firstnamelabel); this.add(firstnametextfield); this.add(familynamelabel); this.add(familynametextfield); this.add(birthyearlabel); this.add(birthyeartextfield); this.add(registerbutton); this.add(showallbutton); this.add(outputlabel); this.add(outputtextarea); // end of creating and adding new components to // the main frame Bild 7: Kod att lägga till i init() i Uppgift

10 Bild 8: Efter första delen av Uppgift

11 Bild 9: Efter sista delen av Uppgift

12 6 Funktionalitet Nu har vi fixat den faktiska layouten, dvs utseendet på programmet. Alla element som vårt program ska innehålla finns på skärmen. De saknar dock all funktionalitet, så det ska vi göra något åt nu. För att något ska hända när vi t.ex. trycker på en knapp så måste vi lägga till en så kallad lyssnare (listener) som fångar en viss händelse (event). När man lägger till en lyssnare skapar man ett nytt objekt av den aktuella lyssnarklassen och överlagrar eventuella metoder som behövs, via en konstruktion vi inte stött på tidigare i kursen. Ni får dock koden av oss och behöver bara implementera innehållet i metoden, så det gör inget om ni inte förstår exakt hur strukturen är uppbyggd. Vi ska också visa en dialogruta. En dialogruta används för att föra en dialog med användaren angående en specifik uppgift. Dialogrutor är containers precis som JFrame men körs bara under perioder av programmets hela körtid, för att hantera specifika saker. T.ex. kan man ha en dialogruta som utfärdar en varning, informerar om att något gått fel (ett felmeddelande), eller informerar om att något har lyckats. Mer avancerade dialogrutor kan t.ex. hantera sparande av en fil, utskrift, eller som dialogrutan ni använder i Eclipse i Uppgift 8.7, export av data till ett annat format. Vi ska skapa några mycket enkla dialogrutor i vårt program, enbart för att visa upp meddelanden för användaren. För detta ska vi använda metoden JOptionPane.showMessageDialog() som visar ett fönster med en text och en OK-knapp som stänger fönstret. 11

13 registerbutton.addactionlistener(new ActionListener() public void actionperformed(actionevent e) { // This method is called as the Register button // is clicked by the user. }); } // TODO: implement the students // information storage here. Bild 10: Kod att lägga till i init() i Uppgift 8.4. UPPGIFT 8.4 Börja med att importera klasserna java.awt.event.actionevent och java.awt.event.actionlistener i er Facade-klass. Lägg sedan till koden i Bild 10 på lämpligt ställe i metoden init(). Skapa sedan en ArrayList<Student> som en instansvariabel i Facade-klassen där Student är klassen från labb 6 (ni kan kopiera klassen till lab8-paketet eller importera klassen). Gå sedan till TODO-markeringen i den nya metoden actionperformed(). Ni ska här hämta ut värdena från de tre textfälten med gettext()-metoden och skapa ett nytt Student-objekt med hjälp av de tre värdena. Kom ihåg att ni kan använda Integer.parseInt() för att konvertera en sträng till ett heltal. Detta nya Student-objekt ska läggas till den ArrayList<Student> som ni nyss skapade, och som tillhör instansen av Facade. När det nya Student-objektet lagts till i listan skall följande rad läggas till sist i actionperformed(), för att visa ett meddelande för användaren att operationen lyckats: JOptionPane.showMessageDialog(null, "The new student registered successfully"); När ni nu kör programmet och klickar på Register-knappen bör det se ut ungefär som i Bild

14 Bild 11: Efter Uppgift 8.4. Nu kan vi lägga till studenter i vårt system. Vi vill dock kunna se vilka studenter som är tillagda också, annars är inte programmet särskilt användbart. UPPGIFT 8.5 Lägg till en lyssnare till, den här gången ska lyssnaren läggas till för showallbutton men i övrigt motsvara den vi lade till registerbutton i Uppgift 8.4. Ta dock bort hela metod-kroppen (koden inuti metoden) från den nya actionperformed()-metoden, dvs vi vill inte att samma sak ska hända när vi klickar på den här knappen. I den nya actionperformed()-metoden ska vi istället lägga till en kropp som skapar en sträng och lägger till den i outputtextarea (använd metoden settext() för att lägga till texten). Strängen ska representera information om samtliga tillagda studenter, samt antalet studenter i listan, och vara formaterad i stil med Bild

15 Bild 12: Efter Uppgift 8.5. Det enda som är kvar att lägga till i vårt lilla program nu är lite felhantering. UPPGIFT 8.6 Lägg till kontroller vid registreringen av nya studenter som kontrollerar följande två regler: 1. Inget inputfält får vara tomt, dvs användaren måste ange både förnamn, efternamn och födelseår. 2. Födelseåret måste vara ett heltal. Om någon regel bryts ska ett lämpligt felmeddelande visas med hjälp av JOptionPane, på samma sätt som när vi visade upp ett meddelande att allt gått bra, i Uppgift 8.4, och ingen ny student ska skapas. Exempelvis som i Bild

16 Bild 13: Efter Uppgift Distribution av kod Nu har vi skapat ett litet program med ett grafiskt gränssnitt som låter oss registrera studenter. Om vi nu skulle vilja distribuera detta som ett körbart program så skapar vi en så kallad körbar jar-fil. En jar-fil är ungefär som en exe-fil i Windows, och kan köras på alla datorer med Java installerat. För att skapa en körbar jar-fil i Eclipse klickar man på File->Export. Man får då upp en dialog där man kan välja olika typer av export. Klicka på mappen Java, därunder finns alternativet Runnable JAR file, markera det och klicka sedan på Next. Välj Launch Configuration ur drop-down-menyn för att tala om vilken av klasserna som innehåller er main-metod, där programmet startas, detta är i vårt exempel klassen Main. Välj sedan en lämplig destination och ett filnamn för er JAR, exempelvis lab8.jar och spara i en katalog på ert studentkonto. Se till att alternativet Extract required libraries into generated JAR är markerat. UPPGIFT 8.7 Skapa en körbar jar-fil för koden i Labb 8 och testa att ni kan köra programmet genom att dubbelklicka på JAR-filen istället för att starta programmer inifrån Eclipse. 15

17 8 Redovisning Lämna in koden för Facade, Main och Student-klassen (den ni återanvände från labb 6 - handledarna kommer inte bedöma den här klassen igen, men behöver den för att testköra ert system), samt den genererade jar-filen. Tänk på att som vanligt kommentera er kod noga (ni behöver inte lägga till kommentarer i den kod ni klippt in från uppgifterna här, men den kod ni själva skrivit ska vara kommenterad). 16

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

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

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

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

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

Laboration 10 - Eclipse

Laboration 10 - Eclipse Laboration 10 - Eclipse 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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 Laboration 3 Visualisering (och implementering) av sortering Exempel på grafik (med Swing-paketet) Frågor 1 Laboration 3 Visualisering

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

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 18 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 18 Igår: Genomgång av dugga Rekursion Idag och på måndag: Om essän Lite, lite teori om konstanter Grafiska användargränssnitt Grundläggande

Läs mer

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 Laboration 3 Visualisering (och implementering) av sortering Exempel på grafik (med Swing-paketet) Frågor 1 Laboration 3 Visualisering

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

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

Malmö högskola 2007/2008 Teknik och samhälle Laboration 12 Avsikten med denna laboration är att du ska göra några grafiska program. Börja med att skapa paketet laboration 12. Grundläggande uppgift Uppgift 12a Uppgiften går ut på att göra en enkel

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

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas. Eclipse Avsikt Att bekanta dig med Eclipse programmeringsmiljö, dvs att med hjälp av Eclipse 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till byte-kod

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

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack 725G61 - Laboration 7 Implementation av ett API Johan Falkenjack December 13, 2013 1 Inledning Hittills i kursen har vi tittat på grundläggande programmering och grundläggande objektorientering. I den

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

NetBeans 5.5. Avsikt. Projektfönster

NetBeans 5.5. Avsikt. Projektfönster NetBeans 5.5 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

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

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

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets GUI (forts) Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets Sven-Olof Nyström Uppsala Universitet 18 mars 2005 Skansholm: Kapitel 6 Användaren kan kommunicera med programmet

Läs mer

Grafiska användargränssnitt i Java

Grafiska användargränssnitt i Java TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Stora delar har

Läs mer

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

Objektorienterad Programmering DAT043. Föreläsning 5 29/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) Objektorienterad Programmering DAT043 Föreläsning 5 29/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Repetition: Arv En subklass ärver alla variabler och metoder från sin superklass.

Läs mer

NetBeans 7. Avsikt. Projektfönster

NetBeans 7. Avsikt. Projektfönster NetBeans 7 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

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

Malmö högskola 2007/2008 Teknik och samhälle Laboration 13 Avsikten med denna laboration är att du ska använda ett par nya grafiska komponenter. Dessutom ska du göra designen utan hjälp av en layout-manager (enklare). Börja med att skapa paketet

Läs mer

Arv och Grafiska Användargränssnitt

Arv och Grafiska Användargränssnitt Arv och Grafiska Användargränssnitt Bildserie 5 Plattform Java är inte bara ett språk utan en s.k. plattform - Förutom språket finns en otrolig mängd färdiga klasser samlade i bibliotek (kallas också API:n,

Läs mer

Grafiska användargränssnitt i Java

Grafiska användargränssnitt i Java jonas.kvarnstrom@liu.se 2017 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Till stor del ersatt av Swing: Mer omfattande,

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

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på:

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på: Bilaga C Eclipse 1 Inledning Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på: www.eclipse.org help.eclipse.org www.eclipse.org/downloads/

Läs mer

TUTORIAL: KLASSER & OBJEKT

TUTORIAL: KLASSER & OBJEKT TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan

Läs mer

1 Grafiska komponenter

1 Grafiska komponenter 1 Grafiska komponenter Vi har sett exempel på hur vi kan arbeta med enkla dialogrutor med klasser JOptionPane och hur vi kan rita med en rityta, Graphics instans, i en Java applet. Att skapa ett grafiskt

Läs mer

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

2I1049 Föreläsning 8. Grafiska gränssnitt i Java. AWT-komponenter. Grafiska gränssnitt, Java interface och händelsehantering 2I1049 Föreläsning 8 Grafiska gränssnitt, Java interface och händelsehantering 1 KTH-MI Peter Mozelius Grafiska gränssnitt i Java Efterfrågan på program med grafiskt gränssnitt har ökat avsevärt de senaste

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

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

Laboration 1 Introduktion till Visual Basic 6.0

Laboration 1 Introduktion till Visual Basic 6.0 Laboration 1 Introduktion till Visual Basic 6.0 Förberedelse Förbered dig genom att läsa föreläsningsanteckningar och de kapitel som gåtts igenom på föreläsningarna. Läs även igenom laborationen i förväg.

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5 Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor 1 Laboration 4 - Introduktion Syfte: Öva på självständig problemlösning

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

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

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

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

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

Laboration 1 - Grunderna för OOP i Java

Laboration 1 - Grunderna för OOP i Java Uppdaterad: 2006-08-31 Laboration 1 - Grunderna för OOP i Java Inledning Laborationen går ut på att lära sig grunderna för objektorienterad programmering, samt motsvarande språkkonstruktioner i Java. Labben

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

Verktyg och Utvecklingsmiljö. Jochim von Hacht

Verktyg och Utvecklingsmiljö. Jochim von Hacht Verktyg och Utvecklingsmiljö Jochim von Hacht Verktyg Modern programutveckling innebär att man måste behärska ett antal verktyg Editorer Kompilatorer Avlusare (debugger) Versionhantering (kommer i projektkurs)

Läs mer

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: Att skapa en klass kvadrat Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: public class Kvadrat { private int sida; Det var väl inte

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

Eclipse. Kort genomgång

Eclipse. Kort genomgång Eclipse Kort genomgång Installation för den som vill ha Eclipse på sin egen maskin Du behöver först och främst ett Java Development Kit (JDK). Om du inte har något, installera JDK 7.0 från http://www.oracle.com/technetwork/java/javase/downloads/

Läs mer

Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8)

Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8) Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8) I detta exempel kommer du att lära dig Att skapa en ny presentation från början Att skapa en enkel knapp Att använda händelseinställningar, events

Läs mer

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

PROGRAMMERINGSTEKNIK TIN212

PROGRAMMERINGSTEKNIK TIN212 Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Robin Adams Göteborg 8 June 2018 PROGRAMMERINGSTEKNIK TIN212 Dag: Fredag Datum:

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

KARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09

KARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09 Laboration 4, ISG A04 och DVG A08 HT-09 Laborationen går ut på att skapa en enkel bankbok. Ni skall i bankboken kunna registrera upp till 30 transaktioner som kan bestå av insättning, uttag eller checkuttag.

Läs mer

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta

Läs mer

ID1004 Laboration 3, 5-6 November 2012

ID1004 Laboration 3, 5-6 November 2012 18-okt-2012/FK ID1004 Laboration 3, 5-6 November 2012 Labben bör göras individuellt. Beräknad tid ca 2 timmar. Instruktionen antar att labben utförs i datasal, med hjälp av den integrerade utvecklingsmiljön

Läs mer

Instruktion för användande av Citrix MetaFrame

Instruktion för användande av Citrix MetaFrame Instruktion för användande av Citrix MetaFrame Öppna valfri browser, t ex Internet Explorer eller Firefox, och ange url en www.git.ltu.se. Detta medför att följande bild presenteras. OBS! Ny version av

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

Objektorienterad programmering i Java I

Objektorienterad programmering i Java I Laboration 0 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: ca 2 3 timmar Att läsa: sidan 45 52 Syfte: Att ladda hem och installera utvecklingsmiljön Att skriva ditt första Javaprogram

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

Projektuppgift - Biblioteket

Projektuppgift - Biblioteket Projektuppgift - Biblioteket 2013 1. Projekt - syfte, instruktioner och uppgift Syftet med den här projektuppgiften är att ni nu ska tillämpa allt det ni har lärt er i kursens två labbdelar, dvs både kunskaper

Läs mer

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

Objektorienterad programmering med Java Swing. Programexempel. Swing och AWT AWT. = Abstract windowing toolkit Swing och AWT Objektorienterad programmering med Java Swing Sven-Olof Nyström Uppsala Universitet March 14, 2006 Skansholm: Kapitel 6 AWT = Abstract windowing toolkit använder värddatorns fönstersystem

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

Projektuppgift - Gymmet

Projektuppgift - Gymmet Projektuppgift - Gymmet 2013 1. Projekt - syfte, instruktioner och uppgift Syftet med den här projektuppgiften är att ni nu ska tillämpa allt det ni har lärt er i kursens två labbdelar, dvs både kunskaper

Läs mer

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2 Paneler - VCPXX.2 Programmeringsmanual för VCP-paneler Revision 2 Innehållsförteckning Innehållsförteckning... 2 1 Symbolfiler för kommunikation via IndraLogic... 3 2 Uppsättning i IndraWorks... 6 3 Programmering

Läs mer

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips Lab1 Introduktion Förberedelse för planetlabben genom att kapsla in (skapa wrappers) systemanrop. 1 Syfte Få en känsla av hur Win32API fungerar, dvs programmerarens interface gentemot Windows. Känsla för

Läs mer

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel Programmeringsteknik för Bio1 och I1 Övning 2 Kort repetition Övningsgrupp 3 (Sal E33) 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/2d1310/

Läs mer

Telia Connect för Windows

Telia Connect för Windows Telia Connect för Windows Version 3.0 Användarguide Updaterad: 3 juli 2007 Innehåll Ansluta till Internet...3 Information som presenteras av Telia Connect...4 Konfiguration av Telia Connect...7 Fliken

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

CliMate följer Tre-lager-arkitektur. Domänobjekt - domänlogiklagret. Viktiga domänklasser i CliMate. De tre lagren. Paketen i CliMate:

CliMate följer Tre-lager-arkitektur. Domänobjekt - domänlogiklagret. Viktiga domänklasser i CliMate. De tre lagren. Paketen i CliMate: följer Tre-lager-arkitektur De tre lagren presentation: användarhändelser+grafik+resultat domänlogik: håller systemets funktioner databasaccess: databas + sql-hantering Paketen i : climate.ui (inkl climate.ui.action

Läs mer

Vad utmärker ett bra användargränssnitt?

Vad utmärker ett bra användargränssnitt? Vad utmärker ett bra användargränssnitt? Att kommunicera med användarna Feedback och Pliancy Excise kontra Flow GUI = Graphic User Interface GUI = Graphic User Interface GUIn, eller grafiska gränssnitt

Läs mer

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio Ditt första C#-program med Visual Studio Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så

Läs mer

Handledning för Installation av etikettskrivare

Handledning för Installation av etikettskrivare Handledning för Installation av etikettskrivare Windows 7 Expert Systems 2011 Expert Systems kundtjänst: Senast Uppdaterad: 15-02-23 Exder Etikettskrivare Windows 7 Sida 2 av 23 Innehållsförteckning 1.

Läs mer

Mobila applikationer. Mobil applikationer. Java ME. Konfigurationer. Grunderna i ME

Mobila applikationer. Mobil applikationer. Java ME. Konfigurationer. Grunderna i ME Johan Eliasson Tentan 12/1 9-12 i skrivsal 7 östra paviljongen (om de inte flyttat den till ngn annan lokal) Förklara begrepp Ex: Vad är en tråd? Vad gör en LayoutManager? Hur fungerar Observer-Observable

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

Juni 2003 PlanCon Viewer Handledning PlanCon PROJEKT

Juni 2003 PlanCon Viewer Handledning PlanCon PROJEKT PlanCon Viewer Med PlanCon Viewer kan du som inte har PlanCon öppna PlanCon projekt (*.prj) och skriva ut dessa. Inga ändringar i projektet kan göras. Filtreringar, sorteringar och vissa ändringar i utseendet

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

3.5 Visuell programmering

3.5 Visuell programmering 3.5 Visuell programmering Alla våra program hittills har varit C# Console Applications (sid 41) inkl. programmet MessageBox fast det genererade en grafisk meddelanderuta. Nu vill vi utnyttja grafikens

Läs mer

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Uppdatera Mobilus Professional till version 2.0.1 Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. * Filen MP.exe (Mobilus programmet) får inte användas* under tiden uppdateringen

Läs mer

DAT043 - föreläsning 8

DAT043 - föreläsning 8 DAT043 - föreläsning 8 Paket, generics, Java collections framework 2017-02-07 Paket och tillgänglighet Ovanför klasser finns en hierarkisk namespace med paket. Filer som inte deklareras i något paket finns

Läs mer

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll FrontPage Express I programpaketet Internet Explorer 4.0 och 5.0 ingår också FrontPage Express som installeras vid en fullständig installation. Det är ett program som man kan använda för att skapa egna

Läs mer

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt Design och konstruktion av grafiska gränssnitt Armin Nezirevic Peter Börjesson Interaktionsdesign Tillämpad informationsteknologi Chalmers/GU Idag Vad utmärker ett bra användargränssnitt? Kort kursinfo

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

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse Verktyg och Utvecklingsmiljö Föreläsning 2 Eclipse Verktyg Modern programutveckling innebär att man måste behärska ett antal verktyg. Editorer Kompilatorer Avlusare(debugger) Versionshantering(kommer i

Läs mer

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

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

MVC-mönstret. model-view-control i Swing MVC-mönstret model-view-control i Swing MVC Tanken bakom MVC (model view control) är att separera uppgifter i ett program från varandra. Model - Den data som behandlas View - Hur användargränssnittet ser

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

DAT043 - Föreläsning 7

DAT043 - Föreläsning 7 DAT043 - Föreläsning 7 Model-View-Controller, mer om klasser och interface (arv, ) 2017-02-06 Designmönstret Observer avläser Observer Observable meddelar Observer avläser En eller flera objekt registrerar

Läs mer

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

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/3 2014 Innehåll Kursöversikt Javarepetition/Javaintroduktion UML - klassdiagram-introduktion i anslutning till Java-exemplen Kursmål,

Läs mer

Lathund för BankID säkerhetsprogram

Lathund för BankID säkerhetsprogram Lathund för BankID säkerhetsprogram BankID säkerhetsprogram för Windows, version 4.10 Datum: 2009-11-23 Introduktion När du ska hämta ut och använda e-legitimationen BankID behöver du ha ett installerat

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

Föreläsning 7. Grafiska användargränssnitt

Föreläsning 7. Grafiska användargränssnitt Föreläsning 7 Grafiska användargränssnitt För att göra grafiska användargränssnitt: Måste man veta hur man skapar komponenterna i ett GUI och vilka det finns. Till lab 3 räcker det med att känna till de

Läs mer

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

Är en-relation. Har en-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde Föreläsning 7 "Har en"-relation Arv "Har en" "Är en" Superklassen Object Överskuggning Fordonsexempel Seminarium 2 Relevanta uppgifter Uppgift 31 I exemplet Boll från förra föreläsningen gällde följande

Läs mer

Windows Forms Winstrand Development

Windows Forms Winstrand Development 2013-01-23 1 Winstrand Development Användargränssnitt Hittills har vi skapat program för kommandoraden. Den bakomliggande koden fungerar som den ska, men vi upptäcker snabbt att programmen är begränsade

Läs mer

Instruktioner för uppdatering från Ethiris 4.10 till 5.x

Instruktioner för uppdatering från Ethiris 4.10 till 5.x Instruktioner för uppdatering från Ethiris 4.10 till 5.x Nedan följer instruktioner för hur man går till väga vid uppdatering av ett Ethirissystem version 4 till version 5. När man uppdaterar Ethiris från

Läs mer

Symprint Snabbstartsguide

Symprint Snabbstartsguide Symprint Snabbstartsguide Artikelnummer: 12020, 12021, 12022 v.1 0.10 1 Innehåll Välkommen till SymPrint... 3 Installation av medföljande mjukvara:... 3 Komma igång... 4 Skapa nytt dokument från mall...

Läs mer

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02) UMEÅ UNIVERSITET Institutionen för datavetenskap Thomas Johansson Oktober 1998 Programutveckling med Java Development Kit (JDK 1.1.x) och Programmers File Editor (PFE 7.02) Umeå universitet 901 87 Umeå.

Läs mer

Laboration med Internet och HTML

Laboration med Internet och HTML Laboration med Internet och HTML Denna laboration går ut på att du skall kunna skapa enkla hemsidor i HTML. Vi kommer inte att ta upp edstorer för hemsidor som t.ex. DreamWeaver eller FrontPage. Dessa

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

TENTAMEN. Kurs: Applikationsutveckling i Java 5DV135. Ansvarig lärare: Johan Eliasson. HT12 Datum: Tid: kl

TENTAMEN. Kurs: Applikationsutveckling i Java 5DV135. Ansvarig lärare: Johan Eliasson. HT12 Datum: Tid: kl UMEÅ UNIVERSITET Institutionen för Datavetenskap 13-04-04 TENTAMEN Kurs: Applikationsutveckling i Java 5DV135 Ansvarig lärare: Johan Eliasson HT12 Datum: 13-04-04 Tid: kl 9.00-13.00 Namn: Personnummer:

Läs mer