Swing Programm hängt sich auf!

trazz

Mitglied
Hallöchen zusammen,

ich habe folgendes Problem: Wenn ich auf meinen Button (Berechnen) klicke, hängt sich das Programm auf und lässt sich nur durch den Taskmanager schließen. Hier mein betreffender Quellcode:
Java:
berechnen1.addActionListener(new ActionListener() {

                            @Override
                            public void actionPerformed(ActionEvent a) {
                                // TODO Auto-generated method stub
                                 try {
                                     int n1;
                                     Scanner scan = new Scanner(System.in);
                                     n1 = scan.nextInt();
                                   
                                     if(A2.getText() == kl5) {                                 
                                    if(n1 >= 35) {
                                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 1 erreicht!");
                                    }
                                    if(n1 >= 28 && n1 < 35) {
                                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 2 erreicht!");
                                    }
                                    if(n1 >= 21 && n1 < 28) {
                                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 3 erreicht!");
                                    }
                                }                              
                                 } catch (NumberFormatException nfe){
                                     return;
                                 }
                            }                           
                         });


Danke im Voraus!
Grüße Trazz!
 
Zuletzt bearbeitet von einem Moderator:

mrBrown

Super-Moderator
Mitarbeiter
Ich gehe mal davon aus, dass deine Anwendung rein Fensterbasiert ist, und du nicht gleichzeitig noch über eine Konsole was eingibst?

Der Scanner versucht von System.in etwas einzulesen, und blockiert solange, bis etwas eingegeben wurde. Wenn du nichts eingibst, also ewig.
 

mrBrown

Super-Moderator
Mitarbeiter
Füg deinem Fenster ein Eingabefeld hinzu, in welches man dann die Zahl eingibt und welches innerhalb der actionPerformed() ausgelesen wird
 

trazz

Mitglied
@mrBrown Hä ? Ich habe ja schon ein Eingabefeld, ich zeige dir mal einen Ausschnitt aus dem Quellcode, denn ich verstehe nicht genau was du meinst:
Java:
@Override
            public void actionPerformed(ActionEvent ae) {
               
                 if(box1.isSelected()) {
                     panel2.setLayout(null);
                     f.setVisible(false);
                        JFrame f2 = new JFrame();
                         f2.setVisible(true);
                         f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                         f2.setLocationRelativeTo(null);
                         f2.setTitle("Schrägliegehang");
                         f2.setBounds(100, 300, 500, 500);
                        
                         anzahl1 = new JLabel("Anzahl: ");
                         anzahl1.setFont(font);
                        
                         anzahl1.setBounds(140, 123, 75, 15);
                         anzahl1.setVisible(true);
                        
                        JTextField A1 = new JTextField(5);
                        A1.setBounds(210, 120, 32, 25);
                        A1.setDocument(createNumericDocumentWithMaxLength(3));
                       
                       
                        JTextField A2 = new JTextField();
                        A2.setDocument(createNumericDocumentWithMaxLength1(2));
                        A2.setBounds(210, 180, 32, 25);
                       
                        klasse1 = new JLabel("Klasse: ");
                        klasse1.setFont(font);
                       
                        klasse1.setBounds(140, 183, 75, 15);
                        klasse1.setVisible(true);
                        
                         JLabel t2 = new JLabel("Anzahl:");
                         //Ergänzen//
                        
                         JLabel t3 = new JLabel("Klasse:");
                         //Ergänzen//
                       
                        
                         berechnen1.setBounds(160, 280, 115, 35);
                         berechnen1.addActionListener(new ActionListener() {
                            
                                                                                      

                            @Override
                            public void actionPerformed(ActionEvent a) {
                                // TODO Auto-generated method stub
                                 try {
                                     int n1;
                                     Scanner scan = new Scanner(System.in);
                                     n1 = scan.nextInt();
                                    
                                     if(A2.getText() == kl5) {                                  
                                    if(n1 >= 35) {
                                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 1 erreicht!");
                                    }
                                    if(n1 >= 28 && n1 < 35) {
                                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 2 erreicht!");
                                    }
                                    if(n1 >= 21 && n1 < 28) {
                                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 3 erreicht!");
                                    }
                                }
                               
                               
                                 } catch (NumberFormatException nfe){
                                     return;
                                    
                                 }
                               
                               
                               
                            }
                            
                         });
 

mrBrown

Super-Moderator
Mitarbeiter
Aktuell versuchst du 'n1' aus System.in einzulesen, du solltest das so ändern, dass 'n1' aus einem deiner Eingabefelder kommt. Also zusätzlich zu A1 und A2 (vllt soll es auch eines der beiden sein) ein Eingabefeld, in welchem man 'n1' eingibt, und welches dann ausgelesen und geparsed wird.


Ganz abgesehen davon täte sinnvollere Benennung der Variablen und etwas mehr Strukturierung deinem Code gut ;)
 

trazz

Mitglied
@mrBrown Ok, ich habe es jetzt so versucht:
Java:
@Override
                            public void actionPerformed(ActionEvent a) {
                                // TODO Auto-generated method stub
                                 try {
                                     int n1;
                                     Scanner scan = new Scanner(A2.getText());
                                     n1 = scan.nextInt();
                                    
                                     if(A2.getText() == kl5) {                                  
                                    if(n1 >= 35) {
                                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 1 erreicht!");
                                    }
                                    if(n1 >= 28 && n1 < 35) {
                                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 2 erreicht!");
                                    }
                                    if(n1 >= 21 && n1 < 28) {
                                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 3 erreicht!");
                                    }
                                }
                               
                               
                                 } catch (NumberFormatException nfe){
                                     return;
                                    
                                 }
                               
                               
                               
                            }
                            
                         });

