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

Relevanta dokument
Swing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? LayoutManagers. Exempel på några av komponenterna

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Rita Egna Bilder, Timer

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

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

Laboration 4: Game of Life

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

Labbinstruktioner för Java/Swing

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

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

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

Lektion Händelsehanterare

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

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

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 15 (16) Historik (java.awt) Historik (javax.swing) Introduktion till Swing

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

Händelsestyrda program

ID1004 Laboration 3, 5-6 November 2012

Java-concept och Swing. Swing low, sweet chariot

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

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

Mer om grafiska komponenter. Händelsestyrda program

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

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

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

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

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

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Lab5 för prgmedcl04 Grafik

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

Projekt 2 XL. Observer-mönstret

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

Swing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. Exempel på några av komponenterna. LayoutManagers.

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

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? LayoutManagers. Exempel på några av komponenterna.

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

Lösningsförslag till tentamen

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? Exempel på några av komponenterna. LayoutManagers.

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

Laboration 15 Grafiskt användargränssnitt

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.

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

Tentamen i Objektorienterad programmering

Monday, November 16, Senaste Labben

Exempel på användning av arv: Geometriska figurer

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

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

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

Tentamen i Objektorienterad programmering E

Föreläsning 2, vecka 6: Tillstånd i objektorienterade program (och mera interface)

Lösningsförslag till tentamen

Tentamen i Objektorienterad programmering

PROGRAMMERINGSTEKNIK TIN212

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

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

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

Design och konstruktion av grafiska gränssnitt

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

Lösningsförslag till tentamen

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

Lösningsförslag tentamen FYTA11 Java

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

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

TENTAMEN I. OBJEKTORIENTERAD PROGRAMMERING för Z1. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Tentamen i Objektorienterad programmering E

Frames, menyer och GUI-program

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

Föreläsning 11. Att rita egna bilder.

Grafiska komponenter.

Inlämningsuppgift 1 Programmeringsteknik MN1 vt02

Grafiska användargränssitt och händelsehantering

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

Design och konstruktion av grafiska gränssnitt

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

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

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

Design och konstruktion av grafiska gränssnitt

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

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

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

kl

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

Design och konstruktion av grafiska gränssnitt

Föreläsning 11. Att rita egna bilder. Grafik. Klassen Graphics. Fönstrets koordinatsystem

OOP Objekt-orienterad programmering

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

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

Lösningsförslag till tentamen

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

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

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

Objektorienterad programmering

Laboration 3 GUI-programmering

OOP Objekt-orienterad programmering

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

Lösningsförslag till tentamen

Transkript:

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 7 avsnitt 7.2, 12.4-7, 14.1

Grafik Kort om java.awt. Graphics

Standardklassen java.awt. Graphics kan användas för att rita enkla figurer med hjälp av ett antal olika metoder. Linjer, ellipser, rektanglar, bilder, text, mm.

Exempel Används till exempel genom att skapa en subklass till JPanel. public class MyPanel extends JPanel { // instansvariabler... // konstruktorer... // instansmetoder... // rita figuren, måste finnas public void paintcomponent(graphics g) { super.paintcomponent(g); g.drawaaa(...); g.fillaaa(...); } // flera metoder möjliga... } paintcomponent är protected, anropas endast indirekt via via repaint().

Tillämpat i exemplet ShapeDrawerför att rita cirklar och kvadrater. Mer avancerad grafik i java.awt.graphics2d.

Animering

Standardklassen javax.swing. Timer kan användas för att generera ActionEvents på tidsbasis. Timer(m, l); skapa en timer som genererar en händelse var m:te ms och registrera lsom lyssnare. start(); starta timern stop(); stoppa timern

// Ny timer, anropar actionperformed() i samma klass private Timer timer = new Timer(100, this); //... massa grejer! public void actionperformed(actionevent e) { if (e.getsource() == btnstart) { timer.start(); } else if (e.getsource() == timer) { size += 10; size %= 160; drawer.setshape(shape, size, color); } }

Menyer

En menyrad läggs till på JFrame. En förenklad klasshiearki för menyer: javax.swing.jcomponent javax.swing.jmenubar javax.swing.jmenuitem javax.swing.jmenu javax.swing.jcheckboxmenuitem javax.swing.jradiobuttonmenuitem javax.swing.jpopupmenu Motsvarar klasserna JButton, JCheckBoxoch JRadioButton.

JMenuBar JMenuBar(); skapa en menyrad add(mymenu); placera menyn mymenui menyraden, vänster till höger Menyraden mymenubarplaceras i fönstret wmed w.setmenubar(mymenubar);.

JMenu JMenu("title"); skapa meny med titeln title add(menuitem); lägg till menyalternativet menuitemi menyn. Sker uppifrån och ned. addseparator(); lägg till en horizontell linje i menyn.

Menyalternativen kan exempelvis vara JMenuItem ett vanligt menyalternativ JCheckBoxMenuItem en kryssruta JRadioButtonMenuItem en radioknapp JMenu en submeny

private JMenuBar mnb = new JMenuBar(); private JMenu menufile = new JMenu("File"); private JMenu menuedit = new JMenu("Edit"); private JMenu menuhelp = new JMenu("Help"); public Demo03() { setjmenubar(mnb); mnb.add(menufile); mnb.add(menuhelp); mnb.add(menuedit); mnicircle.addactionlistener(this); mnisquare.addactionlistener(this); mnuedit.add(mnicircle); mnuedit.add(mnisquare);

Kortkommandon Aka. Hur du får användaren att känna sig riktigt hemma i ditt program

mnemonics accelerators

mnemonics // ALT + C menuitem.setmnemonic("c"); accelerators // CTRL + C menuitem.setaccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_C, ActionEvent.CTRL_MASK));

// CTRL-G eller ^G mnicircle.setaccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_G, ActionEvent.CTRL_MASK)); // CTRL-H eller ^H mnisquare.setaccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_H, ActionEvent.CTRL_MASK));

Popup-menyer Högerklicksmeny

JPopupMenu JPopupMenu("title"); skapa en popup-meny med titeln title show(c, x, y); visa menyn för komponenten cpå positioinen (x, y)

Popupmeny pmnkopplas till en komponent c: c.add(pmn); Koppla muslyssnare ltill komponent c: c.addmouselistener(l); lär en klass, måste implementera MouseListenerdirekt eller via standardklassen MouseAdapter.

MouseEvent ismetadown(); bool, höger musknapp getcomponent(); retunerar komponenten musmarkören är över getx();och gety(); koordinater för musmarkören

private JPopupMenu pmnedit = new JPopupMenu("Edit"); //... drawer.addmouselistener(new PopupHandler()); //... private class PopupHandler extends MouseAdapter { public void mousepressed(mouseevent e) { if (e.ismetadown()) // Höger musknappt nedtryckt? { pmnedit.show(e.getcomponent(), e.getx(), e.gety()); } } }

Mer exempel

Bortom Swing

C# Windows Forms HTML/CSS/JavaScript Bootstrap Semantic UI C++ Qt

Labb

Nästa föreläsning: Android kontakt@lithehack.se lithehack.se/koma