Blu-ray Forum → Heimkino, Hifi / Technik → Technik, Software, HTPC / Media Center Diskussionen → PC Systeme / Hardware

Java Programmierung RealJ

Gestartet: 29 Apr 2010 20:54 - 11 Antworten

#1
Geschrieben: 29 Apr 2010 20:54

gelöscht

Avatar 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!
#2
Geschrieben: 29 Apr 2010 20:58

Tsungam

Avatar Tsungam

user-rank
Blu-ray Papst
fsk-geprueft
user verified
aktivitaet.png Aktivität:
 
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)

#3
Geschrieben: 29 Apr 2010 21:03

gelöscht

Avatar 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.
#4
Geschrieben: 29 Apr 2010 21:06

Tsungam

Avatar Tsungam

user-rank
Blu-ray Papst
fsk-geprueft
user verified
aktivitaet.png Aktivität:
 
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)

#5
Geschrieben: 29 Apr 2010 21:21

gelöscht

Avatar 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.
#6
Geschrieben: 29 Apr 2010 21:26

DonaldDark

Avatar DonaldDark

user-rank
Blu-ray Starter
aktivitaet.png Aktivität:
 
Deutschland
Wiesbaden
kommentar.png
Forenposts: 232
Clubposts: 1
seit 11.10.2008
display.png
Sony KDL-40D3500
player.png
Sony BDP-S350
anzahl.png
Blu-ray Filme:
anzahl.png
zuletzt kommentiert:
Blulife Magazin 04/2012: Die perfekte Ablenkung im Vorweihnachtsstress
anzahl.png


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.
#7
Geschrieben: 29 Apr 2010 21:33

gelöscht

Avatar 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!
#8
Geschrieben: 29 Apr 2010 21:44

DonaldDark

Avatar DonaldDark

user-rank
Blu-ray Starter
aktivitaet.png Aktivität:
 
Deutschland
Wiesbaden
kommentar.png
Forenposts: 232
Clubposts: 1
seit 11.10.2008
display.png
Sony KDL-40D3500
player.png
Sony BDP-S350
anzahl.png
Blu-ray Filme:
anzahl.png
zuletzt kommentiert:
Blulife Magazin 04/2012: Die perfekte Ablenkung im Vorweihnachtsstress
anzahl.png


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.
#9
Geschrieben: 29 Apr 2010 21:47

gelöscht

Avatar gelöscht

Jetzt tut es endlich! Danke nochmal!:)
Geschrieben: 29 Apr 2010 21:55

DonaldDark

Avatar DonaldDark

user-rank
Blu-ray Starter
aktivitaet.png Aktivität:
 
Deutschland
Wiesbaden
kommentar.png
Forenposts: 232
Clubposts: 1
seit 11.10.2008
display.png
Sony KDL-40D3500
player.png
Sony BDP-S350
anzahl.png
Blu-ray Filme:
anzahl.png
zuletzt kommentiert:
Blulife Magazin 04/2012: Die perfekte Ablenkung im Vorweihnachtsstress
anzahl.png


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.


Beitrag Kommentieren

Noch 380 Zeichen

Blu-ray Forum → Heimkino, Hifi / Technik → Technik, Software, HTPC / Media Center Diskussionen → PC Systeme / Hardware

Es sind 107 Benutzer und 394 Gäste online.