Java Programm < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 17:32 Sa 14.01.2006 | Autor: | saoody |
Aufgabe | Erläutern Sie die Funktion, Struktur und die Anwendung des Programms ! |
Hallo Leute,
also ich habe hier ein Java-Programm, bei dem ich jede Zeile beschreiben muss. Da Programmierung nicht so wirklich meine Sache ist, habe ich damit erhebliche Probleme. Ich habe es versucht, bin mir aber ziemlich unsicher.
Finde das ich die Zeilen nur beschrieben habe, aber nicht die Funktion erläutert habe.
Dann leg ich los:
KlickKlack.java TEIL 1 => so heißt dieses Programm
jetzt fängt das eigentliche Programm an:
1.import java.awt.*;
2.import java.applet.*;
3.import java.awt.event.*;
4.public class KlickKlack extends Applet {
5. Button klickButton = new Button("KlickKlack");
6. boolean klick = true;
7. public void init () {
8. add (klickButton);
9. klickButton.addMouseListener (new MyMouseAdapt () );
10. }
11. class MyMouseAdapt extends MouseAdapter {
12. public void mouseClicked )MouseEvent e) {
13. Graphics g = getGraphics ();
14. if (klick)
15. g.setColor (Color.red);
16. else
17. g.setColor(Color.yellow);
18. g.fillOval (0,0,getWidth (), getHeight());
19. klick = !klick;
20. }
21. }
22. }
1 - 3. Hier sind meine Bibliotheken aufgelistet und über import habe ich Zugriff auf die Klassen Applet und MouseAdapter
4. KlickKlack ist der Name der Applet-Klasse, die in KlickKlack.java gespeichert wird und KlickKlack ist die Unterklasse von Applet
5. Druch die new-Anweisung findetr eine Instanzierung statt bzw. es wird das Objekt (Button) erzeugt
6. irgendein Zustand ist wahr, weiß ich nicht genau was mit boolean auf sich hat
7. Die Klasse KlickKlack überlädt die Methode init, init wir beim Start einmalig ausgeführt
8. Es wird ein Button hinzugefügt (glaube ich)
9. hier bin ich überfordert
10. Diese geschw. Klammer gesagt, dass das Unterprogramm init zuende ist
11. Die Klasse MyMouseAdapt wird von der Oberklasse MouseAdapter geerbt
12. normalerweise steht doch public vor class, aber hier ???
13. graphics steht klar für Grafiken, aber welche Seite den Befehl beschreibt oder welche für die Ausgabe zusändig ist, weiß ich nicht.
14 - 17. Nun kommt ja die if und else Schleife. Die Grafik soll die farbe rot bekommen und beim nächsten Mausklick die Farbe gelb übernehmen
18. hier wird klar das die Grafik ein Kreis darstellen soll, welches eine ovale Form hat un die 2 Nullen sagen aus, dass der Kreis keine Weite und Höhe hat
Hoffe das jemand mir die Sachen etwas verständlicher machen kann.
Bin dankbar für jeden Verbesserungsvorschlag !!!
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 10:45 So 15.01.2006 | Autor: | piet.t |
Hallo saood,
hier mal meine Anmerkungen:
>
> 1 - 3. Hier sind meine Bibliotheken aufgelistet und über
> import habe ich Zugriff auf die Klassen Applet und
> MouseAdapter
Wäre vielleicht noch schön zu sagen, welche der Klassen aus welchem package kommt. Und wozu braucht man java.awt?
> 4. KlickKlack ist der Name der Applet-Klasse, die in
> KlickKlack.java gespeichert wird und KlickKlack ist die
> Unterklasse von Applet
> 5. Druch die new-Anweisung findetr eine Instanzierung
> statt bzw. es wird das Objekt (Button) erzeugt
Vielleicht besser: es wird ein Objekt vom Typ Button erzeugt. Dieses Objekt ist im applet unter dem Namen klickButton ansprechbar.
> 6. irgendein Zustand ist wahr, weiß ich nicht genau was
> mit boolean auf sich hat
Wir definieren eine Instanzvariable namens klick vom Typ boolean (d.h. mit den Werten true oder false) und weisen ihr den Anfangswert "true" zu.
> 7. Die Klasse KlickKlack überlädt die Methode init, init
> wir beim Start einmalig ausgeführt
> 8. Es wird ein Button hinzugefügt (glaube ich)
Genauer: der vorhin erzeugte Button wird dem applet hinzugefügt
> 9. hier bin ich überfordert
Hier wird dem klickButton mitgeteilt, dass er Maus-Ereignisse an die neu erzeugte Instanz der Klasse MyMouseAdapter melden soll.
> 10. Diese geschw. Klammer gesagt, dass das Unterprogramm
> init zuende ist
aber besser "Methode" statt "Unterprogramm"
> 11. Die Klasse MyMouseAdapt wird von der Oberklasse
> MouseAdapter geerbt
MyMouseAdapter wird nicht geerbt sondern abgeleitet. Sie erbt dann von dieser Klasse alle Methoden und Attribute (soweit sie nicht überschrieben werden)
> 12. normalerweise steht doch public vor class, aber hier
> ???
Die Klasse MyMouseAdapter ist nicht öffentlich, man kann Sie nur innerhalb von KlickKlack verwenden. Das macht auch Sinn, da diese (innere) Klasse ja auf Komponenten des applet zugreift.
public bezieht sich hier darauf, dass auf die Methode mouseClicked() auch von ausserhalb der Klasse MyMouseAdapter zugegriffen werden kann. (Muss so sein, sie wird ja schließlich vom klickButton aus aufgerufen!)
> 13. graphics steht klar für Grafiken, aber welche Seite
> den Befehl beschreibt oder welche für die Ausgabe zusändig
> ist, weiß ich nicht.
Unter Graphics stelle ich mir immer eine Leinwand vor, auf der ich dann malen kann (muss aber nicht stimmen, ich bin nicht wirklich der grosse awt-Kenner). Graphics-Objekte haben keinen öffentlichen Konstruktor, sondern müssen über die getGraphics-Methode einer awt-Komponente von dieser angefordert werden. Hier holen wir uns die "Leinwand" des applet-Objekts.
> 14 - 17. Nun kommt ja die if und else Schleife. Die Grafik
> soll die farbe rot bekommen und beim nächsten Mausklick die
> Farbe gelb übernehmen
Schleife? Welche Schleife? Da steht doch nur eine Abfrage!
Abhängig davon, ob klick gesetzt ist wird die Grafik rot oder gelb. Weil klick am Anfang true ist setzt der erste Mausklick die Farbe rot, danach wird immer zwischen rot und gelb umgeschalten (siehe auch unter 19).
> 18. hier wird klar das die Grafik ein Kreis darstellen
> soll, welches eine ovale Form hat un die 2 Nullen sagen
> aus, dass der Kreis keine Weite und Höhe hat
>
Wir zeichnen ein gefülltes Oval. Die zwei Nullen bezeichnen die Position der oberen linken Ecke (in Bezug auf das applet), Breite und Höhe werden vom applet übernommen (über getWidth und getHeight).
> Hoffe das jemand mir die Sachen etwas verständlicher machen
> kann.
> Bin dankbar für jeden Verbesserungsvorschlag !!!
>
>
Dann fehlt da noch 19.: klick wird von true auf false gesetzt oder umgekehrt, so dass beim nächsten Klick die andere Farbe erscheint.
Ich hoffe das hilft!
Gruß
piet
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:53 So 15.01.2006 | Autor: | saoody |
Jo, danke dir !!!
Ist auf jedenfall verständlicher geworden
|
|
|
|