Programmering i Java versjon 2000-08-15 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.

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
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 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.
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.
Java 4 Mer om forgreninger While-løkker Ole Christian Lingjærde
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.
GUI-programmering, del 2 Enkle layout-håndterere Forskjellige typer hendelser og lyttere GUI-komponenter for valg (oppgave) LC191D Videregående programmering.
Jæger: Robuste og sikre systemer INF150 Programmering torsdag 31.8 Kapittel 3: Grunnlag for programmering i Visual Basic.
Læringsmål for forelesningen
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.
Å 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.
Programmering i Java tilpasset undervisning våren 2009 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet.
Fag LO189D - Objektorientert programmering Objektorientert programmering© Else Lervik, TISIP - HiST/IDB vår-99Leksjon 7 Grafikk Fra AWT til Swingside 2.
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.
Fag LO189D - Objektorientert programmering Objektorientert programmering© Else Lervik, TISIP - HiST/IDB vår-99Leksjon 9 GUI-komponenter De vanligste GUI-komponenteneside.
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.
INF1000 (Uke 4) Mer om forgreninger, While-løkker
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.
Kapittel 5 Vilkårssetningar og løkker. 5.1 Boolske uttrykk George Boole ( ), britisk matematikar Utvikla teori om logikk ved bruk av symbol i.
Variabler, datatyper og uttrykk
Utskrift av presentasjonen:

Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 13 GUI-programmering og hendelser GUI = Graphical User Interface GUI-komponenterside 2-3 Et utdrag av klassetreetside 4 Å trykke på en knappside 5-6 Litt API (Container, JButton, AbstractButton) side 7 Mer om trykknappeksempletside 8 Indre klasserside 9 Tekstfeltside 10 Å håndtere layoutenside 11-14

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 13, side 2 GUI-komponenter avkrysningsrute / check box ledetekst / label tekstboks / textbox trykknapp /button radioknapp / radiobutton gruppeboks /group box nedtrekksliste / drop-down list box verdisettingsboks / spin box

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 13, side 3 GUI-komponenter i Swing Demoprogram på jdk1.3/demo/jfc/SwingSet2/SwingSet2.html

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 13, side 4 Et utdrag av klassetreet JComponent JTextComponent AbstractButton JComboBox JLabel JList JMenuBar JPane JPopupMenu JScrollbar JScrollPane JTable JTree JToggleButton JButton JMenuItem JCheckBoxJRadioButton JRadioButtonMenuItemJCheckBoxMenuItem ContainerComponentObject JPanel JApplet AppletPanel JMenu FontColor JTextAreaJTextField Husk J’en først i klasse- navnene!

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 13, side 5 Å trykke på en knapp En hendelse inntreffer hver gang du trykker på knappen. Brukerne kan initiere mange typer hendelser i et GUI-program. En hendelse kan føre til at programmet reagerer på en bestemt måte. Vi kan tenke oss at dette er programmert som en evig løkke med en kjempestor switch-setning inne i løkken (se til høyre). Løkken og switch-setningen er ferdig laget for oss, vi skal bare lage innholdet i case-blokkene. while (true) { switch (hendelse) { case passordinput sjekk passord break; case utskrift skriv ut dokumentet break; case knappen "beregn skatt" er trykket på beregn skatt break; case } En linje utskrift til konsollet for hvert trykk på knappen: Du trykket på knappen!

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 13, side 6 Kildekoden og meldingsutvekslingen der public class TrykknappApplet extends JApplet { public void init() { Container guiBeholder = getContentPane(); LayoutManager layout = new FlowLayout(); guiBeholder.setLayout(layout); JButton knapp = new JButton("Trykk her!!"); guiBeholder.add(knapp); Knappelytter knappelytteren = new Knappelytter(); knapp.addActionListener(knappelytteren); } class Knappelytter implements ActionListener { public void actionPerformed(ActionEvent hendelse) { System.out.println("Du trykket på knappen!"); } 1. Lag knappen. 2. Legg knappen i GUI-beholderen. 3. Lag lytterobjektet. 4. Registrer lytterobjektet hos knappen, slik at det reagerer når noen trykker på knappen. Hver type lytter krever at vi implementerer et gitt interface. knappelytteren: Knappelytter trykk actionPerformed() System.out println(....) kildenlytteren knapp: JButton

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 13, side 7 Litt API Klassen java.awt.Container –public void setLayout(LayoutManager layouthåndterer) –public Component add(Component comp) Klassen javax.swing.JButton –public JButton() –public JButton(String tekst) –public JButton(Icon ikon) –public JButton(String tekst, Icon ikon) Klassen javax.swing.AbstractButton –public void addActionListener(ActionListener enLytter) –public void setMnemonic(char mnemonic) –public void setEnabled(boolean åpen) –public void setText(String text) Gjør alle oppgavene side 384.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 13, side 8 Mer om trykknappeksemplet public class FargeKnappApplet extends JApplet { public void init() { Container guiBeholder = getContentPane(); guiBeholder.setLayout(new FlowLayout()); JButton knapp = new JButton("Trykk her!!"); guiBeholder.add(knapp); Knappelytter knappelytteren = new Knappelytter(guiBeholder); knapp.addActionListener(knappelytteren); } class Knappelytter implements ActionListener { private Container guiBeholderen; public Knappelytter(Container startBeholder) { guiBeholderen = startBeholder; } public void actionPerformed(ActionEvent hendelse) { guiBeholderen.setBackground(Color.red); } public class FargeknappApplet2 extends JApplet { private Container guiBeholder; public void init() { guiBeholder = getContentPane(); guiBeholder.setLayout(new FlowLayout()); JButton knapp = new JButton("Trykk her!"); guiBeholder.add(knapp); Knappelytter knappelytteren = new Knappelytter(); knapp.addActionListener(knappelytteren); } private class Knappelytter implements ActionListener { public void actionPerformed(ActionEvent hendelse) { guiBeholder.setBackground(Color.red); } Hva hvis knappetrykket skal føre til at bakgrunnsfargen blir rød? Mer praktisk med en indre klasse:

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 13, side 9 Indre klasser En indre klasse er å betrakte som et medlem i klassen. Et objekt av en indre klasse tilhører alltid et bestemt objekt av den ytre klassen. Tilgjengeligheten til den indre klassen styres av en eventuell tilgjengelighetsmodifikator. I dette kurset er alle indre klasser private. Vi bruker indre klasser kun i forbindelse med GUI-programmering –Vi lager lytterklasser. –Vi lager kompliserte GUI ved å sette sammen flere deler, hver slik del (”panel”) vil være et objekt av en indre klasse.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 13, side 10 Tekstfelt public class NavneApplet extends JApplet { private Container guiBeholder; private JTextField navnefelt = new JTextField(20); private JLabel hilsen = new JLabel(); public void init() { guiBeholder = getContentPane(); guiBeholder.setLayout(new FlowLayout()); JLabel ledetekst = new JLabel("Skriv navnet ditt:"); guiBeholder.add(ledetekst); guiBeholder.add(navnefelt); JButton knapp = new JButton("Trykk her!"); guiBeholder.add(knapp); Knappelytter knappelytteren = new Knappelytter(); knapp.addActionListener(knappelytteren); guiBeholder.add(hilsen); } private class Knappelytter implements ActionListener { public void actionPerformed(ActionEvent hendelse) { String navn = navnefelt.getText(); hilsen.setText("Hei på deg, " + navn + "!"); } Klassen javax.swing.JLabel –public JLabel() –public JLabel(String tekst) –public JLabel(String tekst, int horisontalJustering) –public void setText(String tekst) Klassen javax.swing.JTextField –public JTextField() –public JTextField(String tekst) –public JTextField(int antKolonner) –public JTextField(String tekst, int antKolonner) –public void setHorizontalAlignment(int horsiontalJustering) –public int getHorizontalAlignment() –public void setFont(Font nySkrifttype) –public void addActionListener(ActionListener enLytter) Klassen javax.swing.text.JTextComponent –public String getText() –public void setText(String tekst) –public void setEditable(boolean åpen) Gjør alle oppgavene side 391.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 13, side 11 Å håndtere layouten Vi kan bestemme plasseringen absolutt ved å angi pikselposisjonen til en komponent. Det er imidlertid vanlig å bruke layout-håndterere for å styre utleggingen av komponentene. Hittil har vi brukt FlowLayout: Komponentene legges ut fra venstre mot høyre, sentrert på linjene:

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 13, side 12 BorderLayout - standard for appleter public class TestBorderLayout extends JApplet { public void init() { Container guiBeholder = getContentPane(); Font storSkrift = new Font("SansSerif", Font.BOLD, 20); JButton knappEn = new JButton("1"); knappEn.setFont(storSkrift); guiBeholder.add(knappEn, BorderLayout.WEST); JButton knappTo = new JButton("2"); knappTo.setFont(storSkrift); guiBeholder.add(knappTo, BorderLayout.CENTER); JButton knappTre = new JButton("3"); knappTre.setFont(storSkrift); guiBeholder.add(knappTre, BorderLayout.EAST); JButton knappFire = new JButton("4"); knappFire.setFont(storSkrift); guiBeholder.add(knappFire, BorderLayout.NORTH); JButton knappFem = new JButton("5"); knappFem.setFont(storSkrift); guiBeholder.add(knappFem, BorderLayout.SOUTH); } 1 - WEST 2 - CENTER 3 - EAST 4 - NORTH 5 - SOUTH 1 - WEST 2 - CENTER 3 - EAST 1 - NORTH 2 - CENTER 3 - SOUTH

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 13, side 13 GridLayout public class TestGridLayout extends JApplet { private JTextField navn = new JTextField(15); private JTextField adresse = new JTextField(15); private JTextField tlf = new JTextField(15); private JTextField ePost = new JTextField(15); public void init() { Container guiBeholder = getContentPane(); guiBeholder.setLayout(new GridLayout(4, 2, 5, 5)); JLabel ledetekst = new JLabel("Navn:", JLabel.RIGHT); guiBeholder.add(ledetekst); guiBeholder.add(navn); ledetekst = new JLabel("Adresse:", JLabel.RIGHT); guiBeholder.add(ledetekst); guiBeholder.add(adresse); ledetekst = new JLabel("Tlf.:", JLabel.RIGHT); guiBeholder.add(ledetekst); guiBeholder.add(tlf); ledetekst = new JLabel("E-post:", JLabel.RIGHT); guiBeholder.add(ledetekst); guiBeholder.add(ePost); } Argumentene til GridLayout() er: antall rader, antall kolonner, horisontal avstand mellom rutene, vertikal avstand mellom rutene.

Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk ISBN Kapittel 13, side 14 Å dele en GUI-beholder i flere små beholdere (paneler) Vis programliste 13.8 side nordre del, GridLayout midtre del, FlowLayout søndre del, FlowLayout