Das Programm hängt sich schon mal nicht mehr auf, aber bei der Button Betätigung passiert auch nichts.
Gruß ;)
 

mrBrown

Super-Moderator
Mitarbeiter
Was soll denn 'A2' enthalten?

Entweder einer Zahl zwischen 21 und 35, dann wird aber fast immer (A2.getText()== kl5) fehlschlagen, oder eben kl5, dann werden die Bedingungen danach wahrscheinlich nie true sein.

(A2.getText()== kl5) wird vermutlich sowieso immer fehlschlagen, da == nur true ist, wenn es genau die selben Objekte sind, nicht wenn der Inhalt der Strings gleich ist. Für Springvergleiche immer equals() nutzen, das vergleicht den Inhalt.
 

trazz

Mitglied
@mrBrown A2 ist das Textfeld zur Eingabe, und das mit kl5 ist noch nicht ganz fertig, das ist erst die erste Abfrage. Ich schicke dir mal den ganzen Quellcode:
Java:
public  HauptKlasse() {
        panel.setLayout(null);
      
        JFrame f = new JFrame();
        f.setIconImage(img.getImage());
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setLocationRelativeTo(null);
        f.setTitle("Notenberechnung - Sport");
        f.setBounds(100, 300, 500, 500);
  
        text1 = new JLabel("Bitte wählen Sie die Disziplin aus!");
        text1.setVisible(true);
        text1.setBounds(135, 30, 300, 50);
        text1.setFont(new Font("Calabria", Font.BOLD, 16));
         
        button.setBounds(195, 350, 100, 35);

        box1.setVisible(true);
        box1.setBounds(195, 110, 150, 35);
      
        box2.setVisible(true);
        box2.setBounds(195, 190, 150, 35);
      
        box3.setVisible(true);
        box3.setBounds(195, 270, 150, 35);
      
        button.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
              
                 if(box1.isSelected()) {
                     panel2.setLayout(null);
                     f.setVisible(false);
                        JFrame f2 = new JFrame();
                         f2.setVisible(true);
                         f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                         f2.setLocationRelativeTo(null);
                         f2.setTitle("Schrägliegehang");
                         f2.setBounds(100, 300, 500, 500);
                       
                         anzahl1 = new JLabel("Anzahl: ");
                         anzahl1.setFont(font);
                       
                         anzahl1.setBounds(140, 123, 75, 15);
                         anzahl1.setVisible(true);
                       
                        JTextField A1 = new JTextField(5);
                        A1.setBounds(210, 120, 32, 25);
                        A1.setDocument(createNumericDocumentWithMaxLength(3));
                      
                      
                        JTextField A2 = new JTextField();
                        A2.setDocument(createNumericDocumentWithMaxLength1(2));
                        A2.setBounds(210, 180, 32, 25);
                      
                        klasse1 = new JLabel("Klasse: ");
                        klasse1.setFont(font);
                      
                        klasse1.setBounds(140, 183, 75, 15);
                        klasse1.setVisible(true);
                       
                         JLabel t2 = new JLabel("Anzahl:");
                         //Ergänzen//
                       
                         JLabel t3 = new JLabel("Klasse:");
                         //Ergänzen//
                      
                       
                         berechnen1.setBounds(160, 280, 115, 35);
                         berechnen1.addActionListener(new ActionListener() {
                           
                                                                                     

                            @Override
                            public void actionPerformed(ActionEvent a) {
                                // TODO Auto-generated method stub
                                 try {
                                     int n1;
                                     Scanner scan = new Scanner(A2.getText());
                                     n1 = scan.nextInt();
                                   
                                     if(A2.getText() == kl5) {                                 
                                    if(n1 >= 35) {
                                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 1 erreicht!");
                                    }
                                    if(n1 >= 28 && n1 < 35) {
                                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 2 erreicht!");
                                    }
                                    if(n1 >= 21 && n1 < 28) {
                                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 3 erreicht!");
                                    }
                                }
                              
                              
                                 } catch (NumberFormatException nfe){
                                     return;
                                   
                                 }    
                            }                           
                         });
                       
                       
                     panel2.add(A1);
                     panel2.add(A2);
                     panel2.add(anzahl1);
                     panel2.add(klasse1);
                     panel2.add(berechnen1);
                     f2.add(panel2);                
                       
                 }else {
                     if(box2.isSelected()) {
                            f.setVisible(false);
                            JFrame f3 = new JFrame();
                             f3.setVisible(true);
                             f3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                             f3.setLocationRelativeTo(null);
                             f3.setTitle("Liegestütz");
                             f3.setBounds(100, 300, 500, 500);
                           
                             JLabel t2 = new JLabel("Anzahl:");
                             //Ergänzen//
                           
                             JLabel t3 = new JLabel("Klasse:");
                             //Ergänzen//
                     }else {
                         if(box3.isSelected()) {
                                f.setVisible(false);
                                JFrame f4 = new JFrame();
                                 f4.setVisible(true);
                                 f4.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                 f4.setLocationRelativeTo(null);
                                 f4.setTitle("Seilspringen");
                                 f4.setBounds(100, 300, 500, 500);
                               
                                 JLabel t2 = new JLabel("Anzahl:");
                                 t2.setBounds(12, 50, 100, 300);
                                 t2.setVisible(true);
                                 JLabel t3 = new JLabel("Klasse:");
                                 //Ergänzen//
                       
                         panel.add(t2);
                      
                         }
                     }
                 }
            }
        });
      
        box1.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ac) {
                // TODO Auto-generated method stub
              
                if(box1.isSelected() == true) {
                    box2.setSelected(false);
                    box3.setSelected(false);              
                }
            }
        });
        box2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ac) {
                // TODO Auto-generated method stub              
                 if(box2.isSelected() == true) {
                    box1.setSelected(false);
                    box3.setSelected(false);              
                }
            }
        });
        box3.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ac) {
                // TODO Auto-generated method stub              
                 if(box3.isSelected() == true) {
                    box1.setSelected(false);
                    box2.setSelected(false);
                }   
            }
        });
      
        panel.add(button);
        panel.add(box1);
        panel.add(box2);
        panel.add(box3);
        panel.add(text1);
        f.add(panel);      
        }
    }
 
