Geschrieben: 29 Apr 2010 20:54
gelöscht
Hallo ich habe eine Frage!
Ich muss in RealJ ein Programm schreiben, dass beim drücke eines
Knopfes 6 Zahlen ausgibt.
Da ich nicht jede Zahl einzeln deklarieren will, habe ich das als
for-schleife gemacht!
Der Code sieht dann so aus:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class MyApp1 extends Applet
implements ActionListener
{
private Button Lottozahlen;
int [] Zahl = new int[6];
public void init()
{
Lottozahlen = new Button("Lottozahlen ziehen");
add (Lottozahlen) ;
Lottozahlen.addActionListener(this);
}
public void actionPerformed (ActionEvent event)
{
for (int i = 0; i < 6; i++)
Zahl = (int) (Math.random()*49)+1;
}
public void paint(Graphics g)
{
g.drawString("Sie haben gezogen", 20, 200);
g.drawString(""+Zahl+"", 20, 220);
}
}
In der roten Zeile zeigt er mir bei dem Zahl einen Fehler an.
Kann mir einer sagen wie ich das hinbekomme? Bin langsam am
verzweifeln!
Geschrieben: 29 Apr 2010 20:58
Kenne mich mit Java nicht aus, aber kann es sein, dass du die Zahl
auf einen string bzw. char (oder wie auch immer das in Java heißt)
casten musst, um sie der Zeichenkette hinzuzufügen?
Also
(string) Zahl
oder so.
"Die schärfsten Kritiker der Elche waren
früher selber welche."
(F. W. Bernstein)
Geschrieben: 29 Apr 2010 21:03
gelöscht
Also wenn ich es so hinschreibe:
g.drawString(""+(char)Zahl+"", 20, 220);
zeigt er mir immer noch den gleichen Fehler an, weil er die
variable i nicht kennt.
Geschrieben: 29 Apr 2010 21:06
Ach so... War wegen der fehlenden Formatierung etwas
unübersichtlich.
i ist ja auch eine lokale Variable der Prozedur actionPerformed. Du
müsstest die in paint nochmal deklarieren und dann in einer
Schleife den Ausgabestring aufbauen, oder was auch immer du
vorhast.
"Die schärfsten Kritiker der Elche waren
früher selber welche."
(F. W. Bernstein)
Geschrieben: 29 Apr 2010 21:21
gelöscht
Danke erstmal, vielleicht kannst du mir noch sagen, wie ich die
Varible lokal in Paint deklarieren kann, weil ich das noch nie
gemacht hab, bisher immer nur global.
Geschrieben: 29 Apr 2010 21:26
Blu-ray Starter
Aktivität:
Forenposts: 232
Clubposts: 1
seit 11.10.2008
Sony KDL-40D3500
Sony BDP-S350
Blu-ray Filme:
zuletzt kommentiert:
Blulife Magazin 04/2012:
Die perfekte Ablenkung im
Vorweihnachtsstress
Code:
public void paint(Graphics g) {
g.drawString("Sie haben gezogen", 20, 200);
for(int i = 0; i < 6; i++) {
g.drawString(""+Zahl[i]+"", 20, 220);
}
}
So sollte er alle Zahlen die im Array Zahl sind ausgeben.
//EDIT:
Mir fällt grade auf, dass es so vermutlich kacke aussieht, weil er
dann ja immer die neue Zahl über die alte schreibt.
Code:
public void paint(Graphics g) {
g.drawString("Sie haben gezogen", 20, 200);
res = "";
for(int i = 0; i < 6; i++) {
res = res + " " + Zahl[i];
}
g.drawString(res, 20, 220);
}
So sollte es besser sein.
Universal Pictures Home Entertainment hört doch einfach auf mit den
Filter-Wachs-Blurays und verpasst den Filmen ordentliche, neue HD
Master. Danke.
Geschrieben: 29 Apr 2010 21:33
gelöscht
Dankesehr!
Nun hat es funktioniert!
Edit:
stimmt hattest Recht, aber ich hatte wenigstens schonmal keinen
Fehler ;)
Aber irgentwie hat er Fehler bei dem neuen Code. Ist iwas mit
diesem res!
Geschrieben: 29 Apr 2010 21:44
Blu-ray Starter
Aktivität:
Forenposts: 232
Clubposts: 1
seit 11.10.2008
Sony KDL-40D3500
Sony BDP-S350
Blu-ray Filme:
zuletzt kommentiert:
Blulife Magazin 04/2012:
Die perfekte Ablenkung im
Vorweihnachtsstress
Ja, stimmt haste recht schreib mal String davor. :P
Also String res = "";
Universal Pictures Home Entertainment hört doch einfach auf mit den
Filter-Wachs-Blurays und verpasst den Filmen ordentliche, neue HD
Master. Danke.
Geschrieben: 29 Apr 2010 21:47
gelöscht
Jetzt tut es endlich! Danke nochmal!:)
Geschrieben: 29 Apr 2010 21:55
Blu-ray Starter
Aktivität:
Forenposts: 232
Clubposts: 1
seit 11.10.2008
Sony KDL-40D3500
Sony BDP-S350
Blu-ray Filme:
zuletzt kommentiert:
Blulife Magazin 04/2012:
Die perfekte Ablenkung im
Vorweihnachtsstress
Code:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class MyApp1 extends Applet {
private Button Lottozahlen;
int [] Zahl = new int[6];
public void init() {
this.Lottozahlen = new Button("Lottozahlen ziehen");
this.add (Lottozahlen);
Lottozahlen.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent event) {
for (int i = 0; i < 6; i++) {
Zahl [i] = (int) (Math.random()*49)+1;
}
}
});
}
public void paint(Graphics g) {
g.drawString("Sie haben gezogen", 20, 200);
String res = "";
for(int i = 0; i < 6; i++) {
res = res + " " + Zahl[i];
}
g.drawString(res, 20, 220);
}
}
Ich würde es vermutlich so schreiben. Mit einer anonymen
Implementierung des Interfaces ActionListener.
Wenn ich keine Syntaxfehler reingebaut habe, müsste das das Selbe
Ergebnis erzielen.
Wofür brauchsten das überhaupt?!
Universal Pictures Home Entertainment hört doch einfach auf mit den
Filter-Wachs-Blurays und verpasst den Filmen ordentliche, neue HD
Master. Danke.