Idag: Kort repetition av Java, klasser, knappar, fönster och allt det där. (Inget nytt i kursen, utan bara repetition av den tidigare Java-kursen.) |
Klicka på startknappen i den lilla mediaspelaren ovan för att lyssna på lektionen. (Man kan behöva vänta en stund på att ljudfilen laddas ner.) Om mediaspelaren inte syns, eller om det inte fungerar av något annat skäl, kan man klicka här för att ladda ner mp3-filen (ca 23 minuter, ca 11 megabyte). Beroende på hur webbläsaren är konfigurerad kan det kräva ett separat mp3-spelarprogram av något slag.
Vad heter du? Olle Hej, Olle! |
1 import java.io.*; 2 3 public class Boring { 4 public static void main(String args[]) throws IOException { 5 BufferedReader kbd_reader 6 = new BufferedReader(new InputStreamReader(System.in)); 7 System.out.println("Vad heter du?"); 8 String namn = kbd_reader.readLine(); 9 System.out.println("Hej, " + namn + "!"); 10 } // main 11 } // Boring |
Händelsestyrd programmering!
1 import javax.swing.*; 2 import java.awt.event.*; 3 import java.awt.*; 4 5 public class NamnApplet extends JApplet implements ActionListener { 6 private JLabel etiketten = new JLabel("Vad heter du?"); 7 private JTextField inmatningsfältet = new JTextField(6); 8 private JButton knappen = new JButton("Kör!"); 9 private JLabel utskriften = new JLabel(); 10 11 public void init() { 12 knappen.addActionListener(this); 13 Container cp = getContentPane(); 14 cp.setLayout(new FlowLayout()); 15 cp.add(etiketten); 16 cp.add(inmatningsfältet); 17 cp.add(knappen); 18 cp.add(utskriften); 19 } 20 21 public void actionPerformed(ActionEvent event) { 22 String namnet = inmatningsfältet.getText(); 23 utskriften.setText("Hej, " + namnet + "!"); 24 } // actionPerformed 25 } // class NamnApplet |
1 import javax.swing.*; 2 import java.awt.event.*; 3 import java.awt.*; 4 5 public class BingBong extends JApplet implements ActionListener { 6 private JButton bingknappen = new JButton("Bing"); 7 private JButton bongknappen = new JButton("Bong"); 8 private JTextField textfältet = new JTextField(15); 9 10 public void actionPerformed(ActionEvent e) { 11 JButton vilkenknapp = (JButton)e.getSource(); 12 if (vilkenknapp == bingknappen) 13 textfältet.setText("Du tryckte på Bing"); 14 else if (vilkenknapp == bongknappen) 15 textfältet.setText("Du tryckte på Bong"); 16 else 17 textfältet.setText("Vad sjutton tryckte du på???"); 18 } // actionPerformed 19 20 public void init() { 21 bingknappen.addActionListener(this); 22 bongknappen.addActionListener(this); 23 Container cp = getContentPane(); 24 cp.setLayout(new FlowLayout()); 25 cp.add(bingknappen); 26 cp.add(bongknappen); 27 cp.add(textfältet); 28 } 29 } // class BingBong |
Kommer du ihåg hur det där med objektorientering fungerar?
|
Skilj på klasser och objekt (= instanser): Varför fungerar inte de rödmarkerade raderna?
1 class Person { 2 private int lön; 3 private int bonus; 4 public Person(int lön, int bonus) { 5 this.lön = lön; 6 this.bonus = bonus; 7 } 8 public int lönesumma() { 9 return lön + bonus; 10 } 11 } // class Person 12 13 public class ObjektExempel { 14 public static void main(String args[]) { 15 int en_summa = Person.lönesumma(); 16 System.out.println("Summan = " + en_summa); 17 18 Person olle = new Person(17000, 200); 19 Person kajsa = new Person(38000, 29000); 20 21 int en_annan_summa = olle.lönesumma(); 22 System.out.println("Olles lönesumma = " + en_annan_summa); 23 int en_tredje_summa = kajsa.lönesumma(); 24 System.out.println("Kajsas lönesumma = " + en_tredje_summa); 25 } // main 26 } // class ObjektExempel |
1 import javax.swing.*; 2 import java.awt.event.*; 3 import java.awt.*; 4 5 public class BingBong2 extends JApplet { 6 private JButton bingknappen = new JButton("Bing"); 7 private JButton bongknappen = new JButton("Bong"); 8 private JTextField textfältet = new JTextField(15); 9 10 // Inre klass för att lyssna på en knapp 11 class BingLyssnare implements ActionListener { 12 public void actionPerformed(ActionEvent event) { 13 textfältet.setText("Du tryckte på Bing"); 14 } 15 } 16 17 // Inre klass för att lyssna på en annan knapp 18 class BongLyssnare implements ActionListener { 19 public void actionPerformed(ActionEvent event) { 20 textfältet.setText("Du tryckte på Bong"); 21 } 22 } 23 24 public void init() { 25 ActionListener binglyssnaren = new BingLyssnare(); 26 bingknappen.addActionListener(binglyssnaren); 27 ActionListener bonglyssnaren = new BongLyssnare(); 28 bongknappen.addActionListener(bonglyssnaren); 29 Container cp = getContentPane(); 30 cp.setLayout(new FlowLayout()); 31 cp.add(bingknappen); 32 cp.add(bongknappen); 33 cp.add(textfältet); 34 } 35 } // class BingBong2 |
Föregående lektion | Lektionslista | Nästa lektion