Zuletzt bearbeitet von einem Moderator:

Harry Kane

Top Contributor
1. Wenn du schreibst "ganzer Quellcode" dan poste ihn auch. Dein Code ist nicht kompilierbar, da die umgebende Klasse fehlt. Die createNumericDocument... Methoden fehlen ebenfalls.
2. Layoutmanager verwenden.
3. Statt der JCheckBoxen box1, box2 und box3 JRadioButtons mit einer ButtonGroup verwenden.
4. mrBrowns Tips beherzigen. Strings vergleicht man nicht mit "==", sondern mit equals. In deinem letzten Post hast du immer noch den falschen vergleich drin.
5. Sinnvolles Exceptionhandling. Wenn ich die API Doc vom Scanner richtig verstehe, wirft die nextInt-Methode keine NumberFormatException, sondern eine InputMismatchException, wenn der Inhalt des Strings nicht in einen int geparst werden kann. Und selbst wenn eine NumberFormatException fliegt, bekämst du davon gar nix mit, weil du im catch-Block nur returnst. Zumindest den stack trace der Exception solltest du im catch-Block ausgeben.
 

trazz

Mitglied
@Harry Kane
Java:
public class HauptKlasse extends JFrame  {
    Font font = new Font("Verdana", Font.BOLD, 15);
  
    static String kl5 = "5";
    static String kl6 = "6";
    static String kl7 = "7";
    static String kl8 = "8";
    static String kl9 = "9";
    static String kl10 = "10";
    static String kl11 = "11";
    static String kl12 = "12";
   
    static JLabel text1;
    static JLabel anzahl1;
    static JLabel klasse1;
  
    JPanel panel2 = new JPanel();
  
    ImageIcon img = new ImageIcon("[I](Aus privat. Gründen entfernt)[/I]");

    JPanel panel = new JPanel();
    JButton button = new JButton("Bestätigen");
    JCheckBox box1 = new JCheckBox("Schrägliegehang");
    JCheckBox box2 = new JCheckBox("Liegestütz");
    JCheckBox box3 = new JCheckBox("Seilspringen");
    JButton berechnen1 = new JButton("Berechnen");
    JButton berechnen2 = new JButton("Berechnen");
    JButton berechnen3 = new JButton("Berechnen");
       
    public static void main(String[] args) {      
        HauptKlasse hk = new HauptKlasse();
        MySQLConnection conn = new MySQLConnection();   
        JOptionPane.showMessageDialog(null, "Aus privat. Gründen entfernt");
    }

private Document createNumericDocumentWithMaxLength(final int maxLength) {
            Document doc = new PlainDocument(){
                @Override
                public void insertString(int offs, String str, AttributeSet a)
                    throws BadLocationException {
                    if(getLength() + str.length() > maxLength)
                        return;
                    if(!str.matches("^[\\d]*$"))
                        return;                  
                  
                    super.insertString(offs, str, a);                      
                }
            };
            return doc;          
        }

private Document createNumericDocumentWithMaxLength1(final int maxLength) {
    Document doc = new PlainDocument(){
        @Override
        public void insertString(int offs, String str, AttributeSet a)
            throws BadLocationException {
            if(getLength() + str.length() > maxLength)
                return;
            if(!str.matches("^[\\d]*$"))
            if(!str.matches("[5-12]+"))  
                return;          
          
            super.insertString(offs, str, a);              
        }
    };
    return doc;  
}

    public  HauptKlasse() {
        panel.setLayout(null);
      
        JFrame f = new JFrame();
        f.setIconImage(img.getImage());
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setLocationRelativeTo(null);
        f.setTitle("Notenberechnung - Sport");
        f.setBounds(100, 300, 500, 500);
  
        text1 = new JLabel("Bitte wählen Sie die Disziplin aus!");
        text1.setVisible(true);
        text1.setBounds(135, 30, 300, 50);
        text1.setFont(new Font("Calabria", Font.BOLD, 16));
       
        button.setBounds(195, 350, 100, 35);

        box1.setVisible(true);
        box1.setBounds(195, 110, 150, 35);
      
        box2.setVisible(true);
        box2.setBounds(195, 190, 150, 35);
      
        box3.setVisible(true);
        box3.setBounds(195, 270, 150, 35);
      
        button.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
              
                 if(box1.isSelected()) {
                     panel2.setLayout(null);
                     f.setVisible(false);
                        JFrame f2 = new JFrame();
                         f2.setVisible(true);
                         f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                         f2.setLocationRelativeTo(null);
                         f2.setTitle("Schrägliegehang");
                         f2.setBounds(100, 300, 500, 500);
                       
                         anzahl1 = new JLabel("Anzahl: ");
                         anzahl1.setFont(font);
                       
                         anzahl1.setBounds(140, 123, 75, 15);
                         anzahl1.setVisible(true);
                       
                        JTextField A1 = new JTextField(5);
                        A1.setBounds(210, 120, 32, 25);
                        A1.setDocument(createNumericDocumentWithMaxLength(3));
                      
                      
                        JTextField A2 = new JTextField();
                        A2.setDocument(createNumericDocumentWithMaxLength1(2));
                        A2.setBounds(210, 180, 32, 25);
                      
                        klasse1 = new JLabel("Klasse: ");
                        klasse1.setFont(font);
                      
                        klasse1.setBounds(140, 183, 75, 15);
                        klasse1.setVisible(true);
                       
                         JLabel t2 = new JLabel("Anzahl:");
                         //Ergänzen//
                       
                         JLabel t3 = new JLabel("Klasse:");
                         //Ergänzen//
                      
                       
                         berechnen1.setBounds(160, 280, 115, 35);
                         berechnen1.addActionListener(new ActionListener() {
                           
                                                                                     

                            @Override
                            public void actionPerformed(ActionEvent a) {
                                // TODO Auto-generated method stub
                                 try {
                                     int n1;
                                     Scanner scan = new Scanner(A2.getText());
                                     n1 = scan.nextInt();
                                   
                                     if(A2.getText() == kl5) {                                 
                                    if(n1 >= 35) {
                                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 1 erreicht!");
                                    }
                                    if(n1 >= 28 && n1 < 35) {
                                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 2 erreicht!");
                                    }
                                    if(n1 >= 21 && n1 < 28) {
                                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 3 erreicht!");
                                    }
                                }
                                 } catch (NumberFormatException nfe){
                                     return;                                   
                                 }
                            }                           
                         });                       
                       
                     panel2.add(A1);
                     panel2.add(A2);
                     panel2.add(anzahl1);
                     panel2.add(klasse1);
                     panel2.add(berechnen1);
                     f2.add(panel2);                 
                       
                 }else {
                     if(box2.isSelected()) {
                            f.setVisible(false);
                            JFrame f3 = new JFrame();
                             f3.setVisible(true);
                             f3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                             f3.setLocationRelativeTo(null);
                             f3.setTitle("Liegestütz");
                             f3.setBounds(100, 300, 500, 500);
                           
                             JLabel t2 = new JLabel("Anzahl:");
                             //Ergänzen//
                           
                             JLabel t3 = new JLabel("Klasse:");
                             //Ergänzen//
                     }else {
                         if(box3.isSelected()) {
                                f.setVisible(false);
                                JFrame f4 = new JFrame();
                                 f4.setVisible(true);
                                 f4.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                 f4.setLocationRelativeTo(null);
                                 f4.setTitle("Seilspringen");
                                 f4.setBounds(100, 300, 500, 500);
                               
                                 JLabel t2 = new JLabel("Anzahl:");
                                 t2.setBounds(12, 50, 100, 300);
                                 t2.setVisible(true);
                                 JLabel t3 = new JLabel("Klasse:");
                                 //Ergänzen//
                       
                         panel.add(t2);                      
                         }                       
                     }
                 }
            }
        });
      
        box1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ac) {
                // TODO Auto-generated method stub              
                if(box1.isSelected() == true) {
                    box2.setSelected(false);
                    box3.setSelected(false);              
                }
            }
        });
        box2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ac) {
                // TODO Auto-generated method stub              
                 if(box2.isSelected() == true) {
                    box1.setSelected(false);
                    box3.setSelected(false);              
                }
            } 
        });
        box3.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ac) {
                // TODO Auto-generated method stub              
                 if(box3.isSelected() == true) {
                    box1.setSelected(false);
                    box2.setSelected(false);
                }
            }
        });
      
        panel.add(button);
        panel.add(box1);
        panel.add(box2);
        panel.add(box3);
        panel.add(text1);
        f.add(panel);      
        }  
    }
 
Zuletzt bearbeitet von einem Moderator:

Harry Kane

Top Contributor
Willst du nur dass der Code läuft, dann reicht Nr. 4 aus meinem obigen Post.
Wenn du Verbesserungswünsche willst, dann solltest du dir den Rest auch zu Herzen nehmen und
6. Verstehen, was "static" ist, und es nur verwenden wenn nötig, d. h. nicht im vorliegenden Fall.
7. Unnötige Leerzeilen löschen.
 

Joose

Top Contributor
"funzt immer noch net" ist keine Fehlerbeschreibung, bitte beschreibe doch den aktuellen Fehler genauer.
Fliegt eine Exception oder wird nur das if nicht betreten?
 

VfL_Freak

Top Contributor
Moin,

warum deklarierst Du den Actionlistener für berechnen1 im ActionListener von button ... also nur dann, wenn der Button gedrückt wurde ??
Klingt ein wenig obskur .... o_O

Gruß Klaus
 

trazz

Mitglied
@Joose Also es hängt sich nicht mehr auf, also das Programm. Allerdings passiert nicht, wenn ich den Button drücke.

@VfL_Freak Ich weiß nicht genau was du meinst, sorry, bin noch Einsteiger.

p.s.: Aber am Samstag gibt's für uns einen Heimsieg ;)

Grüße
 

VfL_Freak

Top Contributor
p.s.: Aber am Samstag gibt's für uns einen Heimsieg
nun mal nicht den Teufel an die Wand :D

Was ich meinte, war, dass Du keinen Actionlistener innerhalb eines anderen Actionlistener zuweisen solltest!
So wie Du es gepostet hast, geschieht das "berechnen1.addActionListener(new ActionListener() {..." nur im actionPerformed des Actionlisteners von button, also nur dann, wenn dieser Button angeklickt wird! Andernfalls kennt berechnen1 den Listener nicht!
Du musst ihn separat deklarieren, also paralell hierzu "button.addActionListener(new ActionListener() {..."

Gruß Klaus
 

VfL_Freak

Top Contributor
genauso, wie beispielsweise die Actionlistener zu box1 oder box2 !!
Du macht IMHO eh' viel zuviel 'Oberfläche' im ActionListener!
Vielleicht solltest Du Dir erstmal an paar Grundlagen zur GUI-Programmierung anschauen - sorry :(

Gruß Klaus
 

trazz

Mitglied
Java:
    public void berechnen1click() {
        berechnen1.addActionListener(new ActionListener() {   
            @Override
            public void actionPerformed(ActionEvent a) {
                // TODO Auto-generated method stub
                try {
                    int n1;
                    Scanner scan = new Scanner(A2.getText());
                    n1 = scan.nextInt();
                    
                    if(A2.getText().equals(kl5)) {                                 
                    if(n1 >= 35) {
                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 1 erreicht!");
                    }
                    if(n1 >= 28 && n1 < 35) {
                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 2 erreicht!");
                    }
                    if(n1 >= 21 && n1 < 28) {
                        JOptionPane.showMessageDialog(null, "Sie hätten die Note 3 erreicht!");
                    }
                }
                } catch (InputMismatchException ime){
                    return;
                }
            }
        });
    }

So habe ich es jetzt probiert, klappt immer noch nicht. :/
 

Harry Kane

Top Contributor
Also ich bin raus.
In dem geposteten Code fängst du jetzt zwar die Exception, aber ohne wirkliche Behandlung.
Und berechnen1click sieht für mich so aus wie eine Methode, die letzten Endes auch aus einem ActionListener aufgerufen wird. Damit ist der Hinweis, ActionListener nicht in der actionPerformed eines anderen ActionListeners zu registrieren, nicht umgesetzt.
Und du hast wieder mal keine vollständigen Code gepostet, sondern nur eine Methode, von der unklar, wozu sie gehört, und wo und ob überhaupt sie aufgerufen wird.
 

dzim

Top Contributor
Hat der TO vielleicht nur nicht begriffen, dass der ActionListener ein Callback ist und nicht sofort ausgeführt wird, wenn man ihn an eine Komonente bindet? Für mich sieht das letzte Snippet so aus...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Swing Programm hängt sich bei Buttondruck auf? (GUI für "Chatbot" erstellen) AWT, Swing, JavaFX & SWT 15
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3
J Programm hängt sich bei Log In auf AWT, Swing, JavaFX & SWT 1
S JScrollPane --> Programm hängt sich beim scrollen auf AWT, Swing, JavaFX & SWT 2
M Programm hängt sich auf nachdem repaint() benutzt wurde AWT, Swing, JavaFX & SWT 2
R GUI hängt während Programm läuft AWT, Swing, JavaFX & SWT 7
T Java Runtime.exec per JButton auslösen -> Programm hängt AWT, Swing, JavaFX & SWT 10
Juelin starten maven javafx programm ohne netbeans AWT, Swing, JavaFX & SWT 38
P AWT Programm funktioniert nicht richtig AWT, Swing, JavaFX & SWT 35
G CAD Programm AWT, Swing, JavaFX & SWT 4
thor_norsk E - Mail Programm AWT, Swing, JavaFX & SWT 2
_user_q Über installDist exportiertes Programm wirft "Unsupported JavaFX configuration" AWT, Swing, JavaFX & SWT 0
CodingBerlin JavaFX Programm läuft nur unter Eclipse AWT, Swing, JavaFX & SWT 1
J Programm findet Resource nicht. AWT, Swing, JavaFX & SWT 6
N Programm Läuft nicht auf anderen Pcs AWT, Swing, JavaFX & SWT 9
imawake Java Paket-Tracking Programm 📦 AWT, Swing, JavaFX & SWT 7
S Lustiges programm schnell coden? AWT, Swing, JavaFX & SWT 2
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
M DragAndDrop - aus Browser ins Programm AWT, Swing, JavaFX & SWT 6
T Java GUI - Würfel Programm AWT, Swing, JavaFX & SWT 6
JojoSand Java Programm wird nicht gestartet - keinen Fehlerhinweis AWT, Swing, JavaFX & SWT 9
SvenPittelkow Programm soll auf JButton warten bis der geklickt wurde AWT, Swing, JavaFX & SWT 1
I Gui in bestehendes Java-Programm AWT, Swing, JavaFX & SWT 11
L JavaFX IntelliJ Standalone Programm exportieren AWT, Swing, JavaFX & SWT 9
Bluedaishi JavaFX Programm start mit zwei scenen bzw Fenster AWT, Swing, JavaFX & SWT 1
M AWT Programm in den Tray minimieren AWT, Swing, JavaFX & SWT 2
steven789hjk543 Swing Weiß jemand, warum dieses Programm nicht funktioniert? AWT, Swing, JavaFX & SWT 7
A Java Programm gestalten AWT, Swing, JavaFX & SWT 4
P Swing Warum startet das Programm nicht? AWT, Swing, JavaFX & SWT 3
J JavaFX Kamera im Programm öffnen AWT, Swing, JavaFX & SWT 6
H Hintergrundbild in einem Programm AWT, Swing, JavaFX & SWT 4
MR._FIRE_Flower progressBar in ein bestehendes Programm einbauen AWT, Swing, JavaFX & SWT 3
J Verbesserungsvorschläge?! Kleines AWT Programm AWT, Swing, JavaFX & SWT 4
A Programm nun in ein Frame basteln AWT, Swing, JavaFX & SWT 1
A Swing Programm funktioniert aber zwei Buttons werden angezeigt AWT, Swing, JavaFX & SWT 3
G Zeichnen Programm AWT, Swing, JavaFX & SWT 1
R Swing Programm läuft nur beim Debuggen korrekt ab AWT, Swing, JavaFX & SWT 4
Arif Swing Programm friert ein... AWT, Swing, JavaFX & SWT 2
apple_pie1998 Programm gibt plötzlich exceptions aus. AWT, Swing, JavaFX & SWT 4
N Swing Wie Programm strukturieren? (Dynamisch Komponenten hinzufügen) AWT, Swing, JavaFX & SWT 1
N JLabel ändern während Programm ausgeführt wird AWT, Swing, JavaFX & SWT 4
X JMenu Menu-Bar ausrichtung ändern im Programm AWT, Swing, JavaFX & SWT 0
L Probleme mit Programm AWT, Swing, JavaFX & SWT 13
S Grafik: Programm kommt nicht zur paint()-Methode AWT, Swing, JavaFX & SWT 6
P Programm durch Dateiaufruf starten und Datei öffnen AWT, Swing, JavaFX & SWT 2
S Action durchführen beim Programm beenden AWT, Swing, JavaFX & SWT 3
N Programm mit Swing und Thread, Figur bewegen sich nicht AWT, Swing, JavaFX & SWT 6
G Programm GUI erstellen AWT, Swing, JavaFX & SWT 5
T Programm im METRO Design? AWT, Swing, JavaFX & SWT 1
C Programm mit Passwort schließen AWT, Swing, JavaFX & SWT 5
D Robot Programm mit Escape abbrechen (aus Eclipse heraus) AWT, Swing, JavaFX & SWT 2
N Programm läuft perfekt in Eclipse aber nicht in .JAR AWT, Swing, JavaFX & SWT 3
J Programm im GUI ausführen AWT, Swing, JavaFX & SWT 4
A Probleme mit 2 JFrames in einem Programm AWT, Swing, JavaFX & SWT 7
S Event Handling konsole Programm mit Tastendruck beenden AWT, Swing, JavaFX & SWT 5
G JTextArea on the fly aus anderem Programm befüllen AWT, Swing, JavaFX & SWT 4
K Swing Konsolen Programm in GUI - Suche Hilfe bei Konsolenausgabe AWT, Swing, JavaFX & SWT 2
W Windows Fenster in einem Programm AWT, Swing, JavaFX & SWT 2
F Mal Programm AWT, Swing, JavaFX & SWT 13
C In Hauptfenster Programm-Klassen implementieren AWT, Swing, JavaFX & SWT 9
A KeyListener Button wechseln & Programm beenden AWT, Swing, JavaFX & SWT 4
C Swing Wie kann ich im Programm das Menü schließen AWT, Swing, JavaFX & SWT 2
J SWING - Programm ohne Eclipse etc. starten AWT, Swing, JavaFX & SWT 7
J Button soll nach Klick Text ändern und Programm in 3 Sekunden beenden AWT, Swing, JavaFX & SWT 6
M Programm in Jframe "einbinden" AWT, Swing, JavaFX & SWT 7
S Programm auf aktuellen Stand bringen AWT, Swing, JavaFX & SWT 2
Spin Tool: Popup -Programm AWT, Swing, JavaFX & SWT 3
GUI-Programmer Swing JWindow - Programm wird ohne Grund beendet AWT, Swing, JavaFX & SWT 3
E Kreis-Mal-Programm AWT, Swing, JavaFX & SWT 7
P Programm aktuallisiert sich nur beim Rüberzeigen AWT, Swing, JavaFX & SWT 6
T Java-Anwendung arbeitet Programm in seltsamer Reihenfolge ab AWT, Swing, JavaFX & SWT 3
C Programm für 5 sekunden anhalten und actionevent abfangen AWT, Swing, JavaFX & SWT 18
J Programm schließen AWT, Swing, JavaFX & SWT 4
J Programm nur einmal öffnen AWT, Swing, JavaFX & SWT 3
E Windows Kontext Menü - Laufendes Programm AWT, Swing, JavaFX & SWT 3
T Programm vom Desktop starten! AWT, Swing, JavaFX & SWT 2
S Programm pausieren während JDialog offen ist AWT, Swing, JavaFX & SWT 2
M Browser in Programm einbinden AWT, Swing, JavaFX & SWT 4
R Durch Listener lässt sich Programm nicht mehr ausführen AWT, Swing, JavaFX & SWT 4
H Userinput in GUI an externes Programm AWT, Swing, JavaFX & SWT 8
D Firefox aus Programm starten AWT, Swing, JavaFX & SWT 4
S LayoutManager Einfaches Programm mit VE und Eclipse3.6 realisieren AWT, Swing, JavaFX & SWT 2
J SWT 32 bit Programm für 64 bit Jave AWT, Swing, JavaFX & SWT 10
S AWT Fenster schließen und Programm beenden AWT, Swing, JavaFX & SWT 10
H Infofenster vor dem eigentlichen Java Programm AWT, Swing, JavaFX & SWT 3
B Uberschrift in Swing-Programm zur Laufzeit aendern... AWT, Swing, JavaFX & SWT 4
C Swing Kleines Programm mit SWING unter Verwendung von MVC AWT, Swing, JavaFX & SWT 5
capgeti Wie Programm in JPanel (o.ä.) starten? AWT, Swing, JavaFX & SWT 3
B Externes Programm mit Robot Steuern AWT, Swing, JavaFX & SWT 3
G Programm läuft nur auf manchen Rechnern AWT, Swing, JavaFX & SWT 10
M SWT Programm pausiert ungewollt AWT, Swing, JavaFX & SWT 5
K Website in Java Programm einbinden AWT, Swing, JavaFX & SWT 3
B komplettes programm in einem fenster AWT, Swing, JavaFX & SWT 5
L Frage bei Programm mit Zufallskreisen AWT, Swing, JavaFX & SWT 9
L Programm terminated (zu frueh) AWT, Swing, JavaFX & SWT 3
T SplashScreen im laufenden Programm AWT, Swing, JavaFX & SWT 2
M Panelinhalt im Programm verändern AWT, Swing, JavaFX & SWT 12
R Programm nicht mehr in der Taskleiste AWT, Swing, JavaFX & SWT 2
3TageBart Ebenen in Zeichen-Programm implementieren AWT, Swing, JavaFX & SWT 9
H Swing HUD in externes Programm einblenden AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben