If-Problem! Dringend

Status
Nicht offen für weitere Antworten.

OAAlex

Mitglied
Hallo,
wir machen grad in der Schule ein Projekt und ich komm grad nicht weiter. Also es handelt sich um eine Spielerverwaltung mit den Klassen StartKlasse, Hauptfenster, Spieler und DBZugriff. Wir arbeiten mit Microsoft Access (als Datenbank) und Borland JBuilder. Nun meine Frage:

Ich möchte dass wenn Nominierung = "ja", Verletzung = "nein", Sperre = 0 und Verwarnung < 2 die einsatzfähigkeit = "ja" ist sonst "nein".

Ich habe in der klasse Spieler dann folgendes programmiert:
Code:
public void getEinsatz (String nominierung, String verletzung, int sperre, int verwarnung)
{
if (nominierung = "ja") if (verletzung = nein) if (sperrre = 0) if (verwarnung < 2)
{
einsatz = "ja"
}
else
{
einsatz = "nein"

und was muss ich dann ins hauptfenster schreiben??
aktuellerSpieler.getEinsatz....?


Wäre dankbar, wenn ihr mir weiterhelfen könntet, danke?!

mfg
alex
 

Wildcard

Top Contributor
Strings vergleicht man mit equals und nicht ==
bzw. bei dir ist's nur '=' das ist noch falscher :wink:
 

Jango

Gesperrter Benutzer
Im Ernst - du kannst das auch alles mit einer if-Anweisung machen

Code:
public void getEinsatz (String nominierung, String verletzung, int sperre, int verwarnung)
{
  if (nominierung.equals("ja") && verletzung.equals("nein") && sperrre == 0 && verwarnung < 2)
    einsatz = "ja";
  else
    einsatz = "nein";
}

In dem Fall, wäre sogar der &-Operator relevant... :wink:
 

OAAlex

Mitglied
die == hab ich im programm schon so gemacht, habs nur vergessen hinzuschreiben, danke, und wie muss ich das im hauptfenster ausführen also wenn ich auf den button klick? also mit btEinsatz_Actionperformed.... das weiß ich eben net, wie ich das dann durch den button ins textfeld tfEinsatz ausgeb?[/code]
 

OAAlex

Mitglied
:shock: oje, sieht mal voll kompliziert aus :?:

geht das nicht irgendwie mit
Code:
aktuellerSpieler.getEinsatz(tfNominierung.getText(), tfVerletzung.getText(), IntegerparseInt(tfSperre.getText()), IntegerparseInt(tfVerwarnung.getText()))
?
 

Jango

Gesperrter Benutzer
In ein Textfeld schreibst du mit setText() und nicht mit getText(), oder was meinst du damit? Wenn du einen String ins Textfeld schreiben willst, dann so:

Code:
String text = "Java API ist wichtig";
textFeld1.setText(text);

Mit dem MouseListener habe ich die Steuerung deines Buttons gemeint...
 

Marco13

Top Contributor
Was hat denn ein Button mit einem MouseListener zu tun?
@OAAlex: Vielleicht könntest du die Frage etwas präzisieren. Evlt. auch mit einem Stück code...
 

OAAlex

Mitglied
hallo,
ich weiß auch gar nicht wirklich was ein mouselistener ist. Auf jedenfall haben wir es immer so gemacht, dass in der Klasse Hauptfenster die GUI erstellt wird und die Buttons "geschrieben" werden
Code:
btEinsatz_ActionPerformed...
und wenn man auf den Button klickt (wenn das programm gestartet ist) gibt es die Funktion auf die Textfelder wieder, also, dass duch klicken auf den button er dann nominierung == "ja" usw. überprüft und im textfeld einsatz entweder ja oder nein angezeigt wird. Das haben wir dann eben so
Code:
aktuellerSpieler.getEinsatz(tfNominierung.setText(), tfVerletzung.setText(), IntegerparseInt(tfSperre.setText()), IntegerparseInt(tfVerwarnung.setText()))
gemacht, aber irgendwie stimmt das nicht ganz?!
 
S

SlaterB

Gast
was redest du für einen Quatsch zusammen, sorry ;)

also getEinsatz ist ja schrecklich benannt,
wenn da keine Rückgabewert kommt, dann nenne das nicht get, sondern set oder irgenwie anders,
was soll denn inhaltlich passieren?

genau andersrum mit
tfNominierung.setText()
das setzt den Text wie schon gesagt und liefert ihn nicht tzrück, dafür ist natürlich getText geeignet,

und überhaupt, verschachtle bloß keine Kommandos,
das macht es doch nur komplizierter,
schreibe

Code:
String nominierung = ..;
String .. = ..;
String speereString = ..;
int sperre = ..;
aktuellerSpieler.tueIrgendwasMitEinsatz(nominierung, .. , sperre, ..);

ein Befehl pro Zeile!
 

OAAlex

Mitglied
sorry, habs au falsch geschrieben, war natürlich set und dann get, hab nur das programm nicht am pc und wussts nicht mehr ganz auswendig....hat sich dann aber erledigt...danke trotzdem
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben