Syntax-Probleme eines Anfängers

Hellie

Erfahrenes Mitglied
Hallo!

Wir werden jetzt in der Schule gezwungen, nach Delphi auch Java zu lernen. :(

Jetzt sind wir grad beim ersten Applet (Zahlenraten, also PC denkt sich Zahl, benutzer rät und PC gibt Tipp "Kleiner!" oder "Größer!"). Vom Prinzip her ja kein Problem, wenn da nicht diese verworrene Syntax wäre...


Konkret Probleme habe ich in bei
Code:
zahl= round(random()*100) + 1;

Eingebunden ist java.lang.Math auf jeden Fall und Zahl ist als Integer deklariert.
Und
Code:
  if (zahl > eingabe.getText)
			{l2.setText("Die Zahl ist zu klein.");}
macht mir auch Probleme. Eingabe ist ein Textfield.

Es wäre schön, wenn mir jemand helfen könnte, ich verzweifel grad an diesem "Cannot find symbol". Ich glaub, Java liegt mir nicht...

lg Hellie
 
Code:
  if (zahl > Integer.parseInt(eingabe.getText)){
       l2.setText("Die Zahl ist zu klein.");
  }
evt geht das da du ja atm ein String mit einem Int vergleichst.
Achja welches Symbol kann er den nicht finden?!
 
Vielen Dank für die Antwort!

NomadSoul hat gesagt.:
Achja welches Symbol kann er den nicht finden?!

So ziemlich alles:
Die Methoden
random()
round(int)

und die Variable
getText.

Außerdem kommt bei dem oberen geposteten (der Random-Zeile) der Fehler "operator + cannot be applied to round,int" *grml*.
Und weil er "getText" nicht kennt, funktioniert auch die Umwandlung nicht.

btw: Ich hatte in Erinnerung, dass unser Lehrer meinte, Typenumwandlungen seien nicht notwendig. Kann das sein? (zweifel dann aber eher an mir als an meinem Lehrer ^^)

Danke schon mal für die Antwort!
lg Hellie
 
Hallo!

Für das "operator + can't be applied to"... gäbe es meiner Meinung nach 2 Lösungen:

1. Lösung
zahl = ( (int) round(random()*100) ) + 1;

2. Lösung
zahl = round(random()*100); [nach dem = musst du unter Umständen noch ein (int) einfügen]
zahl = zahl + 1;

Und was das Problem mit dem java.lang.Math-package betrifft - schreib mal vor jedem Befehl, welcher in diesem package inkludiert ist, einfach den gesamten Pfad hin, also zB java.lang.math.round(...)

lg D;-]c
 
Vielen Dank für die Hilfe!

Das Applet geht jetzt, auch wenn ich mit Netbeans noch nicht wirklich klarkomme, die HTML-Seite, wo das Applet dann eingebunden ist, funktioniert unter IE ganz gut (muss ich den halt nehmen).

Für mich wäre jetzt noch ganz toll zu wissen, warum es die Funktionen nicht erkannt hat ohne weiteres?! Das war doch sicher ein Fehler von mir, oder?

lg Hellie
 
Warum es die Methoden (auf keinen Fall als "Funktionen" bezeichnen, damit zieht man den Ärger jedes JavaFreaks auf sich :)) nicht findet, kann mehrere Ursachen haben, der Fehler liegt möglicherweise nicht an dir.

Welche Entwicklungsumgebung verwendest du?!
Welche SDK verwendest du?!
Wie bindest du packages ein?!

lg D;-]c
 
Hellie hat gesagt.:
Vielen Dank für die Hilfe!
Für mich wäre jetzt noch ganz toll zu wissen, warum es die Funktionen nicht erkannt hat ohne weiteres?! Das war doch sicher ein Fehler von mir, oder?

lg Hellie

Ja. Die Methoden round() und random() sind statisch, d.h. die Aufrufe müssen Math.round(..) und Math.random() lauten.
Und getText ist keine Variable, sondern eine Methode, also getText() wenn schon. Und sie liefert einen String zurück, welcher nicht direkt mit einem int vergleichbar/addierbar/... ist.
 
Vielen Dank für die Antworten! Ich durchblick jetzt meine Fehler besser, bin halt von Delphi anderes gewohnt. Da hat man Probleme mit Methoden, hinter denen die () fehlen und case-sensitive zum Glück nicht. Es funktioniert jetzt alles, zum Schluss lag es an einer rauskommentierten Zeile.

Na ja, und wie ich meinen Lehrer verstanden habe, war's das erstmal auch schon wieder mit Java, zumindest für mich.

Noch mal DANKE an alle, die geantwortet haben!

lg Hellie
 
Zurück