Programmering i Java tilpasset undervisning våren 2009 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet.

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

Tabeller av objekter Klassen ArrayList
Ebus Management Center En liten bruksanvisning for de enkleste funksjonene.
GUI-programmering, del 3 Vinduslyttere Dialogvinduer GUI-komponenten JTable Egne datamodellklasser LC191D Videregående programmering Semesterplan:
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Datafiler og serialisering Tekstfiler Scanner-klassen Binær overføring av data Direkte tilgang til filinnholdet Serialisering LC191D Videregående programmering.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Slik kommer du til «Personverninnstillinger»: Logg inn på Facebook.
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Samarbeid mellom objekter
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
IS-102 Klassedefinisjoner
C# for javaprogrammerere
Fag LO189D - Objektorientert programmering Objektorientert programmering© Else Lervik, TISIP - HiST/IDB vår-99Leksjon 11 Applet’s Hva karakteriserer applet’sside.
Å lage sikre klasser Unntaksklassene i Java-API-et Unntakshåndtering i databasesammenheng try-catch-finally-setningen Trelagsarkitektur; egen databaseklasse.
Jæger: Robuste og sikre systemer INF150 Programmering torsdag 31.8 Kapittel 3: Grunnlag for programmering i Visual Basic.
Opplæring: PC-er DMF DatoVersjonForfatterGodkjent avEndringer utført André S. MathiesenTore Jo NilsenOpprettet Jan Inge S. OhrenOppdatert.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Andre funksjoner. Her kommer en beskrivelse av søkefunksjoner, knapper og annen funksjonalitet. 2.
Å lese tall fra en fil, klassen Scanner 1.Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2.Kan skanne teksten etter data av ulike.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
Jæger: Robuste og sikre systemer INF150 Programmering Kapittel 2: Problemløsning Kapittel 3.1 og 3.2.
Hovedprosjekt 10 E Språktreningsprogram i Java utført av Ingrid Bork.
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Opplæring: Pålogging Prosedyre for logge på og av, låse og åpne PC’er DatoVersjonForfatterGodkjent avEndringer utført André S. MathiesenTore.
Main metoden n public static void main(String[] args){ } n Inni denne metoden skjer alt! n Det kan bare finnes en main metode per program. n Den kan ligge.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Fag LO189D - Objektorientert programmering Objektorientert programmering© Else Lervik, TISIP - HiST/IDB vår-99Leksjon 10 Mer om programmering av GUI Dialoger.
Programmering i Java versjon september 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
Byggeklosser i java  Klassedefinisjon  Variabel deklarasjon  Metodedeklarasjoner  En ordentlig klasse  Spesielle/kryptiske skrivemåter  løkker og.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Kapittel 4 Skriving av klasser. 4.1 Anatomien til ein klasse Så langt har vi brukt ferdige klasser frå klassebiblioteket i Java Vi lagar objekt og brukar.
Variabler, datatyper og uttrykk
Utskrift av presentasjonen:

Programmering i Java tilpasset undervisning våren 2009 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 15 Å lage brukergrensesnitt Kap. 15 i boka – forelesning : 15.1 Menyer, les på egen hånd 15.2 Knapperader, les på egen hånd 15.3 Ulike typer vinduer, gjennomgås raskt 15.4 Vinduslyttere, gjennomgås raskt 15.5 Dialogvinduer, gjennomgås grundig, inkl. oppgave side 552. Se også eksempel kap. 20.4, side Kodedetaljene knyttet til knappene i MinDialog tas overfladisk. Ikke pensum GUI-komponenten tabell (JTable), gjennomgås inkl. oppgave side GridBagLayout som layouthåndterer. Gjennomgås ikke. Ikke direkte pensum, men bør leses for å forstå det store eksemplet i boka Oppussingseksemplet, del 4. Gjennomgås ikke pga størrelsen, men pensum Å lage egne datamodellklasser, pensum. Gjennomgår oppg side 573 istf det store eksemplet.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 15, side 2 Vinduer i Java Primærvindu (klassen JFrame) med knapper for minimering, maksimering og lukking og tittellinje Interne vinduer (klassen JInternalFrame) med knapper for minimering, maksimering og lukking. Ingen deler av et internt vindu kan vises utenfor det primærvinduet det tilhører. Sekundærvindu (dialog, klassen JDialog), lukkes dersom foreldrevinduet lukkes

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 15, side 3 Klassetreet med vindusklassene Object Component JFrame JInternalFrame Dialog JDialog Container JComponent FrameJWindow Window

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 15, side 4 Vinduslyttere Hittil –setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Av og til trenger vi selv å kontrollere lukkingen, for eksempel dersom filer skal lukkes: –setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); Interface java.awt.event.WindowListener: void windowActivated(WindowEvent hendelse); void windowClosed(WindowEvent hendelse); void windowClosing(WindowEvent hendelse); void windowDeactivated(WindowEvent hendelse); void windowDeiconified(WindowEvent hendelse); void windowIconified(WindowEvent hendelse); void windowOpened(WindowEvent hendelse);

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 15, side 5 Klassen WindowAdapter Et vinduslytterobjekt må tilhøre en klasse som implementerer interfacet WindowListener Vanligvis er de fleste metodene tomme Det er derfor laget en adapter-klasse (gjelder alle awt-lytter-interface med mer enn en metode): package java.awt.event; public abstract class WindowAdapter implements WindowListener { public void windowOpened(WindowEvent hendelse) {} public void windowClosing(WindowEvent hendelse) {} //... og så videre, bare tomme metoder } Eksempel på bruk private class Vinduslytter extends WindowAdapter { public void windowClosing(WindowEvent hendelse) {... sett inn kode her... dispose(); System.exit(0); // hvis programmet skal avsluttes }

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 15, side 6 Dialogvinduer, eksempel se kode kap. 20.4, side , men les kap 15.5 først Nytt navn skrives inn og sendes tilbake til hovedvinduet. Navnet endres, og resultatet sendes tilbake til hovedvinduet foreldrevindu med to barnevinduer

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 15, side 7 Dialogvinduer Et dialogvindu er et sekundærvindu, det vil si at det alltid bør være knyttet til et foreldrevindu. Et modalt dialogvindu hindrer brukeren tilgang til andre vinduer så lenge dialogvinduet er åpent. Ikke-modale vinduer er mer praktiske for brukeren, men krever mer av programmereren i og med at flere vinduer må holdes oppdatert på en gang.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 15, side 8 Det enkleste dialogvinduet visDialog() 1 2

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 15, side 9 Meldingsutvekslingen i det aller enkleste dialogvinduet System. out foreldre- vindu knappelytter trykk knapp dialog- boks knappelytterokKnapp ”klient” actionPerformed() visDialog() trykk actionPerformed() setVisible(true) setVisible(false) println(”OK trykket…”) setVisible() ikke retur før meldingen setVisible(false) sendes til dialogboksen

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 15, side 10 Hvordan gjør vi det, kort fortalt 1.Et dialogvindu er en subklasse til JDialog. Den må ha en konstruktør som kaller superklassen sin konstruktør med argumentet modal = true. (Standardkonstruktøren til JDialog lager en ikke-modal dialog.) 2.La hvert enkelt dialogvindu ha en metode med navn visDialog() e.l. Inne i denne metoden finner vi kallet setVisible(true). For modale dialogvinduer vil denne metoden ikke returnere før setVisible(false) er kalt. 3.All aktivitet i dialogen må avsluttes med kallet setVisible(false). 4.Lag foreldrevinduet med dialogene som objektvariabler. Vis programliste 15.3 side Gjør oppgave 1 side 552: Endre programliste slik at MiniDialog inneholder et tekstfelt som brukeren kan skrive i. Endre visDialog() slik at den returnerer denne teksten som en streng til foreldrevinduet dersom bruker trykker på OK-knappen. Hvis brukeren trykker på Avbryt-knappen, skal metoden returnere null. Foreldrevinduet skal skrive ut teksten rett under trykknappen "Trykk her!"

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 15, side 11 En standard OK-Avbryt-dialog OK betyr at endringene som er lagt inn i dialogvinduet skal gjelde. Avbryt betyr at endringene ikke skal gjelde. Vi lager en klasse som beskriver et dialogvindu med disse knappene og lar våre øvrige dialogvinduer være subklasser til denne. Klassen heter MinDialog og ligger i pakken mittBibliotek. Øvrig funksjonalitet: –Klassen inneholder metoden okData(). En subklasse kan lage sin egen utgave av denne metoden for kontroll av inndata. Dersom brukeren trykker OK vil ikke dette aksepteres dersom okData() returnerer false. –Dersom brukeren prøver å lukke vinduet ved å trykke i øverste høyre hjørne, vil spørsmålet ”Skal eventuelle registrerte data lagres?” komme. Hvis brukeren svarer ja, vil dataene lagres dersom okData() returnerer true. –OK-knappen er definert som standardknapp. –Escape-tasten er knyttet til Avbryt-knappen. Vis programliste 15.4 side

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 15, side 12 Overføring av data mellom foreldrevindu og dialogvindu Hansen, Ole Hansen, Ole Petter

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 15, side 13 Tester PersonDialog Vis programliste 15.5 side Foreldrevindu extends JFrame PersonDialog extends MinDialog JOptionPane, kommer dersom brukeren lukker navnedialogen ved å trykke i øverste høyre hjørne

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 15, side 14 GUI-komponenten tabell (klassen JTable) En tabell har kolonner og linjer. Kolonnene har navn. Brukeren kan velge linjer i tabellen ved å klikke på dem. Kan sette opp om det skal være mulig å velge kun én linje av gangen, ett intervall av linjer, eller flere intervall. Valget håndteres omtrent på samme måte som for lister. Standard er at brukeren velger linjer, ikke celler. Brukeren kan endre dataene direkte i cellene. Vis programliste 15.6 side Gjør oppgaven side 554: Endre programmet foran slik at opplysninger om nye byer kan legges inn. Modellklassen du skal bruke, heter DefaultTableModel.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, 3.utgave, Stiftelsen TISIP og Gyldendal Akademisk Kapittel 15, side 15 Å lage egne datamodellklasser Trenger å forholde oss til den underliggende datamodellen når datainnholdet i GUI-komponentene liste (JList) og tabell (JTable) skal oppdateres DefaultListModel og DefaultTableModel kan brukes Kan også lage våre egne Datamodell for JList –Subklasse til AbstractListModel –Må implementere Object getElementAt(int indeks) og int getSize() –Må varsle datamodellen når dataene er forandret: protected metode fireIntervalAdded() (flere metoder, se online API-dok.) kaller den fra en egenlaget offentlig metode Datamodell for JTable –Subklasse til AbstractTableModel –Må implementere int getColumnCount(), int getRowCount() og Object getValueAt(int rad, int kolonne) –Må varsle datamodellen når dataene er forandret: fireTableDataChanged() (flere metoder, se online API-dok.) Kan selvfølgelig lage egne utgave av arvede metoder, dersom ønskelig Gjør oppgaven side 573. I oppgaven på side 554 brukte du DefaultTableModel. Skift ut denne med en subklasse til AbstractTableModel.