Nullpointerexception und es wird nichts angezeigt

trazz

Mitglied
Moin zusammen,

erstmal möchte ich mich im Vorhinein schonmal für meinen schlechten Quellcode entschuldigen, nun aber zu meinem Problem: in der b1click() - Methode bekomme ich, egal was ich eingebe, nur NullPointerException. Kann mir wer helfen ?

2. Problem beim "Standweitsprung" wird im JFrame nichts außer der Titel angezeigt.

Quellcode:
Java:
package de.[PRIVAT].main;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.InputMismatchException;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.PlainDocument;

@SuppressWarnings("serial")
public class Punkterechner extends JFrame  {
   
    Font font = new Font("Verdana", Font.BOLD, 15);
   
    ArrayList<String> liste1 = new ArrayList<String>();
   
    static JLabel text1;
    static JLabel anzahl1;
    static JLabel klasse1;
  
    static JLabel text2;
    static JLabel anzahl2;
    static JLabel klasse2;
  
    JPanel panel2 = new JPanel();
    JPanel panel3 = new JPanel();
  
    ImageIcon img = new ImageIcon("GCG.jpg");

    JPanel panel = new JPanel();
    static JTextField A0;
    static JTextField A2;
    static JTextField A3;
    static JTextField A4;
    JCheckBox box1 = new JCheckBox("Klimmzüge");
    JCheckBox box2 = new JCheckBox("Standweitsprung");
    JCheckBox box3 = new JCheckBox("Beugestütz");
    JButton button = new JButton("Auswählen");
    static JButton berechnen1 = new JButton("Berechnen");
    JButton berechnen2 = new JButton("Berechnen");
    JButton berechnen3 = new JButton("Berechnen");
       
    public static void main(String[] args) {
      
        Punkterechner pr = new Punkterechner();      
        pr.b1click();
        pr.Punkterechner();
        JOptionPane.showMessageDialog(null, "[PRIVAT]");      
    }  

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  void Punkterechner() {      
        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("Punkterechner");
        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 f5 = new JFrame();
                         f5.setVisible(true);
                         f5.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                         f5.setLocationRelativeTo(null);
                         f5.setTitle("Klimmzug");
                         f5.setBounds(100, 300, 500, 500);
                       
                         anzahl1 = new JLabel("Anzahl: ");
                         anzahl1.setFont(font);
                       
                         anzahl1.setBounds(140, 123, 75, 15);
                         anzahl1.setVisible(true);
                       
                             JTextField A0 = new JTextField(5);
                             A0.setBounds(210, 120, 32, 25);
                             A0.setDocument(createNumericDocumentWithMaxLength(3));
                                             
                            JTextField A2 = new JTextField();
                            A2.setDocument(createNumericDocumentWithMaxLength1(2));
                            A2.setBounds(210, 180, 32, 25);
                      
                        klasse1 = new JLabel("Alter: ");
                        klasse1.setFont(font);
                      
                        klasse1.setBounds(140, 183, 75, 15);
                        klasse1.setVisible(true);
                       
                             JLabel t2 = new JLabel("Anzahl:");
                             //Erg�nzen//
                       
                             JLabel t3 = new JLabel("Alter:");
                             //Erg�nzen//
                                              
                         berechnen1.setBounds(160, 280, 115, 35);
                        
                     panel2.add(A0);
                     panel2.add(A2);
                     panel2.add(anzahl1);
                     panel2.add(klasse1);
                     panel2.add(berechnen1);
                     f5.add(panel2);
                 }else {
                     if(box2.isSelected()) {
                         panel3.setLayout(null);
                         f.setVisible(false);
                            JFrame f2 = new JFrame();
                             f2.setVisible(true);
                             f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                             f2.setLocationRelativeTo(null);
                             f2.setTitle("Standweitsprung");
                             f2.setBounds(100, 300, 500, 500);
                           
                             anzahl2 = new JLabel("Anzahl: ");
                             anzahl2.setFont(font);
                           
                             anzahl2.setBounds(140, 123, 75, 15);
                             anzahl2.setVisible(true);
                           
                                 JTextField A3 = new JTextField(5);
                                 A3.setBounds(210, 120, 32, 25);
                                 A3.setDocument(createNumericDocumentWithMaxLength(3));
                           
                                 JTextField A4 = new JTextField();
                                 A4.setDocument(createNumericDocumentWithMaxLength1(2));
                                 A4.setBounds(210, 180, 32, 25);
                          
                             klasse2 = new JLabel("Alter: ");
                             klasse2.setFont(font);
                          
                             klasse2.setBounds(140, 183, 75, 15);
                             klasse2.setVisible(true);
                           
                             JLabel t2 = new JLabel("Anzahl:");
                             //Erg�nzen//
                           
                             JLabel t3 = new JLabel("Klasse:");
                             //Erg�nzen//
                           
                             berechnen2.setBounds(160, 280, 115, 35);
                             panel3.add(A3);
                             panel3.add(A4);
                             panel3.add(anzahl2);
                             panel3.add(klasse2);
                             panel3.add(berechnen2);                   
                     }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("Beugestütz");
                                 f4.setBounds(100, 300, 500, 500);
                               
                                 JLabel t2 = new JLabel("Anzahl:");
                                 t2.setBounds(12, 50, 100, 300);
                                 t2.setVisible(true);
                                 JLabel t3 = new JLabel("Alter:");
                                 //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);      
        }
  
