if-bedinung in actionperformed

guzz1887

Neues Mitglied
Hallo zusammen,

leider bin ich langsam mit meinem Latein am Ende und bräuchte dringend ein paar Tipps. Ich bekomme es einfach nicht hin die drei Werte aus den JTextField auszulesen und per if-bedinung zu überprüfen, ob der Gesamtwert über 20 liegt und wenn nicht diesen per Schleife auf 20 herauf zählen zu lassen. Ich bin für jeden Ansatz dankbar!

lg

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;


public class zahlenEinlesenPRE2 extends JFrame implements ActionListener {
  JLabel firstLabel   = new JLabel("Erste Zahl:           "); 
  JLabel secondLabel  = new JLabel("Zweite Zahl:          ");
  JLabel thirdLabel   = new JLabel("Dritte Zahl:          ");
  //JLabel fourthLabel  = new JLabel("Vierte Zahl:          ");
  JLabel ausgabeLabel = new JLabel("Ausgabe:              ");
  

  JTextField inErsteZahl    = new JTextField( 5 ); 
  JTextField inZweiteZahl   = new JTextField( 5 );
  JTextField inDritteZahl   = new JTextField( 5 );
  //JTextField inVierteZahl   = new JTextField( 5 );
  JTextField ausgabeZahl    = new JTextField( 5 );
  JButton enter = new JButton("Summe");  
  int ersteZahl;
  int zweiteZahl; // Beschreiben!!!
  int dritteZahl;
  
 // int vierteZahl;

  public zahlenEinlesenPRE2()
  {
    setTitle( "Zahlen" );
    getContentPane().setLayout( new FlowLayout() );
    getContentPane().add( firstLabel );
    getContentPane().add( inErsteZahl );
    getContentPane().add( secondLabel );
    getContentPane().add( inZweiteZahl );     
    getContentPane().add( thirdLabel );
    getContentPane().add( inDritteZahl );
    //getContentPane().add( fourthLabel );
    //getContentPane().add( inVierteZahl );
    getContentPane().add( ausgabeLabel );
    getContentPane().add( ausgabeZahl );
    ausgabeZahl.setEditable( false );
    getContentPane().add( enter );
    enter.addActionListener( this );
  }
 // Ab hier liegt der Hund begraben! 
  public void actionPerformed( ActionEvent evt)
  {
    String userIn ;
    userIn       = inErsteZahl.getText()  ;
    ersteZahl    = Integer.parseInt(userIn) ;
    userIn       = inZweiteZahl.getText()  ;    
    zweiteZahl   = Integer.parseInt(userIn) ;
    userIn       = inDritteZahl.getText()  ;
    dritteZahl   = Integer.parseInt(userIn) ;
    //userIn       = inVierteZahl.getText()  ;
    //vierteZahl   = Integer.parseInt(userIn) ;
       
    ausgabeZahl.setText(Integer.toString(ersteZahl + zweiteZahl + dritteZahl));
    
    if(Integer.toString(ersteZahl + zweiteZahl + dritteZahl) < 20){
        System.out.println();
   
    enter.setText("Erfolgreich!"); 
   
    //System.out.println(Integer.toString(ersteZahl + zweiteZahl + dritteZahl));
    }
    repaint();
  }
  public static void main ( String[] args )
  {
    zahlenEinlesenPRE2 fatApp  = new zahlenEinlesenPRE2() ;
    WindowQuitter wquit = new WindowQuitter();
    fatApp.addWindowListener( wquit );
    fatApp.setSize( 200, 200 );
    fatApp.setVisible( true );
  }
}
class  WindowQuitter  extends WindowAdapter
{
  public void windowClosing( WindowEvent e )
  {
    System.exit( 0 );
  }
}
 
Java:
 int zweiteZahl; // Beschreiben!!!
Nein. Lieber so lokal wie möglich deklarieren (genau wie die Strings). Also nur in der Methode, in der sie gebraucht werden.

Beschreib' 🙂D) lieber mal genauer, was nicht funktioniert.
 
Java:
if ((ersteZahl + zweiteZahl + dritteZahl) < 20) {...

du hast doch aus den Strings schon ints gemacht....
 
Also die ints (ersteZahl, zweiteZahl, ...) habe ich bereits deklariert, damit ich überhaupt 3 Zahlen eingeben und zusammenrechnen lassen kann. Mein Problem ist nun (ganz einfach;-)), dass ich es nicht hinbekomme per if-abfrage die 3 eingegeben Werte zu überprüfen, ob es mind. einen Gesamtwert von 20 ergibt und wenn nicht bspw. einen Fehler ausgibt wie "Äh, sind keine 20 - bitte nochmal versuchen!".

Java:
    ausgabeZahl.setText(Integer.toString(ersteZahl + zweiteZahl + dritteZahl));

Deswegen habe ich die "ausgabeZahl" deklariert, um dann einfach per if das Ergebnis zu prüfen und dann ggf. einen Fehler bzw. Hinweis anzeigen zu lassen.
 
Hast du das "else" vergessen?
Java:
int ergebnis = ersteZahl + zweiteZahl + dritteZahl;

if(ergebnis < 20){
        System.out.println("Erfolgreich");
   
    enter.setText("Erfolgreich!"); 
   
    System.out.println(Integer.toString(ersteZahl + zweiteZahl + dritteZahl));
    }
else
{
System.out.println("Zahlen zu groß");
enter.setText("Nicht Erfolgreich");
}
 

Zurück
Oben