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

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

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

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

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

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

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

Mer om grafiska komponenter. Händelsestyrda program

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

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

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

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) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna

OOP Objekt-orienterad programmering

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

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

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

Java-concept och Swing. Swing low, sweet chariot

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

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

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

OOP Objekt-orienterad programmering

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

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

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

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

Lektion Händelsehanterare

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

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

Arv och Grafiska Användargränssnitt

Laboration 15 Grafiskt användargränssnitt

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

Lab5 för prgmedcl04 Grafik

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

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

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

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

Arv, Grafiska användaregränssnitt och Inre klasser! Förelasning 12!! TDA540 Objektorienterad Programmering!

Lösningar för tenta 3 DAT043,

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

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

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

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

Tentamen i Objektorienterad programmering

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

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

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

JAVA Mer om klasser och objektorientering

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

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

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Java Direkt, upplaga 5 Innehåll

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

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

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

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

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

1 Grafiska komponenter

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

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

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

Rita Egna Bilder, Timer

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

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

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

Laboration 24 Databasen MySQL och java

Tentamen. DD2385 Programutvecklingsteknik vt Tisdagen den 26 maj 2009 kl Inga hjälpmedel utom penna, sudd och linjal

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

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

Tentamen FYTA11 Javaprogrammering

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

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

Projekt 2 XL. Observer-mönstret

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

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

Applets med komponenter

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

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

PROGRAMMERINGSTEKNIK TIN212

Arvshierarki. Object. Bostadshus. Flerfamiljshus. Villa

Klasshierarkier - repetition

Java Direkt, upplaga 7 Innehåll

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

kl

ID1004 Laboration 3, 5-6 November 2012

Lösningsförslag till tentamen

Dugga i Grundläggande programmering STS, åk

DEL 1 För att få godkänt på tentan (betyg 3) måste du lösa minst fem av sju uppgifter i denna del.

Grafiska användargränssnitt i Java

DELPROV 1 I DATAVETENSKAP

Grafiska användargränssnitt i Java

Java Direkt, upplaga 6 Innehåll

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel

Modern Programmering (2546) Tentamen lördag

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

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Grafiska komponenter.

Transkript:

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 funktionalitet Många exempel

Duggan Duggan blev för svår Vi sänker G-gränsen så att 9 p räcker Inte en kravsänkning Gränsen var för hög från början De som fått 7 8 p kan komplettera genom inlämningsuppgift (detaljer meddelas senare)

Essä: formalia Deadline: 5 juni (senarelagd!) Ca 1-2 sidor, normal formattering, radavstånd 1.5 Titel: Objektorienterad programmering som problemslösningsstrategi OBS! Se hemsidan! Följ instruktionerna för inlämning!

Essä: Vad och hur Personlig betraktelse: Fakta, men också bedömning och ställningstagande Förslag till upplägg: Vad är OO? Exempel på problem med OO-lösning Exempel på problem där OO är olämpligt OO:s relevans för dig som STS:are och civilingenjör

Hur vet jag detta? Essä: Vad och hur Föreläsningar: modellering av verkligheten med objekt inkapsling arv relationer mellan klasser Egna erfarenheter (labbar, projekt) Boken, hela kapitel 4

Essä: När? Börja fundera nu! Fundera under projektets gång Tips: börja skriva så fort som möjligt Deadline 5 juni

Lite teori: konstanter, final Ibland vill man ha variabler som inte kan ändras: π (3.14159...) antal sidor på en tärning (6) max antal spelare i Fia med knuff (4) Anges vid deklarationen m.h.a. final: public static final double PI = 3.14159; public static final int ANTAL_TARNINGSSIDOR = 6; public static final int MAX_ANTAL_SPELARE = 4;

Lite teori: konstanter, final Ordet variabel betyder ändringsbar final-variabler kallas konstanter Namnkonvention: STORA_BOKSTAVER_OCH_UNDERSTRECK_MELLAN_ORDEN

Lite teori: konstanter, final final används normalt tillsammans med static värdet på π beror ju inte på något objekt Variabel som är static final måste få sitt värde vid deklarationen: public static final double PI = 3.14159; public static final int ANTAL_RADER = 16;

Lite teori: konstanter, final Om man försöker ändra en konstant får man kompileringsfel: public static void main(string[] args) { PI = 4; } Kompileringsfel! ger bättre kod: mindre risk för misstag tydligt att värdet inte får ändras ledtråd till hur konstanten används, för den som läser koden

Grafiska användargränssnitt Grafiskt användargränssnitt = Graphical User Interface = GUI In- och utmatning sker i dialogrutor Fler möjligheter för användaren Kan bli mer lättanvänt Programmeraren behöver anstränga sig lite mer Skansholm 6.1 6.13 Lab 5 Vissa projekt

GUI i Java Java har bra möjligheter att skapa GUI Paket ingår i Java: javax.swing Vissa underpaket som javax.swing.text Inte svårt, men kräver mer kod

Enkla dialogrutor med klassen JOptionPane Klassmetoder för att skapa vanliga, enkla dialogrutor: showmessagedialog showinputdialog showconfirmdialog

Enkla dialogrutor med klassen JOptionPane: exempel Skapa ett GUI-program som: Läser in användarens namn Frågar om användaren vill ha glass Talar om vilket alternativ som valdes 1. 2. 3.

Avancerade GUI: Överblick Bygg GUI Från sina beståndsdelar, t.ex. knappar och textrutor Starta igång det hela Standard-procedur, lär utantill Hantera händelser, t.ex. musklick Metod för att hantera händelser anges då GUI:et byggs

Avancerade GUI: Bygg GUI Byggs hierarkiskt JFrame är ett fönster JPanel är en s.k. container-komponent: kan innehålla många andra komponenter Alla fönstrets komponenter läggs i JPanel:en (textrutor, knappar osv) Komponent läggs i annan komponent m.h.a. metoden add JFrame JPanel Komponent Komponent

Avancerade GUI: Bygg GUI Skapa en JFrame (ett fönster) Skapa en JPanel (att lägga komponenter i) Skapa komponenter t.ex. textrutor, knappar Ändra komponenters egenskaper t.ex. färg, text, storlek Lägg komponenterna i din JPanel metoden add komponenternas läge kan anges Lägg din JPanel i din JFrame

Avancerade GUI: Exempel Vi bygger ett GUI som innehåller: En textruta En kryssruta En OK-knapp En Avbryt-knapp Översikt av vad vi ska göra: Lägg komponenter i ett fönster och visa det Funktionalitet för att läsa av text och kryssrute-status Lägg komponenterna i snyggare ordning

Avancerade GUI: Händelsehantering Händelser: En knapp trycks in, en kryssruta kryssas, osv Vi kan ange en metod som anropas så fort en händelse inträffar. 4 steg: Lär utantill eller läs innantill Importera: import java.awt.event.*; I klassdefinitionen: class NamnOchGlass implements ActionListener { Skapa metoden actionperformed: public void actionperformed(actionevent e) { } Ange att actionperformed ska anropas när en knapp trycks (när vi bygger fönstret): knapp.addactionlistener(this);

Avancerade GUI: LayoutManager Layout: När komponenter läggs in i en JPanel, bestämmer ett objekt av klassen LayoutManager var de hamnar Vi kan byta ut LayoutManager om vi vill ändra utseendet Metoden setlayoutmanager i JPanel Vi kan ha nästlade JPanel-er för avancerad layout Vi kan lägga till osynliga objekt för att skapa mellanrum Box.createRigidArea(new Dimension(5, 5))

Avancerade GUI: Praktiska klasser Byggstenar (import javax.swing.*;) JFrame ett fönster JPanel fönstrets innehåll (allt utom ramen) JComponent basklass som andra ärver från: JButton JCheckBox JRadioButton JTextField JSpinner JList JSlider JComboBox

Avancerade GUI: Praktiska klasser Starta igång det hela (import javax.swing.*;) Runnable, SwingUtilities Hantera händelser (import java.awt.event.*;) Runnable, SwingUtilities Arrangera komponenter snyggt i fönstret (import javax.swing.*;) BoxLayout, BorderLayout, GridLayout, Box http://java.sun.com/docs/books/tutorial/uiswing/layout/visual.html (import java.awt.*;) Dimension

Avancerade GUI: Sammanfattning Använd hjälpen Alla klasser: http://java.sun.com/javase/6/docs/api/ Komponenter: http://java.sun.com/docs/books/tutorial/ui/features/components.html Layouter: http://java.sun.com/docs/books/tutorial/uiswing/layout/visual.html

Avancerade GUI: Sammanfattning Var inte för ambitiös Få saker att fungera först, gör det eventuellt snyggt senare Studera exempel T.ex. mina, eller http://java.sun.com/docs/books/tutorial/ui/features/components.html