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



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

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

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

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

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

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

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

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

Mer om grafiska komponenter. Händelsestyrda program

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

Laboration 15 Grafiskt användargränssnitt

Java-concept och Swing. Swing low, sweet chariot

Grafiska komponenter.

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

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

OOP Objekt-orienterad programmering

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

Rita Egna Bilder, Timer

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

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

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

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

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

Trådar. Motivering. Många program måste kunna hålla på med flera saker samtidigt, till exempel. fleranvändarsystem.

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

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Lösningsförslag till tentamen

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

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

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

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

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

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

OOP Objekt-orienterad programmering

Laboration 24 Databasen MySQL och java

Lösningsförslag till tentamen

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

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

Inlämningsuppgift 1 Programmeringsteknik MN1 vt02

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

Lösningsförslag till tentamen

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

Lösningsförslag till tentamen

Lösningsförslag till tentamen

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

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

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

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

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

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

Projekt 2 XL. Observer-mönstret

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

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

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

Lösningsförslag till tentamen

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

Tentamen FYTA11 Javaprogrammering

Lösningar för tenta 3 DAT043,

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

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.

Lösningsförslag till tentamen

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

Tentamen FYTA11 Javaprogrammering

Frames, menyer och GUI-program

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

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

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

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

Lösningsförslag till tentamen FYTA11 Javaprogrammering

4.4 Swing ett interaktivt grafiskt gränssnitt

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

Lektion Händelsehanterare

Lösningsförslag till tentamen

Lösningsförslag till tentamen

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

Lösningar till tentamen i EDAF25

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

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

Arv och Grafiska Användargränssnitt

kl

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

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

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

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

Arv. Grafiska komponenter. Arv. Arvhierarki. Arv. Föreläsning 12 (OH-bilder 9)

Att skriva till och läsa från terminalfönstret

Föreläsnings 9 - Exceptions, I/O

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

Föreläsning 9. Arv Grafiska komponenter

SMD091 Lektion 9. Definition. Inkapsling. Lite repetition. Grafik. Gränssnitt Definition och Implementation. Sammansättning... Implementation.

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

Exempel på användning av arv: Geometriska figurer

Tentamen , Grundläggande programmering i Java

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

Lösningsförslag till tentamen

Transkript:

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 (2 4 timmar) Torsdag: Laboration Vetenskapsteori. Förberedelse: Skriv ut citat från www. Läs igenom en gång. Laborationen examineras genom hemtentan. 2 F18-20-2006 Idag Enkel grafik, presenterat som tre exempel: 1. Superenkla fönster 2. Enkla fönster 3. Fönster med knappar Mellan exempel 1 och 2, vissa principer och klasser. Återstår: Eget jobb! 3 F18-20-2006 Grafiskt användarsnitt Gäller Java av idag Hjälp till självhjälp: Kokbokslösningar, lösningar med kommentarer, inga "djupa" förklaringar. Syften: 1. Smaka på grafiken. Kunna bygga vidare själv. 2. Öva på användning av bibliotek. 4 F18-20-2006 Vi kommer att se Grafik hanteras med bibliotek Mycket utantillläxor Inte svårt, men kanske stökigt/klumpigt Smidigare lösningar att vänta? o Mycket anomalier, en vetenskaplig revolution kommer?

