Script Java

Script Java Script Java

29.01.2014 Aufrufe

2.1 Programmaufbau, Attribute und Methoden Neben den in der Attributdeklaration aufgeführten Objekten gibt es aber noch ein weiteres Objekt, welches wir benennen. Es heisst button und ist eine Instanz der Klasse Button. Button button; Da die Instanz button innerhalb der Methode UserFrame() deklariert wurde und nicht innerhalb der Klasse UserFrame, handelt es sich nicht um ein Attribut der Klasse UserFrame. Dies hat zur Folge, dass es nur innerhalb der Methode selbst „bekannt“ ist und auch nur dort angesprochen werden kann. Der Aufruf setTitle("Business Cards"); bewirkt, dass in der Titelleiste eines Objekts der Klasse UserFrame der Text „Business Cards“ erscheint. Hierbei handelt es sich im Gegensatz zu der Methode place(), welche durch den Programmierer neu deklariert wurde, um eine in der Klassenbibliothek bereits vorhandenen Methode. Damit wir sämtliche Labels, TextFields und den einen Button mittels place() absolut positionieren können, also konkrete x-/ und y-Werte angeben dürfen, ist der Aufruf setLayout(null); notwendig. Es handelt sich bei setLayout() wiederum um eine im package awt deklarierte Methode. setSize(200,300); setzt die Breite einer Instanz der Klasse UserFrame auf 200 pixels und die Höhe auf 300 pixels. setResizable(false); macht das Ändern der Grösse eines Objektes der Klasse UserFrame durch Ziehen mit der Maus an einer Ecke des Fensters unmöglich. setVisible(true); macht ein Objekt der Klasse UserFrame überhaupt erst sichtbar. Es lässt sich nun fragen, wer der Empfänger der zuvor behandelten Botschaften ist. Wenn nicht explizit ein Empfänger angegeben ist, dann wird die Botschaft an eine Instanz jener Klasse gesandt, in welcher der Aufruf erfolgt. Auf diese Problematik wird noch in Abschnitt 6.1.1.3 und 6.1.2.3 weiter eingegangen. In unserem Beispiel ist auf alle Fälle, wenn keine explizite Angabe gemacht wird, die in Abbildung 2-2 ersichtliche Instanz des UserFrame der Empfänger der Botschaften. In unserem Beispielprogramm werden hauptsächlich Methoden aus der Klassenbibliothek verwendet. Neu deklariert wurden durch den Programmierer lediglich die Klassen 30

2.1 Programmaufbau, Attribute und Methoden UserFrame und TestProg, die Attribute firstName, familyName, street, zipCode und city und die Methoden place(), UserFrame() und actionPerformed(). Eine Methode aus der Klassenbibliothek erkennt man daran, dass sie nicht im Programm deklariert wurde. Bei Unsicherheit hilft ansonsten auch ein Blick in Anhang B, wo sämtliche in diesem Skript verwendete Elemente aus der Java- Klassenbibliothek aufgelistet werden. Siehe auch: 2.1.2.1, 2.1.2.5, Anhang B 2.1.1.4 Event Handling Graphische Benutzeroberflächen erlauben eine Interaktion mit dem Benutzer. So kann in unserem Beispielprogramm der Benutzer seine erfassten Daten durch Aktivieren des Buttons PRINT auf der Konsole ausdrucken lassen. Wenn der Benutzer den Button nicht betätigt, passiert nichts. Diese Art der Interaktion wird in Java durch das sogenannte Event Handling möglich. Auf das Event Handling wird noch in den Abschnitten 5.1.1.1 und 5.1.2.1 eingehend eingegangen. Im Programm haben die Anweisung button.addActionListener(), die Methode actionPerformed() und das Schlüsselwort implements ActionListener im Kopf der Klasse UserFrame mit diesem Event Handling zu tun. Die Anweisung button.addActionListener(this); bewirkt, dass jedesmal, wenn der Button PRINT aktiviert wird, die Methode actionPerformed() aufgerufen wird. 2.1.1.5 String Concatenation public void actionPerformed(ActionEvent event){ System.out.println(firstName.getText()+" "+familyName.getText()); System.out.println(street.getText()); System.out.println(zipCode.getText()+" "+city.getText()); System.out.println(); } Das Versenden der Botschaft println() an System.out hat zur Folge, dass der als Parameter übergebene Text auf der Konsole ausgedruckt wird und danach ein Zeilenumbruch stattfindet. Hierbei bezeichnet System.out das momentane Ausgabemedium, also die Konsole (Java Console). Wird kein Parameter übergeben, so wird eine Leerzeile gedruckt. Das letzte println() hat also zur Folge, dass beim Ausdruck mehrerer Personen deren Adressen durch einen Abstand voneinander getrennt sind. Schauen wir uns genauer den Parameter des ersten Methodenaufrufs an: 31

2.1 Programmaufbau, Attribute und Methoden<br />

UserFrame und TestProg, die Attribute firstName, familyName, street,<br />

zipCode und city und die Methoden place(), UserFrame() und<br />

actionPerformed(). Eine Methode aus der Klassenbibliothek erkennt man daran,<br />

dass sie nicht im Programm deklariert wurde. Bei Unsicherheit hilft ansonsten auch ein<br />

Blick in Anhang B, wo sämtliche in diesem Skript verwendete Elemente aus der <strong>Java</strong>-<br />

Klassenbibliothek aufgelistet werden.<br />

Siehe auch: 2.1.2.1, 2.1.2.5, Anhang B<br />

2.1.1.4 Event Handling<br />

Graphische Benutzeroberflächen erlauben eine Interaktion mit dem Benutzer. So kann in<br />

unserem Beispielprogramm der Benutzer seine erfassten Daten durch Aktivieren des<br />

Buttons PRINT auf der Konsole ausdrucken lassen. Wenn der Benutzer den Button nicht<br />

betätigt, passiert nichts. Diese Art der Interaktion wird in <strong>Java</strong> durch das sogenannte Event<br />

Handling möglich. Auf das Event Handling wird noch in den Abschnitten 5.1.1.1 und<br />

5.1.2.1 eingehend eingegangen. Im Programm haben die Anweisung<br />

button.addActionListener(), die Methode actionPerformed() und das<br />

Schlüsselwort implements ActionListener im Kopf der Klasse UserFrame mit<br />

diesem Event Handling zu tun.<br />

Die Anweisung<br />

button.addActionListener(this);<br />

bewirkt, dass jedesmal, wenn der Button PRINT aktiviert wird, die Methode<br />

actionPerformed() aufgerufen wird.<br />

2.1.1.5 String Concatenation<br />

public void actionPerformed(ActionEvent event){<br />

System.out.println(firstName.getText()+" "+familyName.getText());<br />

System.out.println(street.getText());<br />

System.out.println(zipCode.getText()+" "+city.getText());<br />

System.out.println();<br />

}<br />

Das Versenden der Botschaft println() an System.out hat zur Folge, dass der als<br />

Parameter übergebene Text auf der Konsole ausgedruckt wird und danach ein<br />

Zeilenumbruch stattfindet. Hierbei bezeichnet System.out das momentane<br />

Ausgabemedium, also die Konsole (<strong>Java</strong> Console). Wird kein Parameter übergeben, so<br />

wird eine Leerzeile gedruckt. Das letzte println() hat also zur Folge, dass beim<br />

Ausdruck mehrerer Personen deren Adressen durch einen Abstand voneinander getrennt<br />

sind.<br />

Schauen wir uns genauer den Parameter des ersten Methodenaufrufs an:<br />

31

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!