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

Storlek: px
Starta visningen från sidan:

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

Transkript

1 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 på uppgifterna. Uppgift 1 - Ärva JPanel I denna uppgift ska du bygga en komponent som består av två JLabel och två JTextField. Den ska se ut som figuren till höger när den är färdig. Det behövs en JPanel i vilken komponenterna kan placeras. Klassen kommer att ärva denna panel. Strukturen för klassen ska vara så här: public class NamnYrke extends JPanel { // Instansvariabler public NamnYrke() { : // designmetoder // get-metoder public String getnamn() { : public String getyrke() { : Instansvariabler De grafiska komponenterna ska vara instansvariabler i klassen: public class NamnYrke extends JPanel { private JTextField tfnamn = new JTextField(); private JTextField tfyrke = new JTextField(); private JLabel lblnamn = new JLabel("Namn"); private JLabel lblyrke = new JLabel("Yrke"); Konstruktorn Det kommer att behövas några extra paneler för att bygga designen, en till vänster som innehåller JLabel-komponenterna (labelpanel nedan) och en till höger som innehåller JTextField-komponenterna (inputpanel nedan). Båda panelerna kommer att skapas och designas med hjälp av metoder (getlabelpanel() resp. getinputpanel()). Layout-manager i den ärvda panelen ska vara BorderLayout och hjälppanelerna ska placeras i WESTspektive CENTER. För att ange bredden på panelen i WEST anropas metoden setpreferredsize. DA129A Programmering 1 1

2 public NamnYrke() { setlayout(new BorderLayout()); JPanel labelpanel = getlabelpanel(); JPanel inputpanel = getinputpanel(); labelpanel.setpreferredsize(new Dimension(50,0)); add(labelpanel, BorderLayout.WEST); add(inputpanel, BorderLayout.CENTER); Metoder som returnerar JPanel-objekt /********* Design-metoder **********/ private JPanel getlabelpanel() { JPanel panel = new JPanel(new GridLayout(2,1)); Font dialogb12 = new Font("Dialog", Font.BOLD, 12); lblnamn.setfont(dialogb12); lblyrke.setfont(dialogb12); panel.add(lblnamn); panel.add(lblyrke); return panel; private JPanel getinputpanel() { JPanel panel = new JPanel(new GridLayout(2,1)); panel.add(tfnamn); panel.add(tfyrke); return panel; Metoder för att avläsa inmatade värden - getters // get-metoder public String getnamn() { return tfnamn.gettext(); public String getyrke() { return tfyrke.gettext(); Ett fönster att placera NamnYrke-panelen i Till slut behövs det ett fönster för att testa NamnYrke-komponenten. Fönstret består dessutom av en JTextArea och en JButton. När användaren klickra på knappen så skrivs information från NamnYrke-panelen i JTextArea-komponenten. När användaren klickar på knappen så uppdateras innehållet i JTextArea-komponenten. import java.awt.event.*; public class TestNamnYrke extends JFrame implements ActionListener { private JButton update = new JButton("Uppdatera textytan"); private JTextArea textyta = new JTextArea(); private NamnYrke namnyrke = new NamnYrke(); 2

3 public TestNamnYrke() { Container c = getcontentpane(); setsize(400,200); setdefaultcloseoperation(jframe.exit_on_close); textyta.seteditable(false); update.addactionlistener(this); c.add(namnyrke, BorderLayout.NORTH); c.add(textyta, BorderLayout.CENTER); c.add(update, BorderLayout.SOUTH); setvisible(true); public void actionperformed(actionevent e) { textyta.settext("namn: " + namnyrke.getnamn() +"\nyrke: " + namnyrke.getyrke()); TestNamnYrke tny = new TestNamnYrke(); 3

4 Uppgift 2 Ärva JPanel I denna uppgifts ska du på samma sätt som i föregående uppgift skriva en klass som är en JPanel, dvs. som ska ärva av en JPanel. Denna panel ska innehålla ett antal olika grafiska komponenter, däribland 2 st JRadiobutton (till vänster) och en JComboBox n(till höger). I lösningen används två hjälppaneler, en som innehåller JRadioButton-komponenterna till vänster och en som innehåller Hobby och JComboBox-komponenten till höger. Panelerna genereras genom anrop till metoderna getcivilstandpanel respektive getovrigtpanel. Dessa metoder är givna och kommenterade nedan. Din uppgift är att färdigställa komponenten CivilstandOvrigt och sedan testköra den med det givna testprogrammet. import javax.swing.event.*; import java.awt.event.*; public class CivilstandOvrigt extends JPanel { private JRadioButton rbogift = new JRadioButton("ogift"); private JRadioButton rbgift = new JRadioButton("gift"); private JComboBox cbhobbies; public CivilstandOvrigt() { // komplettera med kod public JPanel getcivilstandpanel() { // se nedan public JPanel getovrigtpanel() { // se nedan // komplettera med nödvändiga get-metoder för att avläsa värden i radiobuttons (isselected()) // och comboboxen (getselecteditem()). Studera testprogrammet! RadioButtons Nu är det dags att skriva metoden som returnerar panelen med JRadioButton-komponenter. Följande gäller för panelen: Layoutmanager: GridLayout, 2 rader och 1 kolumn Komponenter: 2 st JRadioButton vilka placeras i GridLayouten. Border ButtonGroup Dekorerar panelen Gör att JRadioButton-komponterna fungerar tillsammans, dvs endast en vald åt gången 4

5 Metoden getcivilstandpanel (). private JPanel getcivilstandpanel () { JPanel panel = new JPanel(new GridLayout(2,1)); ButtonGroup grupp = new ButtonGroup(); rbogift.setselected(true); grupp.add(rbogift); grupp.add(rbgift); panel.setborder(borderfactory.createtitledborder("civilstånd")); panel.add(rbogift); panel.add(rbgift); return panel; Kommentarer ButtonGroup-objektet ser till att endast en av knapparna är vald åt gången. Referens till JRadioButton-komponenterna behövs när deras värde ska avläsas. Därför är referenserna till komponenterna instansvariabler (placerade överst i klassen). Många grafiska komponenter kan förses med en Border. Border-implementeringar får man genom att anropa klass-metoder i klassen BorderFactory. Det finns ett antal olika Border-implementeringar vilka du kan testa. JComboBox Nu är det dags att skapa panelen med JComboBox-komponenten. Följande gäller för panelen: Layoutmanager: GridLayout, 2 rader och 1 kolumn Komponenter: JLabel Placeras överst i GridLayouten JComboBox Placeras underst i GridLayouten Border Dekorerar panelen Metoden getovrigtpanel() private JPanel getovrigtpanel() { JPanel panel = new JPanel(new GridLayout(2,1)); JLabel lblhobby = new JLabel("Hobby:"); String[] hobbies = {"familjen", "idrott", "vävning", "programmering", "huset", "frimärken"; lblhobby.setfont(new Font("Dialog", Font.BOLD, 12)); cbhobbies = new JComboBox(hobbies); try { cbhobbies.setselectedindex(0); catch (IllegalArgumentException e) { panel.setborder(borderfactory.createtitledborder("övrigt")); panel.add(lblhobby); panel.add(cbhobbies); return panel; 5

6 Kommentarer Sträng-arrayen används för att initiera JComboBox-komponenten med värden. Referens till JComboBox-komponenterna behövs när valt värde ska avläsas, Därför är refernsvariabeln till JcombpBox-komponenten instansvariabel i klassen. Däremot skapas komponenten i denna metod. När man ska sätta ett av alternativen i comboboxen som förvalt så måste man fånge ett undantag. Kopiera koden som den är så får du lära dig mer om undantag i F18. Ett fönster att placera CivilstandOvrigt -panelen i Klassen TestCivilstandOvrigt ärver inte JFrame utan fönstret är en instansvariabel i klassen. I konstruktorn designas fönstret i vanlig ordning. Enda skillnaden mot att ärva JFrame att fönstret måste skapas med new och referensvariabeln till fönstret (frame) måste användas vid anrop till fönster-metoderna. import java.awt.event.*; public class TestCivilstandOvrigt implements ActionListener { private JFrame frame = new JFrame(); private JButton update = new JButton("Uppdatera textytan"); private JTextArea textyta = new JTextArea(); private CivilstandOvrigt co = new CivilstandOvrigt(); /** Creates a new instance of TestCivilstandOvrigt */ public TestCivilstandOvrigt() { Container c = frame.getcontentpane(); frame.setsize(300,200); frame.setdefaultcloseoperation(jframe.exit_on_close); textyta.seteditable(false); update.addactionlistener(this); c.add(co, BorderLayout.NORTH); c.add(textyta, BorderLayout.CENTER); c.add(update, BorderLayout.SOUTH); frame.setvisible(true); public void actionperformed(actionevent e) { textyta.settext("gift: " + co.getcivilstand() +"\nhobby: " + co.gethobby()); TestCivilstandOvrigt tny = new TestCivilstandOvrigt(); 6

7 Uppgift 3 Ärva JLabel Det går utmärkt att ärva av andra komponenter än JFrame och JPanel. I denna uppgift ska vi skapa en något specialiserad JLabel-komponent. Följande gäller för komponenten Den skapas med Dialog som typsnitt Texten är centrerad från början Bakgrundsfärgen syns När komponenten skapas måste man ange: text som ska visas stil storlek textfärg bakgrundsfärg För övrigt är komponenten som vilken JLabel-komponent som helst. public class Rubrik extends JLabel { public Rubrik(String content, int style, int fontsize, Color text, Color background) { Font font = new Font("Dialog", style, fontsize); settext(content); sethorizontalalignment(jlabel.center); setfont(font); setbackground(background); setopaque(true); setforeground(text); Kommentarer Klassen innehåller endast en konstruktor i vilka inställningarna görs: settext(content); texten anges sethorizontalalignment(jlabel.center); texten ska vara centrerad setfont(font); typsnittet anges setbackground(background); bakgrundsfärgen anges och komponenten görs ickesetopaque(true); transparent setforeground(text); textfärgen anges main-metod med fönster För att test utseendet på Rubrik-komponenten kan du skriva nedanstående main-metod (välj själv vilken klass den ska vara i). Som du ser så skapas bl.a. ett fönster i mainmetoden. Fönstret ges storlek, görs stängbart och synligt. Innan det görs synligt så placeras en komponent av typen Personuppgiter i fönstret. Komponenten kommer att fylla hela fönstret. 7

8 JFrame frame = new JFrame(); Rubrik rubrik1 = new Rubrik("Rött och svart", Font.BOLD, 24, Color.red, Color.black); Rubrik rubrik2 = new Rubrik("Blå text - gul bakgrund", Font.PLAIN, 16, Color.blue, Color.yellow); Rubrik rubrik3 = new Rubrik("Denna rubrik är i SOUTH", Font.ITALIC + Font.BOLD, 12, Color.white, Color.black); Container c = frame.getcontentpane(); frame.setsize(500,150); frame.setdefaultcloseoperation(jframe.exit_on_close); c.add(rubrik1, BorderLayout.NORTH); c.add(rubrik2, BorderLayout.CENTER); c.add(rubrik3, BorderLayout.SOUTH); frame.setvisible(true); 8

9 Uppgift 4 Ärva JPanel Nu ska du använda klasserna i Uppgift 1 Uppgift 2 och Uppgift 3 för att skapa en panel, Personuppgifter, med utseendet till höger. Du får själv avgöra vilken av panelens komponenter som ska växa/krympa om panelens höjd ändras. Nedanstående klass kan du komplettera med kod: public class Personuppgifter extends JPanel { private Rubrik rubrik = new Rubrik(); private NamnYrke ny = new NamnYrke(); private CivilstandOvrigt co = new CivilstandOvrigt(); public Personuppgifter() { public String getnamn() { public String getyrke() { public boolean getcivilstand() { public String gethobby() { main-metod med fönster För att test utseendet på panelen kan du skriva nedanstående main-metod (välj själv vilken klass den ska vara i). JFrame frame = new JFrame(); Personuppgifter personuppgifter = new Personuppgifter(); Container c = frame.getcontentpane(); frame.setsize(300,180); frame.setdefaultcloseoperation(jframe.exit_on_close); c.add(personuppgifter, BorderLayout.CENTER); frame.setvisible(true); 9

10 Uppgift 5 Samla information med dialog, del 1 En panel som är byggd för att samla in den användar-information som programmet behöver kan placeras i en dialog. När användaren är klar med inmatningen klickar hon på OK. Vill hon avbryta inmatningen så klickar hon på avbryt. Panelen i Uppgift 4, Personuppgifter, ska vi använda för att samla lite information om en person. Så här fungerar koden i testprogrammet: Användaren får se en dialog som innehåller en Personuppgifter-panel. Om användaren klickar på OK så Dialogen stängs Värden avläses med hjälp av getmetoder De avlästa värdena visas i en ny dialog (jmf. med Output.meddelande()). Annars Dialogen stängs En ny dialog meddelar att användaren klickade på Avbryt Klassen DialogExempel visar hur man använder dialoger för att samla/visa information. Efter programmet kan du läsa mer om metoden JOptionPane.showConfirmDialog(...). import javax.swing.joptionpane; public class DialogExempel { public void exempel() { Personuppgifter persinfo = new Personuppgifter(); String namn, yrke, hobby, meddelande; boolean gift; int result = JOptionPane.showConfirmDialog(null, persinfo, "Fönstrets titel är här", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); if( result == JOptionPane.OK_OPTION ) { // Klick på OK namn = persinfo.getnamn(); yrke = persinfo.getyrke(); hobby = persinfo.gethobby(); gift = persinfo.getcivilstand(); meddelande = "Namn: " + namn + "\nyrke: " + yrke + "\ngift: " + gift + "\nhobby: " + hobby; JOptionPane.showMessageDialog(null, meddelande); else if (result == JOptionPane.CANCEL_OPTION ) { // Avbryt JOptionPane.showMessageDialog(null, "Användaren klickade på Avbryt"); DialogExempel de = new DialogExempel(); de.exempel(); 10

11 Lite information om dialoger I program har man ofta användning av att öppna en dialog för att få information av användaren. I klassen JOptionPane finns det metoder som stödjer detta, bl.a. showconfirmdialog(component parentcomponent, Object message, String title, int optiontype, int messagetype) Som du ser har just denna version många parametrar i parameterlistan. Det finna andra varianter av parameterlista (både koratare och längre) för denna metod. Detta kan du finna mer information om i API-dokumentationen ( Samtidigt kan du passa på att studera de andra metoderna som öppnar dialoger show???dialog där??? kan vara Confirm, Input, Message och Option. Förklaring av vad parametrarna innebär: parentcomponent message title optiontype Om du skickar med värdet null vid anropet så kommer dialogen att öppnas mitt på skärmen. I detta exempel kommer message att vara en JPanel-komponent som visar sig i dialogen. Titel på fönstret Anger vilka kanppar som ska vara synliga (4 värden möjliga) JOptionPane.DEFAULT_OPTION JOptionPane.YES_NO_OPTION JOptionPane.YES_NO_CANCEL_OPTION JOptionPane.OK_CANCEL_OPTION messagetype Anger vilken typ av bild som ska visas i dialogen (5 värden möjliga kan vara ndra bilder) JOptionPane.ERROR_MESSAGE JOptionPane.INFORMATION_MESSAGE JOptionPane.WARNING_MESSAGE JOptionPane.QUESTION_MESSAGE JOptionPane.PLAIN_MESSAGE (ingen bild) 11

12 Uppgift 6 Samla information med dialog, del 2 (Extra) Om panelen man använder endast är till för att visa i en speciell dialog kan man ha JPanelkomponenten som attribut i klassen (ej arv) och lägga till en metod för att visa dialogen. Skapa klassen Personuppgifter2 och skriv en instansvariabel av typen Jpanel. public class Personuppgifter2 { private JPanel panel = new JPanel(new BorderLayout()); // lägg till Personuppgifter1-klassens innehåll här // ändra konstruktorns namn // ändra i konstruktorn så att attributet panel designas Kopiera hela Personuppgifter1 till klassen Personuppgifter2. Ändra namnet på konstruktorn till Personuppgifter2(). Skriv metoden showdialog. public int showdialog() { return JOptionPane.showConfirmDialog(null, panel, "Fönstrets titel är här", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); fördelen med denna versionen är att det publika gränssnittet endast består av: get-metoderna + showdialog det som ärvs från Object Testkod av Personuppgifter2 Personuppgifter2 persinfo = new Personuppgifter2(); String meddelande; int result = persinfo.showdialog(); if( result == JOptionPane.OK_OPTION ) { // Klick på OK meddelande = "Namn: " + persinfo.getnamn() + "\nyrke: " + persinfo.getyrke() + "\ngift: " + persinfo.getcivilstand() + "\nhobby: " + persinfo.gethobby(); JOptionPane.showMessageDialog(null, meddelande); else if (result == JOptionPane.CANCEL_OPTION ) { // Avbryt JOptionPane.showMessageDialog(null, "Användaren klickade på Avbryt"); 12

13 Uppgift 7 Korrekt sätt att konstruera fönster (Extra) För att konstruera fönster på ett säkert och korrekt sätt ska alltid grafik- och händelse-tråden sköta konstruktionen. Detta gör amn med ett enkelt handgrepp som blir lättare att förstå när du studerat avsnittet om trådar (F20). Satserna som skapar eller anropar metoder i grafiska komponenter ska bäddas in i ett anrop till metoden SwingUtilities.InvokeLater: javax.swing.swingutilities.invokelater(new Runnable() { public void run() { // anrop till grafiska komponenter ); Kommentar Som argument till invokelater skapas en klass som implementerar Runnable (run-metoden måste implementeras i klassen). run-metoden anropar de grafiska komponenterna. Exempel : Uppgift 1 javax.swing.swingutilities.invokelater(new Runnable() { public void run() { TestNamnYrke tny = new TestNamnYrke(); ); Exempel : Uppgift 3 javax.swing.swingutilities.invokelater(new Runnable() { public void run() { JFrame frame = new JFrame(); Rubrik rubrik1 = new Rubrik("Rött och svart", Font.BOLD, 24, Color.red, Color.black); Rubrik rubrik2 = new Rubrik("Blå text - gul bakgrund", Font.PLAIN, 16, Color.blue, Color.yellow); Rubrik rubrik3 = new Rubrik("Denna rubrik är i SOUTH", Font.ITALIC + Font.BOLD, 12, Color.white, Color.black); Container c = frame.getcontentpane(); frame.setsize(500,150); frame.setdefaultcloseoperation(jframe.exit_on_close); c.add(rubrik1, BorderLayout.NORTH); c.add(rubrik2, BorderLayout.CENTER); c.add(rubrik3, BorderLayout.SOUTH); frame.setvisible(true); ); 13

14 Exempel på lösningar Uppgift 1 NamnYrke public class NamnYrke extends JPanel { private JTextField tfnamn = new JTextField(); private JTextField tfyrke = new JTextField(); private JLabel lblnamn = new JLabel("Namn"); private JLabel lblyrke = new JLabel("Yrke"); public NamnYrke() { setlayout(new BorderLayout()); JPanel labelpanel = getlabelpanel(); JPanel inputpanel = getinputpanel(); labelpanel.setpreferredsize(new Dimension(50,0)); add(labelpanel, BorderLayout.WEST); add(inputpanel, BorderLayout.CENTER); /********* Design-metoder **********/ private JPanel getlabelpanel() { JPanel panel = new JPanel(new GridLayout(2,1)); Font dialogb12 = new Font("Dialog", Font.BOLD, 12); lblnamn.setfont(dialogb12); lblyrke.setfont(dialogb12); panel.add(lblnamn); panel.add(lblyrke); return panel; private JPanel getinputpanel() { JPanel panel = new JPanel(new GridLayout(2,1)); panel.add(tfnamn); panel.add(tfyrke); return panel; /********** get-metoder ***********/ public String getnamn() { return tfnamn.gettext(); public String getyrke() { return tfyrke.gettext(); 14

15 Uppgift 2 CivilstandOvrigt import javax.swing.event.*; import java.awt.event.*; public class CivilstandOvrigt extends JPanel { private JRadioButton rbogift = new JRadioButton("ogift"); private JRadioButton rbgift = new JRadioButton("gift"); private JComboBox cbhobbies; public CivilstandOvrigt() { setlayout(new GridLayout(1,2)); add(getcivilstandpanel()); add(getovrigtpanel()); private JPanel getcivilstandpanel() { JPanel panel = new JPanel(new GridLayout(2,1)); ButtonGroup grupp = new ButtonGroup(); rbogift.setselected(true); grupp.add(rbogift); grupp.add(rbgift); panel.setborder(borderfactory.createtitledborder("civilstånd")); panel.add(rbogift); panel.add(rbgift); return panel; private JPanel getovrigtpanel() { JPanel panel = new JPanel(new GridLayout(2,1)); JLabel lblhobby = new JLabel("Hobby:"); String[] hobbies = {"familjen", "idrott", "vävning", "programmering", "huset", "frimärken"; lblhobby.setfont(new Font("Dialog", Font.BOLD, 12)); cbhobbies = new JComboBox(hobbies); try { cbhobbies.setselectedindex(0); catch (IllegalArgumentException e) { panel.setborder(borderfactory.createtitledborder("övrigt")); panel.add(lblhobby); panel.add(cbhobbies); return panel; // true = gift, false = ogift public boolean getcivilstand() { return rbgift.isselected(); public String gethobby() { return (String)cbHobbies.getSelectedItem(); 15

16 Uppgift 4 Personuppgifter public class Personuppgifter extends JPanel { private Rubrik rubrik = new Rubrik("Personuppgifter", Font.BOLD, 16, Color.white, Color.black); private NamnYrke ny = new NamnYrke(); private CivilstandOvrigt co = new CivilstandOvrigt(); public Personuppgifter() { setlayout(new BorderLayout()); add(rubrik, BorderLayout.NORTH); add(ny, BorderLayout.CENTER); add(co, BorderLayout.SOUTH); public String getnamn() { return ny.getnamn(); public String getyrke() { return ny.getyrke(); public boolean getcivilstand() { return co.getcivilstand(); public String gethobby() { return co.gethobby(); JFrame frame = new JFrame(); Personuppgifter personuppgifter = new Personuppgifter(); Container c = frame.getcontentpane(); frame.setsize(300,180); frame.setdefaultcloseoperation(jframe.exit_on_close); c.add(personuppgifter, BorderLayout.CENTER); frame.setvisible(true); 16

17 Uppgift 6 Samla information med dialog, del 2 (Extra) public class Personuppgifter2 { private JPanel panel = new JPanel(new BorderLayout()); private Rubrik rubrik = new Rubrik("Personuppgifter", Font.BOLD, 16, Color.white, Color.black); private NamnYrke ny = new NamnYrke(); private CivilstandOvrigt co = new CivilstandOvrigt(); public Personuppgifter2() { panel.add(rubrik, BorderLayout.NORTH); panel.add(ny, BorderLayout.CENTER); panel.add(co, BorderLayout.SOUTH); public String getnamn() { return ny.getnamn(); public String getyrke() { return ny.getyrke(); public boolean getcivilstand() { return co.getcivilstand(); public String gethobby() { return co.gethobby(); public int showdialog() { return JOptionPane.showConfirmDialog(null, panel, "Fönstrets titel är här", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); Personuppgifter2 persinfo = new Personuppgifter2(); String meddelande; int result = persinfo.showdialog(); if( result == JOptionPane.OK_OPTION ) { // Klick på OK meddelande = "Namn: " + persinfo.getnamn() + "\nyrke: " + persinfo.getyrke() + "\ngift: " + persinfo.getcivilstand() + "\nhobby: " + persinfo.gethobby(); JOptionPane.showMessageDialog(null, meddelande); else if (result == JOptionPane.CANCEL_OPTION ) { // Avbryt JOptionPane.showMessageDialog(null, "Användaren klickade på Avbryt"); 17

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

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

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

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

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

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

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

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

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

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

Malmö högskola 2007/2008 Teknik och samhälle Laboration 9 Avsikten med denna laboration är att du ska jobba vidare med klasser. Uppgifterna går ut på att skriva metoder och att skriva konstruktorer. Laborationen bygger vidare på laboration 8. Skapa

Läs mer

Laboration 24 Databasen MySQL och java

Laboration 24 Databasen MySQL och java Laboration 24 Databasen MySQL och java Avsikten med denna laboration är att du ska hämta information ur en eller flera tabeller och visa resultatet i en JTable-komponent. Du ska ändra innehållet i tabellen

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

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

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

070602 kl 10.15-15.15

070602 kl 10.15-15.15 Malmö högskola 1 Tentamen på kursen DA7800, Programmering med Java del II 070602 kl 10.15-15.15 Tillåtna hjälpmedel: En valfri Javabok Vid bedömning av lösningarna tas hänsyn till om dessa uppfyller de

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

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

Malmö högskola 2008/2009 CTS

Malmö högskola 2008/2009 CTS Laboration 8 Avsikten med laborationen är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom

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

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

Java-concept och Swing. Swing low, sweet chariot

Java-concept och Swing. Swing low, sweet chariot Java-concept och Swing Swing low, sweet chariot Javas Swing-API En del av Javas standard-api API - application programming interface Ett klassbibiliotek som följer med Java Är designat med många OO-concept

Läs mer

Laboration 18 Undantag, Class

Laboration 18 Undantag, Class Laboration 18 Undantag, Class Avsikten med denna laboration är att du ska träna på att använda undantag, använda några av metoderna i klassen Class och skriva några enkla rekursiva metoder. Sist i laborationen

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

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

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

Malmö högskola 2007/2008 Teknik och samhälle Laboration 8 Avsikten med denna laboration är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom

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

Lösningar för tenta 3 DAT043,

Lösningar för tenta 3 DAT043, Lösningar för tenta 3 DAT043, 2018-08-22. Uppgift 1 class Person{ public String förnamn; public String efternamn; public int ålder; private double längd; private double vikt; public Person(String förnamn,

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

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

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

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

Grafiska användargränsnitt i Java. Föreläsning 7 Innehåll. Använda klasspaketet Swing. Klasspaket i Java. Grafiska användargränsnitt i Java

Grafiska användargränsnitt i Java. Föreläsning 7 Innehåll. Använda klasspaketet Swing. Klasspaket i Java. Grafiska användargränsnitt i Java Föreläsning 7 Innehåll Grafiska användargränsnitt i Java Grafiska användargränsnitt i Java Komponenter (fönster, knappar, ) Layout Händelsehantering (Hur man får någonting att hända när användaren t.ex.

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

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

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

Föreläsning 10. Mer om grafiska komponenter Händelsestyrda program. Layout Managers Föreläsning 10 Mer om grafiska komponenter Händelsestyrda program Layout Managers Utplaceringen av komponenter i en behållare styrs med en layout manager. Det finns olika layout managers: FlowLayout GridLayout

Läs mer

Lösningsförslag till tentamen

Lösningsförslag till tentamen Uppgift 1 Lösningsförslag till tentamen 110317 a) Sant. b) Falskt. I ett RAM-minne är åtkomsttiden densamma för alla minnesadresser. c) Falskt. TCP är ett protokoll på transportlagret. d) Falskt. Binärsökning

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

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

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

Lösningsförslag till tentamen

Lösningsförslag till tentamen till tentamen 1 (5) Kurs Objektorienterad programmering Kursbeteckning DAT042 Program D2, TKDAT Läsår 2012/2013, lp 1 Examinator Uno Holmer Uppgift 1 (10 p) Ingen lösning ges. Se kurslitteraturen. Uppgift

Läs mer

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

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2 DSV SU/KTH sid 1 (7) PROG2 PROG2 Tenta 2014-06-03 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

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

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

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

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

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java. Laboration 1 Avsikt Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java. Del 1 Ta fram dokumentet NetBeans5_5.pdf från kurssidan och arbeta med

Läs mer

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

Föreläsning 10. ADT:er och datastrukturer Föreläsning 10 ADT:er och datastrukturer ADT:er och datastrukturer Dessa två begrepp är kopplade till varandra men de står för olika saker. En ADT (abstrakt datatyp) är just abstrakt och är inte kopplad

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

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

Föreläsning 10. Mer om grafiska komponenter Händelsestyrda program. Layout Managers. Exempel: FlowLayout. Klassen FlowLayout Layout Managers Föreläsning 10 Mer om grafiska komponenter Händelsestyrda program Föreläsn Utplaceringen av komponenter i en behållare styrs med en layout manager. Det finns olika layout managers: FlowLayout

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

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

2I1073 Lektion 2. Lektion 2a. Lektion 2a. Servlets, säkerhet, och filhantering. import java.io.*; import javax.servlet.*; import javax.servlet.http. 2I1073 Lektion 2 Servlets, säkerhet, och filhantering KTH-MI Peter Mozelius import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Lektion2a extends HttpServlet { public void

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

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

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

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

Lösningsförslag till tentamen

Lösningsförslag till tentamen Uppgift 1 a) Sant. b) Sant. c) Sant. Lösningsförslag till tentamen 170818 d) Falskt. IPv6 anger en IP-adress med 132 bitar. e) Falskt. Spoofing åsyftar användning av förfalskad eller lånad identitet på

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

Ö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

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

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 2014-05-02 Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

PROG2 Tenta 2014-05-02 Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2 DSV SU/KTH sid 1 (6) PROG2 PROG2 Tenta 2014-05-02 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

Lösningsförslag till tentamen

Lösningsförslag till tentamen Uppgift 1 Lösningsförslag till tentamen 170314 a) Falskt. Talområdet för ett 8-bitars tal på tvåkomplementsform är -128 till 127. b) Sant. c) Falskt, HTTP är ett kommunikationsprotokoll som används för

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

Lösningsförslag till tentamen 150317

Lösningsförslag till tentamen 150317 Uppgift 1 Lösningsförslag till tentamen 150317 1) Sant 2) Falskt. I ett RAM-minne är åtkomsttiden densamma för alla minnesadresser.) 3) Falskt. Det är TCP som använder sig av en fast kommunikationsförbindelse.)

Läs mer

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

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2 DSV SU/KTH sid 1 (7) PROG2 PROG2 Tenta 2014-01-17 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

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

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

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

Properties. Användbara metoder som kan anropas i propertychanged:

Properties. Användbara metoder som kan anropas i propertychanged: Properties Ett objekt kan ha vissa egenskaper (som beskrivs med instansvariabler). En enkel egenskap X avläses och sätts med metoderna getx() och setx(värde). En indexerad egenskap (från t.ex. en array)

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

Frames, menyer och GUI-program

Frames, menyer och GUI-program 15 Frames, menyer och GUI-program Frames En frame-klass Om konstruktorer - igen Funktionella fönster Menyer Popupmenyer GUI-applikationer Dialogrutor Printerutskrift Kap 15: Sid 2 Frames Redan i kapitel

Läs mer

Introduktion till arv

Introduktion till arv Introduktion till arv 6 INTRODUKTION TILL ARV Arv Generell-Speciell Arv för att utnyttja det vi redan gjort Återanvändning Basklass Härledd klass Varför arv? Inför en subklass för att uttrycka specialisering

Läs mer

Tentamen FYTA11 Javaprogrammering

Tentamen FYTA11 Javaprogrammering Lunds universitet FYTA11 Institutionen för Teoretisk fysik HT 10 Tentamen FYTA11 Javaprogrammering Måndag 10:e januari 2011, 09:00 13:00 Instruktioner Hjälpmedel: enkla ritverktyg och Javadoc-genererade

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

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

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

27. GUI Programming. Java. Summer 2008 Instructor: Dr. Masoud Yaghini

27. GUI Programming. Java. Summer 2008 Instructor: Dr. Masoud Yaghini 27. Java Summer 2008 Instructor: Dr. Masoud Yaghini Until now, you have only used dialog boxes and the command window for input and output. You used JOptionPane.showInputDialog to obtain input, and JOptionPane.showMessageDialog

Läs mer

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)

Läs mer

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Hashtabeller

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. Swing Många klasser MER Java Foundation Classes (JFC) Swing Jättemånga klasser Vettigt att lära sig dem utantill Tror inte det Hur lära sig? Principerna Model - view - controller Observer - observed Öva,

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

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

lgammal2.txt // Lösningar till gammal tentamen // Uppgift 1 a // Lösningar till gammal tentamen // Uppgift 1 a /* Felet beror på att det är klassen på referensen som avgör vilka metoder man får köra på ett objekt, inte klassen på objektet. På rad 5 i klassen C har

Läs mer

4.4 Swing ett interaktivt grafiskt gränssnitt

4.4 Swing ett interaktivt grafiskt gränssnitt 4.4 Swing ett interaktivt grafiskt gränssnitt Våra javaprogram har hittills bara haft utdata, inga indata. Det var utdata som skrevs ut från programmet till bildskärmen antingen med metoden showmessagedialog()

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

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

Lösningsförslag till tentamen

Lösningsförslag till tentamen Uppgift 1 a) Falskt! Bitmönstret är 10010111 b) Falskt! Memory Manager handhar Lösningsförslag till tentamen 170609 c) Falskt. En trojansk häst är ett program i förklädnad. Det är således program som på

Läs mer

Tentamen. Grundläggande programmering i Java A 5p, DTAA32 2003-03-21

Tentamen. Grundläggande programmering i Java A 5p, DTAA32 2003-03-21 Mitthögskolan ITM Institutionen för Informationsteknologi och medier. Bertil Danielsson 060-14 86 82 Jan-Erik Jonsson 060-14 87 90 Tentamen i Java A Sida 1/6 Tentamen Grundläggande programmering i Java

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

LYCKA TILL!!! TENTAMEN I Programmeringsteknik F1. Var vänlig och läs detta: CTH 2007-12-18 TIN 211. DATAVETENSKAP Göteborg (2007-12-17) TENTAMEN

LYCKA TILL!!! TENTAMEN I Programmeringsteknik F1. Var vänlig och läs detta: CTH 2007-12-18 TIN 211. DATAVETENSKAP Göteborg (2007-12-17) TENTAMEN DATAVETENSKAP Göteborg (2007-12-17) TENTAMEN CTH 2007-12-18 TIN 211 TENTAMEN I Programmeringsteknik F1 DAG: TISDAG TID: 14.00-18.00 SAL: M Ansvarig: Erland Holmström tel. 1007, hem 270358. Resultat: Anslås

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

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

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

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

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

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

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

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan. Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen

Läs mer

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

Grafiskt användargränssnitt (GUI-Graphical User Interface) intro Komponenter Grafiskt användargränssnitt (GUI-Graphical User Interface) intro Komponenter De komponenter som vi ska titta lite närmare på den här gången är paneler (JPanel), knappar (JButton), textfält (JTextField).

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

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