5 F18-20-2006 Exempel 1 Superenkelt grafikexempel Idé: Fördefinierade standardklasser - slippa återuppfinna hjulet. Från Skansholm. Två små fönster på skärmen. Den första som begär ett svar, den andra som bara skriver ut. Vad heter du? OK Cancel 6 F18-20-2006 Exempel 1: Två små fönster public class Hej2 { public static void main (String[] arg) { String namn; String hälsning; namn = JOptionPane.showInputDialog("Vad heter du?"); hälsning = "Välkommen " + namn; JOptionPane.showMessageDialog(null, hälsning); System.exit(0); Välkommen Anders OK Detta exempel innehåller ingen tänka-själv eller designa-själv komponent. Allt är givet av klassbiblioteket. 7 F18-20-2006 Hur vet man det här? = > Hur hittar man? => Strategi: Bygg på exempel Sök efter en idé eller klass i en lärobok/ett exempel Gå till http://java.sun.com/j2se/1.5/docs/api/index.html Klicka på rätt klass och rimliga metoder 8 F18-20-2006 Läs: 1. Slå upp JOptionPane 2. Välj showinputdialog JOptionPane showinputdialog public static String showinputdialog(object message) throws HeadlessException Shows a question-message dialog requesting input from the user. The dialog uses the default frame, which usually means it is centered on the screen. Parameters: message - the Object to display Throws: HeadlessException - if GraphicsEnvironment.isHeadless returns true See Also: GraphicsEnvironment.isHeadless()

9 F18-20-2006 Huvudlöst undantag? 10 F18-20-2006 JOptionPane Vi klickar och hittar public class HeadlessException extends UnsupportedOperationException Thrown when code that is dependent on a keyboard, display, or mouse is called in an environment that does not support a keyboard, display, or mouse. 1. Slå upp JOptionPane 2. Välj showmessagedialog showmessagedialog public static void showmessagedialog(component parentcomponent, Object message) throws HeadlessException Brings up an information-message dialog titled "Message". Parameters: parentcomponent - determines the Frame in which the dialog is displayed; if null, or if the parentcomponent has no Frame, a default Frame is used message - the Object to display Throws: See Also: HeadlessException - if GraphicsEnvironment.isHeadless returns true GraphicsEnvironment.isHeadless() 11 F18-20-2006 Lite teori: Grafiska komponenter Två uppsättningar standardklasser awt (Abstract Window Toolkit), java.awt.* Swing, nyare, häftigare, javax.swing.* Många klassnamn börjar med J Skilj på komponenter som ritas av operativsystemet som ritas av Java. I Swing ritas det mesta av Java => flexibelt, komplext Swing utnyttjar awt 12 F18-20-2006 Klasshierarki för "fönster" Förenklad Component Container Window JApplet Jwindow JFrame JDialog Component: Superklass för alla. Färg, storlek Container: "Förvaring" av grafiska objekt som inte kan visas direkt på skärmen. JApplet: Ritas i en webbrowser JWindow: Fönster på skärmen, utan kant JFrame: Fönster med kant och titelrad JDialog: Fönster för tillfälliga meddelanden. För varje klass finns många metoder.

13 F18-20-2006 Swingklasser, förenklade, för objekt som visas i fönster JLabel: en enkel text eller enkel bild JButton: knapp med text eller bild 14 F18-20-2006 Exempel 2 Skriv ett program som skriver "Våren är kommen" i ett fönster. Vi bestämmer färger, samt storlekar, typsnitt, var texten ska stå etc.... JRadioButton: knappar som fungerar tillsammans JMenuBar: menyer 16 F18-20-2006 18 F18-20-2006 import java.awt.*; public class MittFonster extends JFrame { public MittFonster(String t) { Container c = getcontentpane(); c.setlayout(new FlowLayout()); c.setbackground(color.yellow); JLabel l = new JLabel(t,JLabel.CENTER); l.setverticalalignment(jlabel.center); l.setforeground(color.blue); l.setfont(new Font("SansSerif", Font.BOLD, 24)); l.setpreferredsize(new Dimension(500,200)); c.add(l); setsize(500,200); pack(); setvisible(true); setdefaultcloseoperation(exit_on_close); Exempel 3 Skriv ett programm som skapar ett fönster med texten Röd i rött. Med tryckknappar kan man välja texten Röd, Gul eller Grön, skriven i rätt färg. Röd Röd Gul Grön public static void main(string[] args) { MittFonster f = new MittFonster("Våren är kommen");

20 F18-20-2006 import java.awt.*; import java.awt.event.*; Exempel 3 public class MinSignal extends JFrame implements ActionListener { private JRadioButton rödknapp = new JRadioButton("Röd", true); private JRadioButton gulknapp = new JRadioButton("Gul", false); private JRadioButton grönknapp = new JRadioButton("Grön", false); private JLabel l = new JLabel("Röd"); public MinSignal() { public void grönfärg() { public void gulfärg() { public void rödfärg() { public void actionperformed(actionevent e) { public static void main(string[] arg) { MinSignal s = new MinSignal(); 21 F18-20-2006 public MinSignal() { l.setforeground(color.red); Container c = getcontentpane(); c.setlayout(new GridLayout(4,1)); c.add(l); c.add(rödknapp); c.add(gulknapp); c.add(grönknapp); ButtonGroup färger = new ButtonGroup(); färger.add(rödknapp); färger.add(gulknapp); färger.add(grönknapp); rödknapp.addactionlistener(this); gulknapp.addactionlistener(this); grönknapp.addactionlistener(this); pack(); setvisible(true); setdefaultcloseoperation(exit_on_close); public void grönfärg() { l.settext("grön"); l.setforeground(color.green); public void gulfärg() { l.settext("gul"); l.setforeground(color.yellow); public void rödfärg() { l.settext("röd"); l.setforeground(color.red); public void actionperformed(actionevent e) { Object action = e.getsource(); if (action == grönknapp) grönfärg(); if (action == gulknapp) gulfärg(); if (action == rödknapp) rödfärg();