    public void b1click() {
        berechnen1.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent a) {
                // TODO Auto-generated method stub
              
                int parse  = Integer.parseInt(A0.getText()); 
                try {
                    if(parse >= 14) {
                        JOptionPane.showMessageDialog(null, "It works!");                      
                    } else {
                        JOptionPane.showMessageDialog(null, "Bitte benutzen Sie den Punkterechner für unter 14 Jährige!");
                    }                  
                } catch(NullPointerException e) {
                    System.err.println("Fehler: " + e.getMessage());                  
                }
            }
         });
    }  
    }

Nun meine Exception (allerdings nur für den Button, da es beim Panel keine gibt): http://pastebin.com/9NHGCvqX

Vielen Dank für eure Hilfe!


Mit freundlichen Grüßen,
trazz
 
Zuletzt bearbeitet von einem Moderator:
deine statischen Textfelder sind allesamt null:
Java:
JTextField A0 =new JTextField(5);
A0.setBounds(210, 120, 32, 25);
A0.setDocument(createNumericDocumentWithMaxLength(3));
Hier erzeugst du zwar ein neues Textfeld, aber du weist es einer lokalen Variable namens A0 zu und nicht der gewünschten statischen Variable.

Ansonsten ist dein Code leider wirklich furchtbar. Allein deine Variablennamen kann man kaum schlimmer wählen. Wie willst du morgen noch deinen Code verstehen, wenn all deine Variablen namen sehr kurz und nichts sagend sind? Weißt du aus dem Stand heraus was A3 macht? oder pr? oder f? Vermutlich nicht, du solltest dir daher erst gar nicht angewöhnen solche furchtbaren Namen zu verwenden.
Ansonsten ist deine Verwendung von statischen Variable auch keine gute Idee.
 
deine statischen Textfelder sind allesamt null:
Java:
JTextField A0 =new JTextField(5);
A0.setBounds(210, 120, 32, 25);
A0.setDocument(createNumericDocumentWithMaxLength(3));
Hier erzeugst du zwar ein neues Textfeld, aber du weist es einer lokalen Variable namens A0 zu und nicht der gewünschten statischen Variable.

Ansonsten ist dein Code leider wirklich furchtbar. Allein deine Variablennamen kann man kaum schlimmer wählen. Wie willst du morgen noch deinen Code verstehen, wenn all deine Variablen namen sehr kurz und nichts sagend sind? Weißt du aus dem Stand heraus was A3 macht? oder pr? oder f? Vermutlich nicht, du solltest dir daher erst gar nicht angewöhnen solche furchtbaren Namen zu verwenden.
Ansonsten ist deine Verwendung von statischen Variable auch keine gute Idee.
Was müsste ich verändern ? Sorry, bin Anfänger. Hast du vielleicht noch weitere Tipps für guten Code ?

MfG
 
Anstatt das Feld neu zu deklarieren JTextField A0 = ...
solltest du es eben einfach nur zuweisen, ohne eine neue Variable zu deklarieren: A0 = ...

*Benenne Variable nachdem was sie sind. Ein Textfeld speichert das gewicht? Dann nenne es auch gewicht und nicht t42.
*Statische Variable sind in den meisten Fällen nichts weiter als ein Design fehler. In diesem Fall kannst du das static sogar einfach weglassen und es funktioniert trotzdem.
*Du hast eine Methode mit dem selben Namen wie die Klasse, nur der Konstruktor sollte so heißen
*Du lässt deine Klasse von JFrame erben, erstellst dann aber einen komplett neuen JFrame in der void Punkterechner Methode. In den meisten Fällen sollte man einfach nicht von JFrame erben.
*Weiterhin solltest du dir überlegen ob du die ganzen Button, Textfelder, ... Variablen überhaupt als Intsanzvariablen benötigst. In den meisten Fällen reichen diese nämlich als lokale Variable während der erstellung des Frames.
Also eben anstatt:
Java:
class Punkterechner {
  JButton calculate;
  public Punkterechner() {
    JFrame frame = new JFrame();
    calculate = new JButton("Calculate");
    // ...
    frame.add(calculate);
  }
}
lieber folgendes:
Java:
class Punkterechner {
  public Punkterechner() {
    JFrame frame = new JFrame();
    final JButton calculate = new JButton("Calculate");
    // ...
    frame.add(calculate);
  }
}

Ansonsten gibt es vermutlich noch sehr viel zu verbessern, aber das waren nur die groben Sachen wie mir auf die Schnelle aufgefallen sind. Am besten schaust du dir mal ein Einsteiger Buch an, dort wird auf sowas auch eingegangen: http://openbook.rheinwerk-verlag.de/javainsel/
 
@trazz verwende für Variablen Namen, bei denen sofort klar ist, was sie machen/sind.
z. B. weiß jeder (oder fast jeder) was gemeint ist wenn du sagst:
int anzahlPersonen;
aber wenn du die Variable "i" oder so nennst, wird man daraus nicht schlau.
Verwende am besten Variablennamen auf Englisch, dadurch liest sich der Code besser und schneller.
Außerdem solltest du das CamelCase-Prinzip verwenden, das heißt wenn im Variablennamen ein neues Wort beginnt, wird davon der erste Buchstabe groß geschrieben. Sonst beginnen Variablennamen immer klein. Dasselbe verwendest du dann auch für Methodennamen.
 
Anstatt das Feld neu zu deklarieren JTextField A0 = ...
solltest du es eben einfach nur zuweisen, ohne eine neue Variable zu deklarieren: A0 = ...

*Benenne Variable nachdem was sie sind. Ein Textfeld speichert das gewicht? Dann nenne es auch gewicht und nicht t42.
*Statische Variable sind in den meisten Fällen nichts weiter als ein Design fehler. In diesem Fall kannst du das static sogar einfach weglassen und es funktioniert trotzdem.
*Du hast eine Methode mit dem selben Namen wie die Klasse, nur der Konstruktor sollte so heißen
*Du lässt deine Klasse von JFrame erben, erstellst dann aber einen komplett neuen JFrame in der void Punkterechner Methode. In den meisten Fällen sollte man einfach nicht von JFrame erben.
*Weiterhin solltest du dir überlegen ob du die ganzen Button, Textfelder, ... Variablen überhaupt als Intsanzvariablen benötigst. In den meisten Fällen reichen diese nämlich als lokale Variable während der erstellung des Frames.
Also eben anstatt:
Java:
class Punkterechner {
  JButton calculate;
  public Punkterechner() {
    JFrame frame = new JFrame();
    calculate = new JButton("Calculate");
    // ...
    frame.add(calculate);
  }
}
lieber folgendes:
Java:
class Punkterechner {
  public Punkterechner() {
    JFrame frame = new JFrame();
    final JButton calculate = new JButton("Calculate");
    // ...
    frame.add(calculate);
  }
}

Ansonsten gibt es vermutlich noch sehr viel zu verbessern, aber das waren nur die groben Sachen wie mir auf die Schnelle aufgefallen sind. Am besten schaust du dir mal ein Einsteiger Buch an, dort wird auf sowas auch eingegangen: http://openbook.rheinwerk-verlag.de/javainsel/

Vielen, vielen Dank! Es funktioniert!
Das Buch werde ich mir demnächst auch zulegen 😉

Mit freundlichen Grüßen
 
@trazz verwende für Variablen Namen, bei denen sofort klar ist, was sie machen/sind.
z. B. weiß jeder (oder fast jeder) was gemeint ist wenn du sagst:
int anzahlPersonen;
aber wenn du die Variable "i" oder so nennst, wird man daraus nicht schlau.
Verwende am besten Variablennamen auf Englisch, dadurch liest sich der Code besser und schneller.
Außerdem solltest du das CamelCase-Prinzip verwenden, das heißt wenn im Variablennamen ein neues Wort beginnt, wird davon der erste Buchstabe groß geschrieben. Sonst beginnen Variablennamen immer klein. Dasselbe verwendest du dann auch für Methodennamen.
Danke!
 
Anstatt das Feld neu zu deklarieren JTextField A0 = ...
solltest du es eben einfach nur zuweisen, ohne eine neue Variable zu deklarieren: A0 = ...

*Benenne Variable nachdem was sie sind. Ein Textfeld speichert das gewicht? Dann nenne es auch gewicht und nicht t42.
*Statische Variable sind in den meisten Fällen nichts weiter als ein Design fehler. In diesem Fall kannst du das static sogar einfach weglassen und es funktioniert trotzdem.
*Du hast eine Methode mit dem selben Namen wie die Klasse, nur der Konstruktor sollte so heißen
*Du lässt deine Klasse von JFrame erben, erstellst dann aber einen komplett neuen JFrame in der void Punkterechner Methode. In den meisten Fällen sollte man einfach nicht von JFrame erben.
*Weiterhin solltest du dir überlegen ob du die ganzen Button, Textfelder, ... Variablen überhaupt als Intsanzvariablen benötigst. In den meisten Fällen reichen diese nämlich als lokale Variable während der erstellung des Frames.
Also eben anstatt:
Java:
class Punkterechner {
  JButton calculate;
  public Punkterechner() {
    JFrame frame = new JFrame();
    calculate = new JButton("Calculate");
    // ...
    frame.add(calculate);
  }
}
lieber folgendes:
Java:
class Punkterechner {
  public Punkterechner() {
    JFrame frame = new JFrame();
    final JButton calculate = new JButton("Calculate");
    // ...
    frame.add(calculate);
  }
}

Ansonsten gibt es vermutlich noch sehr viel zu verbessern, aber das waren nur die groben Sachen wie mir auf die Schnelle aufgefallen sind. Am besten schaust du dir mal ein Einsteiger Buch an, dort wird auf sowas auch eingegangen: http://openbook.rheinwerk-verlag.de/javainsel/
Ich habe meinen Quellcode meiner Ansicht nach (unter Befolgung deiner Schritte) jetzt erstmal übersichtlicher gestaltet. Nun noch meine Frage hast du auch noch eine Idee für das Frame mit dem "Standweitsprung" ?

Mit freundlichen Grüßen
 
Im Grunde genau das gleiche, hier reicht dir auch eine lokale Variable. Du benötigst die Variable zwar auch in dem Listener, aber da dieser innerhalb deines Konstruktors erzeugt wird, kannst du auch auf die (finalen) lokalen Variable davon zugreifen:
Java:
class Punkterechner {
  public Punkterechner() {
    final JCheckBox weitsprung = new JCheckBox();
    // ...
    button.addActionListener(new ActonListener(){
            @Override
           publicvoid actionPerformed(ActionEvent ae){
             if(weitsprung.isSelected()) { ... }
           }
     }
  }
}
 
Im Grunde genau das gleiche, hier reicht dir auch eine lokale Variable. Du benötigst die Variable zwar auch in dem Listener, aber da dieser innerhalb deines Konstruktors erzeugt wird, kannst du auch auf die (finalen) lokalen Variable davon zugreifen:
Java:
class Punkterechner {
  public Punkterechner() {
    final JCheckBox weitsprung = new JCheckBox();
    // ...
    button.addActionListener(new ActonListener(){
            @Override
           publicvoid actionPerformed(ActionEvent ae){
             if(weitsprung.isSelected()) { ... }
           }
     }
  }
}

Ich habe es jetzt so geändert:
Java:
package de.[PRIVAT].main;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.InputMismatchException;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.PlainDocument;

@SuppressWarnings("serial")
public class Punkterechner extends JFrame  {
   
   

   
    Font font = new Font("Verdana", Font.BOLD, 15);
   
   
   
   
   
    ArrayList<String> liste1 = new ArrayList<String>();
   
   
   
   
    static JLabel ueberschrift;
    static JLabel labelAnzahl1;
    static JLabel klasse1;
   
    static JLabel text2;
    static JLabel anzahl2;
    static JLabel klasse2;
   
    JPanel panel2 = new JPanel();
    JPanel panel3 = new JPanel();
   
    ImageIcon img = new ImageIcon("GCG.jpg");

    JPanel panel = new JPanel();
    static JTextField anzahlKlimm;
    static JTextField alterKlimm;
    static JTextField anzahlStand;
    static JTextField alterStand;
    JCheckBox boxKlimm = new JCheckBox("Klimmzüge");
    final JCheckBox boxStand = new JCheckBox("Standweitsprung");
    JCheckBox boxBeuge = new JCheckBox("Beugestütz");
    JButton button = new JButton("Auswählen");
    static JButton berechnen1 = new JButton("Berechnen");
    JButton berechnen2 = new JButton("Berechnen");
    JButton berechnen3 = new JButton("Berechnen");
       
   
   
    public static void main(String[] args) {
       
        Punkterechner pr = new Punkterechner();
       
        pr.b1click();
        pr.Punkterechner();

       
       
        JOptionPane.showMessageDialog(null, "[PRIVAT]");
       
    }

   

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  void Punkterechner() {
       
        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("Punkterechner");
        f.setBounds(100, 300, 500, 500);
   
        ueberschrift = new JLabel("Bitte wählen Sie die Disziplin aus!");
        ueberschrift.setVisible(true);
        ueberschrift.setBounds(135, 30, 300, 50);
        ueberschrift.setFont(new Font("Calabria", Font.BOLD, 16));
       

   
        button.setBounds(195, 350, 100, 35);

        boxKlimm.setVisible(true);
        boxKlimm.setBounds(195, 110, 150, 35);
       
        boxStand.setVisible(true);
        boxStand.setBounds(195, 190, 150, 35);
       
        boxBeuge.setVisible(true);
        boxBeuge.setBounds(195, 270, 150, 35);
       
        button.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
               
                 if(boxKlimm.isSelected()) {
                     panel2.setLayout(null);
                     f.setVisible(false);
                        JFrame f5 = new JFrame();
                         f5.setVisible(true);
                         f5.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                         f5.setLocationRelativeTo(null);
                         f5.setTitle("Klimmzug");
                         f5.setBounds(100, 300, 500, 500);
                        
                         labelAnzahl1 = new JLabel("Anzahl: ");
                         labelAnzahl1.setFont(font);
                        
                         labelAnzahl1.setBounds(140, 123, 75, 15);
                         labelAnzahl1.setVisible(true);
                        
                             anzahlKlimm = new JTextField(5);
                             anzahlKlimm.setBounds(210, 120, 32, 25);
                             anzahlKlimm.setDocument(createNumericDocumentWithMaxLength(3));
                       
                       
                            alterKlimm = new JTextField();
                            alterKlimm.setDocument(createNumericDocumentWithMaxLength1(2));
                            alterKlimm.setBounds(210, 180, 32, 25);
                       
                        klasse1 = new JLabel("Alter: ");
                        klasse1.setFont(font);
                       
                        klasse1.setBounds(140, 183, 75, 15);
                        klasse1.setVisible(true);
                        
                             JLabel t2 = new JLabel("Anzahl:");
                             //Erg�nzen//
                        
                             JLabel t3 = new JLabel("Alter:");
                             //Erg�nzen//
                       
                        
                         berechnen1.setBounds(160, 280, 115, 35);
                        
                       
                                                 
                        
                     panel2.add(anzahlKlimm);
                     panel2.add(alterKlimm);
                     panel2.add(labelAnzahl1);
                     panel2.add(klasse1);
                     panel2.add(berechnen1);
                     f5.add(panel2);
                   
                        
                 }
                    
                        
                    }
                 {   
            }
        });
       
        button.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                if(boxStand.isSelected()) {
                     panel3.setLayout(null);
                     f.setVisible(false);
                        JFrame f2 = new JFrame();
                         f2.setVisible(true);
                         f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                         f2.setLocationRelativeTo(null);
                         f2.setTitle("Standweitsprung");
                         f2.setBounds(100, 300, 500, 500);
                        
                         anzahl2 = new JLabel("Anzahl: ");
                         anzahl2.setFont(font);
                        
                         anzahl2.setBounds(140, 123, 75, 15);
                         anzahl2.setVisible(true);
                        
                             anzahlStand = new JTextField(5);
                             anzahlStand.setBounds(210, 120, 32, 25);
                             anzahlStand.setDocument(createNumericDocumentWithMaxLength(3));
                       
                       
                             alterStand = new JTextField();
                             alterStand.setDocument(createNumericDocumentWithMaxLength1(2));
                             alterStand.setBounds(210, 180, 32, 25);
                       
                         klasse2 = new JLabel("Alter: ");
                         klasse2.setFont(font);
                       
                         klasse2.setBounds(140, 183, 75, 15);
                         klasse2.setVisible(true);
                        
                         JLabel t2 = new JLabel("Anzahl:");
                         //Erg�nzen//
                        
                         JLabel t3 = new JLabel("Klasse:");
                         //Erg�nzen//
                       
                        
                         berechnen2.setBounds(160, 280, 115, 35);
                         panel3.add(anzahlStand);
                         panel3.add(alterStand);
                         panel3.add(anzahl2);
                         panel3.add(klasse2);
                         panel3.add(berechnen2);
                
                 }
           
            }
           
        });
       
        button.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                if(boxBeuge.isSelected()) {
                    f.setVisible(false);
                    JFrame f4 = new JFrame();
                     f4.setVisible(true);
                     f4.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                     f4.setLocationRelativeTo(null);
                     f4.setTitle("Beugestütz");
                     f4.setBounds(100, 300, 500, 500);
                    
                     JLabel t2 = new JLabel("Anzahl:");
                     t2.setBounds(12, 50, 100, 300);
                     t2.setVisible(true);
                     JLabel t3 = new JLabel("Alter:");
                     //Erg�nzen//
            
             panel.add(t2);
           
             }
            }
           
        });
       
        boxKlimm.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ac) {
                // TODO Auto-generated method stub
               
                if(boxKlimm.isSelected() == true) {
                    boxStand.setSelected(false);
                    boxBeuge.setSelected(false);   
                }   
            }   
        });
        boxStand.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ac) {
                // TODO Auto-generated method stub
               
                 if(boxStand.isSelected() == true) {
                    boxKlimm.setSelected(false);
                    boxBeuge.setSelected(false);
                }
            }           
        });
        boxBeuge.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ac) {
                // TODO Auto-generated method stub
               
                 if(boxBeuge.isSelected() == true) {
                    boxKlimm.setSelected(false);
                    boxStand.setSelected(false);
                }
            }
        });
       
        panel.add(button);
        panel.add(boxKlimm);
        panel.add(boxStand);
        panel.add(boxBeuge);
        panel.add(ueberschrift);
        f.add(panel);
       
        }
   
    public void b1click() {
        berechnen1.addActionListener(new ActionListener() {
            
   

            @Override
            public void actionPerformed(ActionEvent a) {
                // TODO Auto-generated method stub
               
                int parse  = Integer.parseInt(alterKlimm.getText());
               
               
                try {

                    if(parse >= 14) {
                        JOptionPane.showMessageDialog(null, "It works!");
                       
                    } else {
                        JOptionPane.showMessageDialog(null, "Bitte benutzen Sie den Punkterechner für unter 14 Jährige!");
                    }
                   
                } catch(NullPointerException e) {
                    System.err.println("Fehler: " + e.getMessage());
                   
                }
               
           
                                             
                   
               
           
               
               
               
            }
            
         });

       
    }

   


   

   
    }

Geht immer noch nicht (Frame (Standweitsprung) zeigt nichts an - keine Fehlermeldung).

MfG


p.s.: Die Variablen die immer noch unübersichtlich heißen sind schon umgenannt bloß hier noch nicht.
 

Neue Themen


Zurück
Oben