# If-Problem! Dringend



## OAAlex (12. Jan 2007)

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:

```
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 (12. Jan 2007)

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


----------



## Jango (12. Jan 2007)

...und hinter einsatz="ja" und "einsatz ="nein" fehlen die Semikolon  :wink:


----------



## Wildcard (12. Jan 2007)

Und das else wird nur ausgeführt wenn die ersten 3 ifs true sind und das letzte false  :lol:


----------



## Jango (12. Jan 2007)

... ergo: du must noch ein paar else zufügen


----------



## Wildcard (12. Jan 2007)

lol


----------



## Jango (12. Jan 2007)

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


```
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 (12. Jan 2007)

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]


----------



## Jango (12. Jan 2007)

...mit einem MouseListener


----------



## OAAlex (12. Jan 2007)

mouselistener??? wie geht denn das??


----------



## Jango (12. Jan 2007)

http://java.sun.com/j2se/1.5.0/docs/api/


----------



## OAAlex (12. Jan 2007)

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

geht das nicht irgendwie mit 
	
	
	
	





```
aktuellerSpieler.getEinsatz(tfNominierung.getText(), tfVerletzung.getText(), IntegerparseInt(tfSperre.getText()), IntegerparseInt(tfVerwarnung.getText()))
```
?


----------



## Jango (12. Jan 2007)

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:


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

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


----------



## Marco13 (13. Jan 2007)

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 (13. Jan 2007)

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 
	
	
	
	





```
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 
	
	
	
	





```
aktuellerSpieler.getEinsatz(tfNominierung.setText(), tfVerletzung.setText(), IntegerparseInt(tfSperre.setText()), IntegerparseInt(tfVerwarnung.setText()))
```
 gemacht, aber irgendwie stimmt das nicht ganz?!


----------



## SlaterB (13. Jan 2007)

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


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

ein Befehl pro Zeile!


----------



## OAAlex (14. Jan 2007)

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


----------

