Objektorienterad utveckling

Slides:



Advertisements
Liknande presentationer
1 2I1049 Föreläsning 8 KTH-MI Peter Mozelius Grafiska gränssnitt, Java interface och händelsehantering.
Advertisements

Repetition av språket Java
Stefan Möller OOP F16:1 OOP Objekt-orienterad programmering Föreläsning 16 Grafiska användargränssnitt, GUI Ytor Komponenter Layout-managers Lyssnare.
Next previous Frameworks. Konstruktion av fönster, gränssnitt och användning av grafik i Java OOMPA 2000 Föreläsning 15 Innehåll, kort om: Frameworks Grafik.
Next previous GRIP 2000 Föreläsning 4 Innehåll Inmatningstyper Modeller för interaktiva applikationer Observer MVC Lyssnare Pluggbara komponenter Exempel.
Imperativ Programmering
Fortsättningskurs i Programmering lektion 6
Klassarv och inkapsling
Objektorienterad utveckling Lektion 2 Objekt, överlagring, överskuggning, klasshierarkier och dynamisk bindning KTH Peter Mozelius.
TNSL04 – IT grundkurs. VT2008. Föreläsning nr 4, torsdag 28 feb. kl Klasser, objekt, metoder, parametrar, konstruktorer, samlingar och tillstånd.
TNSL04 – IT grundkurs. VT2009. Föreläsning nr 4, måndag 2 mars. kl Snabbrepris av grundbegreppen: Klasser, objekt, konstruktorer, anrop till konstruktorer,
Metoder i java Det finns två typer av metoder i java
Övning5 Så här ska man tänka när man löser uppgift 1 på tentan lite grafik, så här söker man genom en lista så här läser man från en fil i java lösa uppgift.
Programmeringsteknik för K och Media
Att programmera i språket Java
1 ITK:P1 Föreläsning 4 Grafiska gränssnitt och händelsehantering DSV Peter Mozelius.
Föreläsning 8 Appletprogram/fristående grafiska program Rita linjer, rektanglar mm Skriva text Byta färg Appletprogram html.
1 ITK:P1 Föreläsning 6 Layoutmodeller i Java DSV Marie Olsson.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Exception Handling Kapitel 9. Agenda Exceptions try, throw and catch Skapa en egen exception-klass Multipla throw / catch Slänga vidare en exception Olika.
Objektorienterad programmering i Java
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Variabler: Datatyp - grundläggande : int, double, char, boolean eller
Next previous Föreläsning ii - Mer om Java bla this och konstruktorer Av Björn Eiderbäck Adress: Rum 1641, 6tr NADA Osquars Backe.
MSPEL Föreläsning 2 Text, teckensnitt och grafiska komponenter
1 ITK:P1 Föreläsning 7 Algoritmer och datastrukturer DSV Marie Olsson.
Vektorer (klassen Vector) Sortering
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.
Programmeringsteknik för Media1 & K1
OOP F6:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList toString() – metoden.
ITK:P1 Lektion 4 Att implementera en spelidé i Java DSV Peter Mozelius.
1 MSPEL Lektion 2 DSV Peter Mozelius Spel i Java applets.
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
1 ITK:P1 Föreläsning 8 Multimedia för spelkonstruktion DSV Peter Mozelius.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Next previous GRIP 2000 Föreläsning 4 Innehåll Inmatningstyper Modeller för interaktiva applikationer Observer MVC Lyssnare Pluggbara komponenter Exempel.
TILLÄMPAD DATALOGI (TILDA) Övning 3
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
OOP F14:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 14 Repetition Tips inför inlämningsuppgift 2.
1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius.
1. Ett problem/uppgift.
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
0. Kod, Klassdiagram och Sekvensdiagram import java.awt.event.*; import javax.swing.*; import java.awt.*; public class TwoThreads implements ActionListener.
1 Objektorienterad programmering i Java Föreläsning 5 Kort om Java-Applets.
Föreläsning 13 Appletprogram/fristående grafiska program Arv Rita linjer, rektanglar mm Skriva text, byta färg Appletprogram & HTML Grafiska användargränssnitt.
Class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde; int[] fall = new int[num]; //vattenflödet i vattenfallen.
ITK:P2 F8 Strömmar och filhantering DSV Peter Mozelius.
Föreläsning 9 Arv kap 8.1 Interface kap 9.2 Grafiska användargränssnitt (GUI) kap 10.
2I1073 Lektion 1 KTH-MI Peter Mozelius XHTML, stilmallar och Javascript.
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 Marcus Hjelm
TILLÄMPAD DATALOGI (TILDA) Övning 1 Marcus Hjelm
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
TILLÄMPAD DATALOGI (TILDA) Övning 2
TILLÄMPAD DATALOGI (TILDA) Övning 2
Programmeringsteknik för K och Media
OOP&M - teori1 OOP del III– Föreläsning vecka 9 GUI Containers och LayoutManagers (Inner classes)
OOP&M - teori1 OOP&M del III– Föreläsning 3 vecka 6 Kontrollkomponenter (Components) Som Applets.
OOP&M - teori1 OOP del III– Vecka 10 Händelser Kontrollkomponenter (Components) Featuring: Applets.
DA7351 Programmering 1 Skapa och placera en komponent i en container Layoutmanagers Applet Händelser och lyssnare Föreläsning 15.
Föreläsning 15: Exceptions & lite swing, gränssnitt
Föreläsning 14: Grafik & mera händelsehantering
Föreläsning 13: Swing (GUI), händelser, timer
Föreläsning 8: Exempel och problemlösning
Föreläsning 12: Exempel och problemlösning
Repetitionsföreläsning 2: Quiz & problemlösning med swing
Presentationens avskrift:

Objektorienterad utveckling Lektion 3 Interface, händelsehantering och grafiska gränssnitt i språket Java DSV Peter Mozelius

Lektion 3a public class Lektion3a extends JFrame implements ActionListener { private JButton nordKnapp; private JLabel sydEtikett; public Lektion3a(){ super("Lektion3a"); setSize(300, 150); nordKnapp = new JButton("Tryck för en hälsning"); sydEtikett = new JLabel("Här ska hälsningen hamna", JLabel.CENTER); nordKnapp.addActionListener(this);

Lektion 3a getContentPane().add(nordKnapp, BorderLayout.NORTH); getContentPane().add(sydEtikett, BorderLayout.SOUTH); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); }//konstruktor public void actionPerformed(ActionEvent e) { sydEtikett.setText("Hello World!"); }//actionPerformed

Lektion 3a public static void main(String[] args) { new Lektion3a(); }

Lektion 3b //en egendefinierad liten citatklass class Citat { private String person; private String ämne; private String citat; public Citat(String p, String ä, String c) { person = p; ämne = ä; citat = c; }//konstruktor

Lektion 3b public String visaPerson() { return person; } public String visaÄmne() { return ämne; public String visaCitat() { return citat; }//Citat

PAUSBILD 15 min Rast?

Lektion 3b import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Lektion3b extends JFrame implements ActionListener { static final int ANTAL = 3; private Container container; private JPanel nordPanel, mittPanel, sydPanel; private JLabel infoLabel, personLabel, ämnesLabel;

Lektion 3b private JTextField personText, ämnesText; private JTextArea citatText; private Font citatFont; private JButton köKnapp; private Citat citat; private Citat[] lager; public Lektion3b() { fixaGUI(); fixaCitat(); }

Lektion 3b public void fixaGUI() { setSize(400, 175); container = getContentPane(); //några infoetiketter i norr nordPanel = new JPanel(); nordPanel.setLayout(new GridLayout(1,4)); personLabel = new JLabel(" Person: ", JLabel.CENTER); personLabel.setOpaque(true); personLabel.setForeground(Color.black);

Lektion 3b personText = new JTextField(" Albert Einstein"); personText.setEditable(false); personText.setBackground(Color.yellow); ämnesLabel = new JLabel(" Ämne: ", JLabel.CENTER); ämnesLabel.setOpaque(true); ämnesLabel.setForeground(Color.black); ämnesText = new JTextField(" Teknik"); ämnesText.setBackground(Color.yellow); ämnesText.setEditable(false);

Lektion 3b nordPanel.add(personLabel); nordPanel.add(personText); nordPanel.add(ämnesLabel); nordPanel.add(ämnesText); container.add("North", nordPanel); citatFont = new Font("Verdana", Font.ITALIC, 14); citatText = new JTextArea("\n Den trådlösa telegrafen är inte svår att förstå. Den vanliga telegrafen är som en lång katt. Man drar i svansen i New York och så jamar den i Los Angeles. Trådlös telegrafi är samma sak fast utan katt.");

Lektion 3b citatText.setLineWrap(true); citatText.setWrapStyleWord(true); container.add("Center", citatText); sydPanel = new JPanel(); infoLabel = new JLabel(" 2I1049 CITATOMAT ", JLabel.CENTER); infoLabel.setOpaque(true); infoLabel.setForeground(Color.black); köKnapp = new JButton("Visa ett nytt citat"); sydPanel.add(infoLabel); sydPanel.add(köKnapp);

Lektion 3b köKnapp.addActionListener(this); container.add("South", sydPanel); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); }//fixaGUI

Lektion 3b public void fixaCitat() { lager = new Citat[ANTAL]; lager[0] = new Citat(" Alida, 7 år", " Datorer", "\n Inuti datorn finns det massor med sladdar. Sladdarna blir till spel när det går el eller vad det heter igenom dem."); lager[1] = new Citat(" Jacques, 7 år", " E-post", "\n Det finns någon sorts elrum eller vad man ska säga som skickar meddelanden till ett annat elrum. Man kan säga att det är som en hiss fast den går åt sidan.");

Lektion 3b lager[2] = new Citat(" Beata, 5 år", " Datorvirus", "\n Virus är som en sjukdom när man får in en massa smuts i datorn och då måste man tvätta den."); }//fixaCitat

Lektion 3b public void actionPerformed(ActionEvent e) { if(e.getSource() == köKnapp) { int index = (int) (Math.random() * ANTAL); citat = lager[index]; personText.setText(citat.visaPerson()); ämnesText.setText(citat.visaÄmne()); citatText.setText(citat.visaCitat()); } }//actionPerformed public static void main(String[] args) { new Lektion3b(); }//Lektion3b

Lektion 3c import java.awt.*; import java.applet.*; import javax.swing.*; public class Lektion3c extends JFrame{ private JPanel panel; private TextYta ty; private Toolkit tk; private Image bild; public void Lektion3c(){ setBackground(new Color(204, 0, 0));

Lektion 3c this.setSize(350, 200); Toolkit toolkit = Toolkit.getDefaultToolkit(); bild = toolkit.getImage("bild.jpg"); ty = new TextYta(bild); this.getContentPane().add(ty,"Center"); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { new Lektion3c();

Lektion 3c class TextYta extends JPanel{ private Image bild; private String text; private Font minFont; private FontMetrics fm; private Dimension dim; private int x, y; public TextYta(Image bild){ super(); this.setSize(350, 200); this.bild = bild;

Lektion 3c minFont = new Font("TimesRoman", java.awt.Font.BOLD, 52); text = new String("Hejsan!!"); } public void paintComponent(Graphics g){ super.paintComponent(g); g.drawImage(bild, 0, 0, this); g.setColor(new Color(70, 70, 70)); g.setFont(minFont); fm = g.getFontMetrics(minFont);

Lektion 3c dim = getSize(); int sWidth = fm.stringWidth(text); x = (dim.width/2) - (sWidth/2); y = 145; g.drawString(text,x, y); }//paintComponent }//TextYta Tack för idag!