För att hitta filen gå till mappen NetBeansProjects. Välj undermappen med rätt projekt, och sedan undermapp dist. Där ligger.jar-filen.
|
|
- Barbro Sandberg
- för 7 år sedan
- Visningar:
Transkript
1 Java utan netbeans Du har gjort ett program i netbeans Hur exportera det så att andra kan köra det utan att använda netbeans? Välj projektet som main project Högerklicka på det och välj Clean and Build Därmed skapas en jar fil: en fil som innehåller kompilerad Java För att hitta filen gå till mappen NetBeansProjects Välj undermappen med rätt projekt, och sedan undermapp dist Där ligger jar-filen Om Java är rätt installerat (netbeans behövs inte) räcker det att dubbelklicka på jar filen för att köra programmet
2 Javas namnkonvention camelcase : ord skrivs ihop och varje ord börjar på stor bokstav Namn på klasser och interface skrivs i CamelCase och börjar på stor bokstav Konstanter skrivs i UPPERCASE, ord skiljs av underscore Allt annat skrivs i camelcase och börjar på liten bokstav
3 Exempel class Clock { class MyClock { int angle void computeangle(int newtime final static int CLOCK_WIDTH = 300;
4 Magiska siffror Sifferkonstanter som 200, 314, får endast förekomma i konstantdeklarationer gdrawline(150, 150, 180, 180)
5 Magiska siffror Sifferkonstanter som 200, 314, får endast förekomma i konstantdeklarationer gdrawline(150, 150, 180, 180) final int CENTER_X = 150; final int CENTER_Y = 150; final int LINE_SIZE = 30; gdrawline(center_x, CENTER_Y, CENTER_X+LINE_SIZE, CENTER_Y+LINE_SIZE)
6 Omfaktorisering void paintcomponent (Graphics g) {
7 Omfaktorisering void paintcomponent (Graphics g) {
8 Omfaktorisering void paintcomponent (Graphics g) {
9 Omfaktorisering void paintcomponent (Graphics g) { painthands(g); paintface(g); paintnumerals(g); void painthands(graphics g) { void paintface (Graphics g) { void paintnumerals (Graphics g) {
10 Krav på kod Vettiga namn som följer namnkonventionen Inga magiska nummer Uppdelning i små metoder Objektorientering: metoderna ligger i lämpliga klasser
11 Javaprojekten 3 stycken projekt Grupper om 2 studenter Olika för alla 3 projekten Fredagarnas labtillfällen obligatoriska Innan redovisning ska koden inspekteras Reservdag innan jul
12 Kodinspektionsprotokoll Ifyllt protokoll måste uppvisas vid redovisning av projektuppgift Ifylles av grupp som skrivit koden Uppgift: Grupp: Ifylles av inspekterande grupp Klarmarkera med kryss i rutorna Identitet: Programmet har en inledande kommentar som anger vilka som löst vilken uppgift och när Typografi: Konsekventa indragningar och radbyten för att öka läsbarheten Namnval: Informativa namn som följer javas camelcasetradition Objektorientering: Minimal användning av static Funktionsuppdelning: Metoderna är inte för långa och varje metod gör bara en sak Lokalitet: Variabler deklarerade så lokalt som möjligt Inga magiska nummer: Konstanter är deklarerade med informativa namn Inspekterande grupp: Datum
13 Layout Hur lägger java in element i en panel? Svar: Det beror på vilken layout manager som används Det finns fler typer av layout managers än ni någonsin kommer att behöva Vi behandlar bara några stycken Se Horstmann kap 11 Mer finns på javase/tutorial/uiswing/layout/indexhtml
14 Grundidé Layout managers är objekt Man kan skapa dem genom att instansiera motsvarande klass En layout manager kan bindas till en JPanel med JPanelens metod setlayout() Därefter kontrollerar managern automatiskt allt som läggs in med panelens add() metod
15 Exempel: border layout North West Center East South
16 Idiom 1 JPanel mypanel = new JPanel(); En JPanel skapas och får en border layout mypanelsetlayout(new BorderLayout()); somelabel läggs i norra fältet mypaneladd(somelabel, BorderLayoutNORTH)
17 Idiom 2 class MyPanel extends JPanel { MyPanel() { setlayout (new BorderLayout()); MyPanel är en egen slags JPanel, och får en BorderLayout i konstruktorn somelabel läggs i norra fältet add(somelabel, BorderLayoutNORTH)
18 Grid layout Panelen delas in i ett rutnät add() lägger in med början på övre vänstra hörnet, och fyller i åt höger När raden är slut börjar man på nästa
19 JPanel mypanel = new JPanel(); mypanelsetlayout(new GridLayout(3,4)); mypaneladd(label1); mypaneladd(label2); mypaneladd(label12);
20 Interaktiv grafik: Knappar En knapp är något man kan klicka på med musen En knapp ligger i en JPanel Hur skapas en knapp? Vad händer när man klickar på den?
21 Skapa en knapp Knapptyper = klasser Knappar = objekt Finns ett antal olika klasser Den enklaste är JButton Konstruktorn tar en parameter: en textsträng som ska stå på knappen Finns metoder för att ändra färg etc
22 Exempel buttondemo
23 En panel där det ritas class DrawPanel extends JPanel { upp en stor cirkel DrawPanel() { setpreferredsize(new Dimension(500, 500)); public void paintcomponent(graphics g) { gdrawoval(100,100,300,300);
24 JFrame theframe = new JFrame("Demo"); theframesetdefaultcloseoperation(jframeexit_on_close); JPanel buttonpanel = new JPanel(); buttonpanelsetlayout(new GridLayout(2,3)); DrawPanel drawpanel = new DrawPanel(); for (int i=1; i<=6; i++) { JButton button = new JButton(i+""); buttonpaneladd(button); Container pane = theframegetcontentpane(); panesetlayout(new BorderLayout()); paneadd(drawpanel, BorderLayoutCENTER); paneadd(buttonpanel, BorderLayoutNORTH); theframepack(); theframesetvisible(true);
25 JFrame theframe = new JFrame("Demo"); theframesetdefaultcloseoperation(jframeexit_on_close); JPanel buttonpanel = new JPanel(); buttonpanelsetlayout(new GridLayout(2,3)); DrawPanel drawpanel = new DrawPanel(); for (int i=1; i<=6; i++) { JButton button = new JButton(i+""); buttonpaneladd(button); Container pane = theframegetcontentpane(); panesetlayout(new BorderLayout()); paneadd(drawpanel, BorderLayoutCENTER); paneadd(buttonpanel, BorderLayoutNORTH); theframepack(); theframesetvisible(true);
26 JFrame theframe = new JFrame("Demo"); theframesetdefaultcloseoperation(jframeexit_on_close); JPanel buttonpanel = new JPanel(); buttonpanelsetlayout(new GridLayout(2,3)); DrawPanel drawpanel = new DrawPanel(); for (int i=1; i<=6; i++) { JButton button = new JButton(i+""); buttonpaneladd(button); Container pane = theframegetcontentpane(); panesetlayout(new BorderLayout()); paneadd(drawpanel, BorderLayoutCENTER); paneadd(buttonpanel, BorderLayoutNORTH); theframepack(); theframesetvisible(true);
27 JFrame theframe = new JFrame("Demo"); theframesetdefaultcloseoperation(jframeexit_on_close); JPanel buttonpanel = new JPanel(); buttonpanelsetlayout(new GridLayout(2,3)); DrawPanel drawpanel = new DrawPanel(); for (int i=1; i<=6; i++) { JButton button = new JButton(i+""); buttonpaneladd(button); Container pane = theframegetcontentpane(); panesetlayout(new BorderLayout()); paneadd(drawpanel, BorderLayoutCENTER); paneadd(buttonpanel, BorderLayoutNORTH); theframepack(); theframesetvisible(true);
28 JFrame theframe = new JFrame("Demo"); theframesetdefaultcloseoperation(jframeexit_on_close); JPanel buttonpanel = new JPanel(); buttonpanelsetlayout(new GridLayout(2,3)); DrawPanel drawpanel = new DrawPanel(); for (int i=1; i<=6; i++) { JButton button = new JButton(i+""); buttonpaneladd(button); Container pane = theframegetcontentpane(); panesetlayout(new BorderLayout()); paneadd(drawpanel, BorderLayoutCENTER); paneadd(buttonpanel, BorderLayoutNORTH); theframepack(); theframesetvisible(true);
29 JFrame theframe = new JFrame("Demo"); theframesetdefaultcloseoperation(jframeexit_on_close); JPanel buttonpanel = new JPanel(); buttonpanelsetlayout(new GridLayout(2,3)); DrawPanel drawpanel = new DrawPanel(); for (int i=1; i<=6; i++) { JButton button = new JButton(i+""); buttonpaneladd(button); Container pane = theframegetcontentpane(); panesetlayout(new BorderLayout()); paneadd(drawpanel, BorderLayoutCENTER); paneadd(buttonpanel, BorderLayoutNORTH); theframepack(); theframesetvisible(true);
30 Vad händer när man klickar på en knapp? Det genereras ett så kallat event (händelse) Finns många slags typer av event: knapptryckningar, musrörelser, tangentbordstryckningar, timersignaler Du gissade det: en eventtyp är en klass Ett event är ett objekt Eventobjekt genereras automatiskt vid motsvarande händelse Du behöver alltså inte instansiera events själv
31 Event source Varje event har en source: den (grafiska) komponent som gav upphov till eventet Ex: klickning på en knapp ger ett event med knappen som source Ex: musrörelse i en JPanel ger ett event med JPanel-en som source Ex: en tangentbordstryckning ger ett event med source = det aktiva grafiska objektet (oftast det där du klickat senast) Ex: en timersignal har motsvarande timer som source
32 Event listener En event listener är ett objekt som ligger och väntar på event av rätt typ och från en viss source När ett sådant event inträffar går rätt metod i lyssnaren igång automatiskt Du får själv programmera den metoden så att den gör vad du tänkt 1) skapa lyssnare, 2) bind till source OBS Events kommer automatiskt Lyssnarklasser programmerar du själv
33 Events and Listeners Event Component Listener!"#$%&$'(')"$*+(#)" %,-"('(/,)(",'"(0(')"!"#$//(1&$'23'"431)('(/" $*+(#)"31"2(13'(2")$" /(1&$'2")$")5("(0(')" 65('")5("(0(')"$##7/18")5("#$%&$'(')"#,441" )5(",&&/$&/3,)("%()5$2"$9")5("431)('(/8" &,113'",'"$*+(#)")5,)"2(1#/3*(1")5("(0(')" 4-51
34 Lyssnarklasser Det finns olika slags lyssnarklasser för olika slags event Ex: MouseListener (tex musklick i en JPanel) KeyListener (tex tangenttryckningar) ActionListener (tex Timer eller klick på en JButton)
35 Göra en lyssnarklass 1 Deklarera rätt lyssnartyp i klasshuvudet med ordet implements class MyListener implements KeyListener { 2 Se till att definiera de metoder som just den lyssnartypen måste ha Tex en KeyListener måste ha keytyped() keypressed() keyreleased() Varje sådan metod har exakt en parameter av rätt typ Tex för KeyListener är det typen KeyEvent Metoden ska vara public void
36 Använda Lyssnarklass Instansiera ett objekt av lyssnarklassen för att få ett lyssnarobjekt Bind det till det objekt som ska avlyssnas genom en addlistener - metod Tex för KeyListener är metoden addkeylistener()
37 Idiom 1 import javaawt*; import javaxswing*; import javaawtevent*; class MyListener implements KeyListener { public void keytyped(keyevent e) { Skriv här det som ska hända vid tangenttryckning public void keypressed(keyevent e) { public void keyreleased(keyevent e) { mypanel = new JPanel(); mylistener = new MyListener(); mypaneladdkeylistener(mylistener);
38 Idiom 2 En klass blir sin egen lyssnare Enklast för små exempel class MyPanel extends JPanel implements KeyListener { MyPanel() { addkeylistener(this); Bind sig själv som lyssnare i konstruktorn! public void keytyped(keyevent e) { Skriv här det som ska hända vid tangenttryckning Definiera lyssnarmetoderna i samma klass public void keypressed(keyevent e) { public void keypressed(keyevent e) {
39 Idiom 1 Event Component Listener!"#$%&$'(')"$*+(#)" %,-"('(/,)(",'"(0(')"!"#$%%&'($)*+),"-+'&)&%" $/0&#"+'"*&'+,)&*"$" %&'($)*"$"1&"&2&)" Idiom 2 Event Component and also Listener This component may generate events, and can itself respond to the events
40 JPanel buttonpanel = new JPanel(); buttonpanelsetlayout(new GridLayout(2,3)); DrawPanel drawpanel = new DrawPanel(); for (int i=1; i<=6; i++) { JButton button = new JButton(i+""); buttonpaneladd(button); buttonaddactionlistener(drawpanel); Container pane = theframegetcontentpane(); panesetlayout(new BorderLayout()); paneadd(drawpanel, BorderLayoutCENTER); paneadd(buttonpanel, BorderLayoutNORTH); buttondemo2
41 class DrawPanel extends JPanel implements ActionListener { boolean fillit = false; DrawPanel() { setpreferredsize(new Dimension(500, 500)); public void paintcomponent(graphics g) { gsetcolor(colorwhite); gfillrect(0,0,500,500); gsetcolor(colorblack); if (fillit) { gfilloval(100, 100, 300, 300); else { gdrawoval(100, 100, 300, 300); public void actionperformed(actionevent e) { fillit =! fillit; repaint();
42 class DrawPanel extends JPanel implements ActionListener { boolean fillit = false; DrawPanel() { setpreferredsize(new Dimension(500, 500)); public void paintcomponent(graphics g) { gsetcolor(colorwhite); gfillrect(0,0,500,500); gsetcolor(colorblack); if (fillit) { gfilloval(100, 100, 300, 300); else { gdrawoval(100, 100, 300, 300); public void actionperformed(actionevent e) { fillit =! fillit; repaint();
43 class DrawPanel extends JPanel implements ActionListener { boolean fillit = false; DrawPanel() { setpreferredsize(new Dimension(500, 500)); public void paintcomponent(graphics g) { gsetcolor(colorwhite); gfillrect(0,0,500,500); gsetcolor(colorblack); if (fillit) { gfilloval(100, 100, 300, 300); else { gdrawoval(100, 100, 300, 300); public void actionperformed(actionevent e) { fillit =! fillit; repaint();
44 Men om vi vill att olika knappar ska få olika effekt?
45 Lösning 1: olika Listeners för olika knappar Onödigt krångligt om knapparna gör likartade saker
46 Lösning 2: samma Listener som tar reda på händelsorsak buttondemo4
47 class DrawPanel extends JPanel implements ActionListener { String filler = ""; DrawPanel() { setpreferredsize(new Dimension(500, 500)); public void paintcomponent(graphics g) { gsetcolor(colorwhite); gfillrect(0,0,500,500); gsetcolor(colorblack); gdrawoval(100, 100, 300, 300); gdrawstring(filler, 250,250); public void actionperformed(actionevent e) { filler = ((JButton)(egetSource()))getText(); repaint();
48 class DrawPanel extends JPanel implements ActionListener { String filler = ""; Text att skrivas ut DrawPanel() { setpreferredsize(new Dimension(500, 500)); public void paintcomponent(graphics g) { gsetcolor(colorwhite); gfillrect(0,0,500,500); gsetcolor(colorblack); gdrawoval(100, 100, 300, 300); gdrawstring(filler, 250,250); public void actionperformed(actionevent e) { filler = ((JButton)(egetSource()))getText(); repaint();
49 class DrawPanel extends JPanel implements ActionListener { String filler = ""; Text att skrivas ut DrawPanel() { setpreferredsize(new Dimension(500, 500)); public void paintcomponent(graphics g) { gsetcolor(colorwhite); gfillrect(0,0,500,500); gsetcolor(colorblack); gdrawoval(100, 100, 300, 300); gdrawstring(filler, 250,250); Här skrivs den ut public void actionperformed(actionevent e) { filler = ((JButton)(egetSource()))getText(); repaint();
50 class DrawPanel extends JPanel implements ActionListener { String filler = ""; Text att skrivas ut DrawPanel() { setpreferredsize(new Dimension(500, 500)); public void paintcomponent(graphics g) { gsetcolor(colorwhite); gfillrect(0,0,500,500); gsetcolor(colorblack); gdrawoval(100, 100, 300, 300); gdrawstring(filler, 250,250); Här skrivs den ut public void actionperformed(actionevent e) { filler = ((JButton)(egetSource()))getText(); repaint(); Här får den nytt värde: knapptexten
51 public void actionperformed(actionevent e) { ((JButton)(egetSource()))getText();
52 public void actionperformed(actionevent e) { ((JButton)(egetSource()))getText(); e är av typ ActionEvent En sådan har en metod getsource() som returnerar det objekt som är orsak till händelsen egetsource()
53 public void actionperformed(actionevent e) { ((JButton)(egetSource()))getText(); e är av typ ActionEvent En sådan har en metod getsource() som returnerar det objekt som är orsak till händelsen Resultatet blir ett objekt Vi råkar veta att det alltid är en JButton Så vi kan casta det, dvs ange typinformation egetsource() (JButton)(egetSource())
54 public void actionperformed(actionevent e) { ((JButton)(egetSource()))getText(); e är av typ ActionEvent En sådan har en metod getsource() som returnerar det objekt som är orsak till händelsen Resultatet blir ett objekt Vi råkar veta att det alltid är en JButton Så vi kan casta det, dvs ange typinformation egetsource() (JButton)(egetSource()) En JButton har en metod gettext() som returnerar knappens text ((JButton)(egetSource()))getText();
55 Information i events Lyssnarens metod får alltid en parameter av typ Event Denna kan användas för att få information om eventet Exakt vilken information som finns beror på eventtypen Tex: alla event har en metod getsource() Musevents har metoder getx() och gety() som ger muskoordinaterna
56 Sanningen bakom ordet implements 1 Det underlättar överenskommelser mellan olika programmerare, och gör att java kan se till att de inte bryts!
57 Exempel Jag är systemprogrammerare Jag skriver metoden addactionlistener() i javabiblioteket Metoden tar en parameter: ett lyssnarobjekt Det addactionlistener() gör är att se till att ActionEvents triggar anrop till parameterns metod actionperformed() Så det kräver att parametern faktiskt har en sådan metod! Annars är jag kokt
58 Du gör en tillämpning och vill använda min fina addactionlistener() Du importerar biblioteket där den ligger och anropar den med ett hemsnickrat objekt som parameter Detta objekt har förhoppningsvis en metod actionperformed() Annars är vi kokta
59 Interface Ett sätt för mig att säga: det objekt som är parameter till min fina metod måste faktiskt ha en metod actionperformed() Ett sätt för dig att säga: Den klass jag nu skriver kommer garanterat att innehålla metoden actionperformed() Interface är ett sätt att formulera sådana garantier och kolla att de uppfylls
60 Ett interface innehåller metodhuvuden, dvs namn, typ och parametertyp(er) för metoden Det innehåller inga metodkroppar Ex: interface ActionListener { public void actionperformed(actionevent e);
61 interface ActionListener { public void actionperformed(actionevent e); public void addactionlistener(actionlistener actlist) { (koden för addactionlistener) Min kod Din kod class MyApplication implements ActionListener { public void actionperformed(actionevent e) { addactionlistener(new MyApplication())
62 interface ActionListener { public void actionperformed(actionevent e); Definierar vad det innebär att vara en ActionListener public void addactionlistener(actionlistener actlist) { (koden för addactionlistener) Min kod Din kod class MyApplication implements ActionListener { public void actionperformed(actionevent e) { addactionlistener(new MyApplication())
63 interface ActionListener { public void actionperformed(actionevent e); Definierar vad det innebär att vara en ActionListener public void addactionlistener(actionlistener actlist) { (koden för addactionlistener) Kräver att parametern är en ActionListener Min kod Din kod class MyApplication implements ActionListener { public void actionperformed(actionevent e) { addactionlistener(new MyApplication())
64 interface ActionListener { public void actionperformed(actionevent e); Definierar vad det innebär att vara en ActionListener public void addactionlistener(actionlistener actlist) { (koden för addactionlistener) Kräver att parametern är en ActionListener Min kod Din kod class MyApplication implements ActionListener { public void actionperformed(actionevent e) { Gör en utfästelse att klassens objekt ska bli ActionListeners addactionlistener(new MyApplication())
65 interface ActionListener { public void actionperformed(actionevent e); Definierar vad det innebär att vara en ActionListener public void addactionlistener(actionlistener actlist) { (koden för addactionlistener) Kräver att parametern är en ActionListener Min kod Din kod class MyApplication implements ActionListener { public void actionperformed(actionevent e) { Gör en utfästelse att klassens objekt ska bli ActionListeners uppfyller utfästelsen addactionlistener(new MyApplication())
66 Sanningen bakom ordet implements 2 Det möjliggör så kallad polymorfi: en metod kan ta parametrar av flera olika klasser
67 Exempel: bubblesort Vi har skrivit en metod bubblesort() som sorterar en array av heltal: void bubblesort(int[] data) {
68 Exempel: bubblesort Vi har skrivit en metod bubblesort() som sorterar en array av heltal: void bubblesort(int[] data) { Men samma metod skulle i princip kunna användas för att sortera - en array av float - en ArrayList av alla slags tal
69 Exempel: bubblesort Vi har skrivit en metod bubblesort() som sorterar en array av heltal: void bubblesort(int[] data) { Men samma metod skulle i princip kunna användas för att sortera - en array av float - en ArrayList av alla slags tal Måste jag skriva en ny bubblesort för varje sådant fall?
70 Nej! bubblesort() tar en parameter, data Vad är det jag ovillkorligen måste veta om den parametern? Jo, - jag måste kunna jämföra två intilligande tal - jag måste kunna byta plats på två intilliggande tal - jag måste kunna få reda på längden På alla datastrukturer som uppfyller detta kan jag göra bubblesort!
71 Formulera kravet Kravet formuleras som ett interface Det ska alltså vara tre metoder, en för jämförelse mellan position i och i+1, en för platsbyte mellan position i och i+1, och en för längden interface Bubblesortable { public boolean compare(int i); public void swap (int i); public int length();
72 Använd kravet när du gör bubblesort boolean bytintill(bubblesortable data) { boolean bytt = false; for (int i = 0; i < datalength() - 1; i++) { if (!datacompare(i)) { dataswap(i); bytt = true; return bytt; void bubblesort(bubblesortable data) { while (bytintill(data)) { interface Bubblesortable { public boolean compare(int i); public void swap (int i); public int length();
73 Uppfyll kravet för att använda bubblesort class MyStructure implements Bubblesortable { int[] data; public boolean compare(int i) { return data[i] < data[i + 1]; public void swap(int i) { int temp = data[i]; data[i] = data[i + 1]; data[i + 1] = temp; public int length() { return datalength; interface Bubblesortable { public boolean compare(int i); public void swap (int i); public int length();
74 Eller såhär class MyStructure2 implements Bubblesortable { ArrayList<Integer> data; public boolean compare(int i) { return dataget(i) < dataget(i + 1); public void swap(int i) { int temp = dataget(i); dataset(i, dataget(i + 1)); dataset(i + 1, temp); public int length() { return datasize(); interface Bubblesortable { public boolean compare(int i); public void swap (int i); public int length();
75 Fördel: Du definierar bubblesort en enda gång Du kan använda den på många olika klasser, nämligen på alla som implementerar interfacet Bubblesortable
76 OBS Användning av interface göra att java kollar att rätt metoder är definierade och har rätt typ av parametrar java kollar inte att metoderna faktiskt gör det som är tänkt!
77 Muslyssnare Tråkigt nog finns två olika lyssnartyper för mushändelser: MouseListener - lyssnar på musknappar och muspekarens närvaro i ett objekt MouseMotionListener - lyssnar på musrörelser
78 MouseListener public void mouseclicked(mouseevent e) public void mouseentered(mouseevent e) public void mouseexited(mouseevent e) public void mousepressed(mouseevent e) public void mousereleased(mouseevent e)
79 MouseMotionListener public void mousedragged(mouseevent e) public void mousemoved(mouseevent e)
80 ur dokumentationen för MouseMotionListener
81 Exempel Gör så att man kan ändra cirkelns storlek med musen buttondemo5
82 class DrawPanel extends JPanel implements ActionListener, MouseListener, MouseMotionListener { String filler = ""; int radius = 100; DrawPanel() { setpreferredsize(new Dimension(500, 500)); addmouselistener(this); addmousemotionlistener(this); public void paintcomponent(graphics g) { gsetcolor(colorwhite); gfillrect(0,0,500,500); gsetcolor(colorblack); gdrawoval(250-radius, 250-radius, 2*radius, 2*radius); gdrawstring(filler, 250,250);
83 class DrawPanel extends JPanel implements ActionListener, MouseListener, MouseMotionListener { String filler = ""; int radius = 100; DrawPanel() { setpreferredsize(new Dimension(500, 500)); addmouselistener(this); addmousemotionlistener(this); Objekten lyssnar av sina egna mushändelser public void paintcomponent(graphics g) { gsetcolor(colorwhite); gfillrect(0,0,500,500); gsetcolor(colorblack); gdrawoval(250-radius, 250-radius, 2*radius, 2*radius); gdrawstring(filler, 250,250);
84 class DrawPanel extends JPanel implements ActionListener, MouseListener, MouseMotionListener { String filler = ""; int radius = 100; DrawPanel() { setpreferredsize(new Dimension(500, 500)); addmouselistener(this); addmousemotionlistener(this); Objekten lyssnar av sina egna mushändelser Ny instansvariabel för cirkelns storlek public void paintcomponent(graphics g) { gsetcolor(colorwhite); gfillrect(0,0,500,500); gsetcolor(colorblack); gdrawoval(250-radius, 250-radius, 2*radius, 2*radius); gdrawstring(filler, 250,250);
85 public void actionperformed(actionevent e) { filler = ((JButton)(egetSource()))getText(); repaint(); public void mousepressed(mouseevent e) { setradius(e); public void mousedragged(mouseevent e) { setradius(e); public void mouseentered(mouseevent e) {; public void mouseexited(mouseevent e) {; public void mouseclicked(mouseevent e) {; public void mousereleased(mouseevent e) {; public void mousemoved(mouseevent e) {; void setradius(mouseevent e) { int xdist = egetx()-250; int ydist = egety()-250; radius = (int)mathsqrt(xdist*xdist + ydist*ydist); repaint();
86 public void actionperformed(actionevent e) { filler = ((JButton)(egetSource()))getText(); repaint(); public void mousepressed(mouseevent e) { setradius(e); public void mousedragged(mouseevent e) { setradius(e); public void mouseentered(mouseevent e) {; public void mouseexited(mouseevent e) {; public void mouseclicked(mouseevent e) {; public void mousereleased(mouseevent e) {; public void mousemoved(mouseevent e) {; Mushändelser som reageras på void setradius(mouseevent e) { int xdist = egetx()-250; int ydist = egety()-250; radius = (int)mathsqrt(xdist*xdist + ydist*ydist); repaint();
87 public void actionperformed(actionevent e) { filler = ((JButton)(egetSource()))getText(); repaint(); public void mousepressed(mouseevent e) { setradius(e); public void mousedragged(mouseevent e) { setradius(e); public void mouseentered(mouseevent e) {; public void mouseexited(mouseevent e) {; public void mouseclicked(mouseevent e) {; public void mousereleased(mouseevent e) {; public void mousemoved(mouseevent e) {; Mushändelser som reageras på Mushändelser som vi struntar i void setradius(mouseevent e) { int xdist = egetx()-250; int ydist = egety()-250; radius = (int)mathsqrt(xdist*xdist + ydist*ydist); repaint();
88 public void actionperformed(actionevent e) { filler = ((JButton)(egetSource()))getText(); repaint(); public void mousepressed(mouseevent e) { setradius(e); public void mousedragged(mouseevent e) { setradius(e); public void mouseentered(mouseevent e) {; public void mouseexited(mouseevent e) {; public void mouseclicked(mouseevent e) {; public void mousereleased(mouseevent e) {; public void mousemoved(mouseevent e) {; Mushändelser som reageras på Mushändelser som vi struntar i void setradius(mouseevent e) { int xdist = egetx()-250; int ydist = egety()-250; radius = (int)mathsqrt(xdist*xdist + ydist*ydist); repaint(); Omberäkning av radien
89 Nästa föreläsning: Bra om alla kommer i tid
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
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
Föreläsning 14: Grafik & mera händelsehantering
TDA 545: Objektorienterad programmering Föreläsning 14: Grafik & mera händelsehantering Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag Idag: grafik läs kap 17 Viktigt i denna föreläsning: att rita
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
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
Monday, November 16, Senaste Labben
Senaste Labben Senaste Labben Strålande resultat (mv 4.6)! Senaste Labben Strålande resultat (mv 4.6)! God objektorientering? Senaste Labben Strålande resultat (mv 4.6)! God objektorientering? God kodhygien?
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
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
Exempel på spelprogrammering i java.
Exempel på spelprogrammering i java http://www.brackeen.com/javagamebook/ Chatten? Overloading Vi kan ha flera olika metoder med samma namn Dessa måste i så fall skiljas genom olika signaturer: parametrarnas
Händelsestyrda program
JavaD- 1 Program- eller händelsestyrd exekvering Händelsestyrda program JavaD- 2 Programstyrd exekvering I ett traditionellt program bestämmer programmet när det är dags att läsa indata, programmets exekvering
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
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.
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
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
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
Repetitionsföreläsning 2: Quiz & problemlösning med swing Inget nytt material.
TDA 545: Objektorienterad programmering Repetitionsföreläsning 2: Quiz & problemlösning med swing Inget nytt material. Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag En quiz! tinyurl.com/tda545quiz
Erfarenheter från biljardprojektet. måndag 23 november 15
Erfarenheter från biljardprojektet Gästföreläsningen Synpunkter? Sanningen bakom ordet implements Det underlättar överenskommelser mellan olika programmerare, och gör att java kan se till att de inte bryts!
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
Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling
Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling Fulltentamen vitsord: 3=28p, 4=38p, 5= 48p, max 60p. Max 30p i denna halvtentamen Hjälpmedel:
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.
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
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
Modelsvar för Tentamen för Objektorienterad programvaruutveckling, TDA545
Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Magnus Myréen Modelsvar för Tentamen för Objektorienterad programvaruutveckling,
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
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
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
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
LiTHehack? Här? lithehack se koma Tisdagar och torsdagar
0 Java och Swing LiTHehack? Här? @ kontakt /. lithehack se. lithehack se koma -, 17 19 Tisdagar och torsdagar Idag grafik menyer kortkomandon pop up-menyer submenyer Skansholm Java direkt upplaga 6 eller
Föreläsning 2, vecka 6: Tillstånd i objektorienterade program (och mera interface)
TDA 548: Grundläggande Programvaruutveckling Föreläsning 2, vecka 6: Tillstånd i objektorienterade program (och mera interface) Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Terminologi Vad är en klass?
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
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 :
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).
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
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
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
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
Applets med komponenter
5 Applets med komponenter Knappar Om gränssnitt (interface) Händelser Måla om appletytan Etiketter och textrutor Förvandla strängar till tal Aritmetik Omvandla datatyper med cast Felhantering Kap 5: Sid
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)
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
Programstyrd / händelsestyrd
Programstyrd / händelsestyrd Jevent - 1 Händelsestyrda program Jevent - 2 Programstyrd exekvering I ett traditionellt program bestämmer programmet när det är dags att läsa indata, programmets exekvering
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
Labbinstruktioner för Java/Swing
Labbinstruktioner för Java/Swing Grafik- och interaktionsprogrammering 2008 Martin Berglund Allmänt Dessa instruktioner är på intet sett den enda möjliga lösningen på labben, tvärtom finns
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
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
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
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)
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.
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
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ö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:
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
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
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ö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ö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
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
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).
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:
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
Modellsvar för Tentamen för Objektorienterad programvaruutveckling, TDA545
Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Magnus Myréen Modellsvar för Tentamen för Objektorienterad programvaruutveckling,
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
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
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
Tentamen Objekt-orienterad programmering med Java, 1DL100 Sommarkurs och distanskurs
Tentamen 2006-0823 Objekt-orienterad programmering med Java, 1DL100 Sommarkurs och distanskurs Uppsala Universitet Instutitionen för informationsteknologi Avdelningen för datalogi Kursansvarig: Sven-Olof
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
Fönsterhantering, grafik
Spel: exempel Ex. skattjakt Fönsterhantering, grafik (del 2) Plan (16x16 rutor) Valt array som datastruktur En spelare En fiende Vet spelarens position Bör egentligen inte veta! Programmering tillämpningar
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ösningsförslag tentamen FYTA11 Java
Lunds universitet FYTA11 Institutionen för Teoretisk fysik HT 10 Lösningsförslag tentamen FYTA11 Java Måndag 10:e januari 2011, 09:00 13:00 Instruktioner Hjälpmedel: enkla ritverktyg och Javadoc-genererade
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å
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
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
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
SMD091 Lektion 9. Definition. Inkapsling. Lite repetition. Grafik. Gränssnitt Definition och Implementation. Sammansättning... Implementation.
SMD091 Lektion 9 Inkapsling Lite repetition Grafik 1 2 Gränssnitt Definition och Implementation Sammansättning... Definition...är ofta det bästa sättet att använda funktionalitet i andra klasser. Ratt
Omentamen FYTA11 Javaprogrammering
Lunds universitet FYTA11 Institutionen för Teoretisk Fysik HT 08 Omentamen FYTA11 Javaprogrammering Onsdag 4:e februari 2009, 13:00 17:00 Instruktioner Inga hjälpmedel är tillåtna. Behandla högst en uppgift
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
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
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
Modelsvar för Tentamen för Objektorienterad programvaruutveckling, TDA545
Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Magnus Myréen Modelsvar för Tentamen för Objektorienterad programvaruutveckling,
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,
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
Modellsvar för Tentamen för Objektorienterad programvaruutveckling, TDA545
Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Magnus Myréen Modellsvar för Tentamen för Objektorienterad programvaruutveckling,
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
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2016-06-11 Skrivtid: 0900 1400 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Arv och polymorfi. Lite terminologi; Basklass eller superklass: En klass som fungerar som bas för vårt arv. Vi skapar nya klasser utifrån den.
Arv och polymorfi Arv och polymorfi är två centrala begrepp i objektorientering. Arvsmekanismen innebär att vi kan skapa nya klasser utifrån redan existerande klasser. Man gör detta med hjälp av nyckelordet
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
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.
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: Objektorienterad analys, Objektorienterad design Grafiskt användargränssnitt,
Tentamen FYTA11 Javaprogrammering
Lunds universitet FYTA11 Institutionen för Teoretisk fysik HT 11 Tentamen FYTA11 Javaprogrammering Måndag 9:e januari 2012, 10:15 14:15 Instruktioner Hjälpmedel: enkla ritverktyg och Javadoc-genererade
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:
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
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
Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.
(16 februari 2016 F5.1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (16 februari 2016 F5.2 ) Pokertärningar
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2017-10-23 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P
UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr
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ö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å
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
Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar
Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-03-19 Skrivtid: 14:00 19:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.