Dynamische Vergleiche

flek

Grünschnabel
Guten Morgen,

ich programmiere derzeit eine (Fussball-) Tabelle mit Spielpan (Ergebnis Eintragen). Nun sitze ich vor einem Problem: Ich bräuchte für jedes Spiel 2 IF-Anweisung, zur Kontrolle wer gewonnen hat.

Jetzt frage ich mich natürlich, geht das nicht leichter? Ich hätte mir quasi eine Methode vorgestellt, mit der ich diese 2 IF-Abfragen öfters wiederholen könnte (dynamisch). In PHP kann ich Objekte in Variablen speichern, in Java nicht.

Mein Zeilen:
Code:
result_A=Integer.parseInt(txtResult_A.getText());
result_B=Integer.parseInt(txtResult_B.getText());

if(result_A > result_B){
     points_A=+3;
}else if( result_A < result_B){
     points_B=+3;
}else {
      points_A++;points_B++;
}

Hier sieht man folgendes Problem. Die Werte von "result_A" bzw. "result_B" bekomme ich aus Textfeldern. Jetzt weiss ich nicht wie ich aus dem Objekt(Textfeld) txtResult_A zum Beispiel txtResult_C in meinem Quellcode mache, damit ich nicht für jedes Spiel (Jedes Spiel hat 2 Textfelder, bei 6 Spielen pro Spieltag, sind das bei 36 Spieltagen 216 Programmcodes wie der obige ) diese kompletten Programmblock benötige.
 

zerix

Hausmeister
Moderator
Erstmal könntest du das ganze in eine Methode packen, der du die Textfelder übergibst, dann bräuchtest du nur noch die Methode aufrufen.

Poste mal bitte den restlichen Quellcode, dann kann ich dir vielleicht noch andere Vorschläge machen, die dir vielleicht noch mehr helfen.

MFG

Sascha
 

flek

Grünschnabel
Wie übergebe ich Textfelder? Ich hätte mir schon überlegt ob man es nicht mit Arrays bzw. Listen machen könnte, nur: kann ich dann Methoden wie getText();, setText(); nicht verwenden.

Auf meinen Quellcode kann ich derzeit nicht zugreifen (bin nicht zuhause), hast du aber ein Code-Schnipsel das mir deinen Lösungsweg zeigt?

Ideal wäre so etwas
Code:
public void vergleich(new Object, new Object2){

   number = Integer.parseInt(Object.getText());
   number2 = Integer.parseInt(Object2.getText());

   if(number > number2){
   // Punkte von Object erhöhen
   } else if(number < number2){
   // Punkte von Object2 erhöhen
   }else {
   // Punkte von Object und Object2 erhöhen.
   }

}

So etwas wäre Ideal, dann bräuchte ich nur meine Methode wie folgt aufrufen vergleich(textfield1,textfield2); - Dürfte aber nicht funktionieren in Java ;-)

Kennt jemand eine ähnliche Lösung ?
 

zerix

Hausmeister
Moderator
Sowas funktioniert schon.

Code:
public void vergleich(JTextField tf1, JTextField tf2){

   number = Integer.parseInt(tf1.getText());
   number2 = Integer.parseInt(tf2.getText());

   if(number > number2){
   // Punkte von Object erhöhen
   } else if(number < number2){
   // Punkte von Object2 erhöhen
   }else {
   // Punkte von Object und Object2 erhöhen.
   }

}

Ich würde dir mal vorschlagen, dass du dir die Grundlagen von Java nochmal anschaust. Wie man Methoden mit Übergabeparameter schreibt gehört mit zu den grundlegendsten Sachen von Java oder jeder anderen Sprache.
http://www.galileocomputing.de/openbook/javainsel7/

MFG

Sascha