Programm lässt sich starten aber führt die Berechnungen nicht durch

Hallo Leute,

aufgrund des nicht Funktionierens eines kleinen Übungsprogrammes habe ich es einfach komplett umgestellt. Dadurch ist es zwar relativ unübersichtlich geworden aber es lässt sich starten.
Das Problem ist, dass das Fenster angezeigt wird und auch die Auswahlknöpfe funktionieren, aber wenn ich z.B. die Berechnung kmh in Knoten oder mph in knoten durchführen möchte, zeigt mir Eclipse Fehler an.

Hier der Code (von der Grafik):

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JSlider;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;


public class VerschiedeneListenerAlsMenue extends JFrame implements ActionListener, ChangeListener
{
        private static final long serialVersionUID = 1L;
        Container c;
        JPanel nord,mitte;
        JMenuBar mb;
        JMenu m;
        JMenuItem geschwindigkeitswandler,skisprung,rechner;
        JLabel wasTun,anzGeschw,ergGeschw,op1,op2,labAnz,anzErg;
        JButton loeschen,umwandeln,plus,minus,mal,geteilt,loeschen2;
        JComboBox auswahl1,auswahl2;
        String einheiten[]={"Km/h","Mph","Knoten","Mach"};
        JSlider normaleschanze,grossschanze,flugschanze,haltung;
    JLabel punkte1,punkte11,punkte2,punkte22,telemark;
    JTextField eingabe1,weite2,haltungspunkte,eing1,eing2;
    ButtonGroup bg;
    JRadioButton ja,nein;
    JPanel p1;
        
        public VerschiedeneListenerAlsMenue()
        {
                setSize(300, 300);
                setLocationRelativeTo(null);
                c=getContentPane();
                c.add(mb=new JMenuBar(),BorderLayout.NORTH);
                mb.add(m=new JMenu("Auswahl"));
                m.add(geschwindigkeitswandler=new JMenuItem("Geschwindigkeitswandler"));
                geschwindigkeitswandler.addActionListener(this);
                geschwindigkeitswandler.setActionCommand("Geschwindigkeitswandler");
                
                m.add(skisprung=new JMenuItem("Skisprung"));
                skisprung.addActionListener(this);
                skisprung.setActionCommand("Skisprung");
                
                m.add(rechner=new JMenuItem("Rechner"));
                rechner.addActionListener(this);
                rechner.setActionCommand("Rechner");
                
                setVisible(true);
                setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        }
        
        void aktualisiere()
        {
                setSize(950, 100);
                setLocationRelativeTo(null);
                c.add(nord=new JPanel());
                c.add(mitte=new JPanel());
                mitte.setLayout(new FlowLayout());
                mitte.add(wasTun=new JLabel("<html>Bitte geben Sie eine<br>Geschwindigkeit ein: </html>",JLabel.RIGHT));
                mitte.add(eingabe1=new JTextField(10));
                mitte.add(auswahl1=new JComboBox(einheiten));
                mitte.add(umwandeln=new JButton("umwandeln"));
                umwandeln.addActionListener(this);
                umwandeln.setActionCommand("umwandeln");
                
                mitte.add(loeschen=new JButton("loeschen"));
                loeschen.addActionListener(this);
                loeschen.setActionCommand("loeschen");
                
                mitte.add(auswahl2=new JComboBox(einheiten));
                mitte.add(anzGeschw=new JLabel("Ihre Geschwindigkeit beträgt: ",JLabel.RIGHT));
                mitte.add(ergGeschw=new JLabel());
                ergGeschw.setOpaque(true);
                ergGeschw.setBackground(Color.WHITE);
                repaint();
                setVisible(true);
                setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        }
        
        void aktualisiere2()
        {
                setSize(400, 800);
                setLocationRelativeTo(null);
                c.add(nord=new JPanel());
                c.add(mitte=new JPanel());
                mitte.setLayout(new GridLayout(13,1));
                mitte.add(normaleschanze=new JSlider(JSlider.HORIZONTAL,0,135,115));
                normaleschanze.setName("Normalschanze");
                normaleschanze.addChangeListener(this);
                normaleschanze.setPreferredSize(new Dimension(300,50));
                normaleschanze.setMajorTickSpacing(10);
        normaleschanze.setMinorTickSpacing(5);
        normaleschanze.setPaintLabels(true);
        normaleschanze.setPaintTicks(true);
         
        mitte.add(grossschanze=new JSlider(JSlider.HORIZONTAL,0,160,120));
         grossschanze.setPreferredSize(new Dimension(300,50));
         grossschanze.setName("Grossschanze");
         grossschanze.addChangeListener(this);
         grossschanze.setMajorTickSpacing(20);
         grossschanze.setMinorTickSpacing(5);
         grossschanze.setPaintLabels(true);
         grossschanze.setPaintTicks(true);
         
         mitte.add(flugschanze=new JSlider(JSlider.HORIZONTAL,0,250,185));
         flugschanze.setPreferredSize(new Dimension(300,50));
         flugschanze.setName("Flugschanze");
         flugschanze.addChangeListener(this);
         flugschanze.setMajorTickSpacing(20);
         flugschanze.setMinorTickSpacing(5);
         flugschanze.setPaintLabels(true);
         flugschanze.setPaintTicks(true);
         
         mitte.add(weite2=new JTextField(5));
         mitte.add(haltung=new JSlider(JSlider.HORIZONTAL,0,20,15));
         haltung.setName("Haltung");
         haltung.addChangeListener(this);
         haltung.setPreferredSize(new Dimension(300,50));
         haltung.setMajorTickSpacing(5);
         haltung.setMinorTickSpacing(1);
         haltung.setPaintLabels(true);
         haltung.setPaintTicks(true);
         
         mitte.add(haltungspunkte=new JTextField(5));
         
         mitte.add(telemark=new JLabel("Telemark: "));
         bg=new ButtonGroup();
         p1=new JPanel();
         p1.add(ja=new JRadioButton("Ja"));
         p1.add(nein=new JRadioButton("Nein"));
         bg.add(ja);
         bg.add(nein);
         mitte.add(p1);
         ja.addActionListener(this);
         ja.setActionCommand("Ja");
         nein.addActionListener(this);
         nein.setActionCommand("Nein");
         
         mitte.add(punkte1=new JLabel("Punkte 1 Sprung: "));
         mitte.add(punkte11=new JLabel());
         punkte11.setOpaque(true);
         punkte11.setBackground(Color.WHITE);
         mitte.add(punkte2=new JLabel("Gesamtpunkte: "));
         mitte.add(punkte22=new JLabel());
         punkte22.setOpaque(true);
         punkte22.setBackground(Color.WHITE);
         repaint();
         setVisible(true);
         setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        }
        
        void aktualisiere3()
        {
                setSize(400, 400);
                setLocationRelativeTo(null);
                c.add(nord=new JPanel());
                c.add(mitte=new JPanel());
                mitte.setLayout(new GridLayout(3,4));
                mitte.add(op1=new JLabel("Operand 1:",JLabel.RIGHT));
                mitte.add(eing1=new JTextField(10));
                mitte.add(op2=new JLabel("Operand 2:",JLabel.RIGHT));
                mitte.add(eing2=new JTextField(10));
                mitte.add(plus=new JButton("+"));
                plus.addActionListener(this);
                plus.setActionCommand("+");
                
                mitte.add(minus=new JButton("-"));
                minus.addActionListener(this);
                minus.setActionCommand("-");
                
                mitte.add(mal=new JButton("*"));
                mal.addActionListener(this);
                mal.setActionCommand("*");
                
                mitte.add(geteilt=new JButton("/"));
                geteilt.addActionListener(this);
                geteilt.setActionCommand("/");
                
                mitte.add(labAnz=new JLabel("Ergebnis:",JLabel.RIGHT));
                mitte.add(anzErg=new JLabel());
                mitte.repaint();
                anzErg.setOpaque(true);
                anzErg.setBackground(Color.WHITE);
                repaint();
                setVisible(true);
                setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        }
        
        public static void main(String args[])
        {
                new VerschiedeneListenerAlsMenue();
        }

        @Override
        public void actionPerformed(ActionEvent ae)
        {
        	if(ae.getActionCommand().equals("Geschwindigkeitswandler"))
            {
        		aktualisiere();
        		if(ae.getActionCommand().equals("umwandeln"))
                {
        			double zahl=0;
                    if(!auswahl1.getSelectedItem().equals(auswahl2.getSelectedItem()))
                    {        
                    	if((auswahl1.getSelectedItem().equals("Km/h"))&&(auswahl2.getSelectedItem().equals("Mph")))
                        {
                    		zahl=Double.parseDouble(eingabe1.getText());
                                                        
                            ergGeschw.setText(""+Berechnungen.kmhInMph(zahl)+" Mph");
                        }
                        else if((auswahl1.getSelectedItem().equals("Mph"))&&(auswahl2.getSelectedItem().equals("Km/h")))
                        {
                        	zahl=Double.parseDouble(eingabe1.getText());
                                                        
                            ergGeschw.setText(""+Berechnungen.mphInKmh(zahl)+" Km/h");
                        }
                        else if((auswahl1.getSelectedItem().equals("Km/h"))&&(auswahl2.getSelectedItem().equals("Knoten")))
                        {
                        	zahl=Double.parseDouble(eingabe1.getText());
                                                        
                            ergGeschw.setText(""+Berechnungen.kmhInKnoten(zahl)+" Knoten");
                        }
                        else if((auswahl1.getSelectedItem().equals("Knoten"))&&(auswahl2.getSelectedItem().equals("Km/h")))
                        {
                        	zahl=Double.parseDouble(eingabe1.getText());
                                                        
                            ergGeschw.setText(""+Berechnungen.knotenInKmh(zahl)+" Km/h");
                        }
                        else if((auswahl1.getSelectedItem().equals("Mph"))&&(auswahl2.getSelectedItem().equals("Knoten")))
                        {
                        	zahl=Double.parseDouble(eingabe1.getText());
                                                        
                            ergGeschw.setText(""+Berechnungen.mphInKnoten(zahl)+" Knoten");
                        }
                        else if((auswahl1.getSelectedItem().equals("Knoten"))&&(auswahl2.getSelectedItem().equals("Mph")))
                        {
                        	zahl=Double.parseDouble(eingabe1.getText());
                                                        
                            ergGeschw.setText(""+Berechnungen.knotenInMph(zahl)+" Mph");
                        }
                        else if((auswahl1.getSelectedItem().equals("Km/h"))&&(auswahl2.getSelectedItem().equals("Mach")))
                        {
                        	zahl=Double.parseDouble(eingabe1.getText());
                                                        
                            ergGeschw.setText(""+Berechnungen.kmhInMach(zahl)+" Mach");
                        }
                        else if((auswahl1.getSelectedItem().equals("Mach"))&&(auswahl2.getSelectedItem().equals("Km/h")))
                        {
                        	zahl=Double.parseDouble(eingabe1.getText());
                                                        
                            ergGeschw.setText(""+Berechnungen.machInKmh(zahl)+" Km/h");
                        }
                        else if((auswahl1.getSelectedItem().equals("Mph"))&&(auswahl2.getSelectedItem().equals("Mach")))
                        {
                        	zahl=Double.parseDouble(eingabe1.getText());
                                                        
                            ergGeschw.setText(""+Berechnungen.mphInMach(zahl)+" Mach");
                        }
                        else if((auswahl1.getSelectedItem().equals("Mach"))&&(auswahl2.getSelectedItem().equals("Mph")))
                        {
                        	zahl=Double.parseDouble(eingabe1.getText());
                                                        
                            ergGeschw.setText(""+Berechnungen.machInMph(zahl)+" Mph");
                        }
                        else if((auswahl1.getSelectedItem().equals("Knoten"))&&(auswahl2.getSelectedItem().equals("Mach")))
                        {
                        	zahl=Double.parseDouble(eingabe1.getText());
                                                        
                            ergGeschw.setText(""+Berechnungen.knotenInMach(zahl)+" Mach");
                        }
                        else if((auswahl1.getSelectedItem().equals("Mach"))&&(auswahl2.getSelectedItem().equals("Knoten")))
                        {
                        	zahl=Double.parseDouble(eingabe1.getText());
                                                        
                            ergGeschw.setText(""+Berechnungen.machInKnoten(zahl)+" Knoten");
                        }
                        else if(ae.getActionCommand().equals("loeschen"))
                        {
                        	eingabe1.setText("");
                            ergGeschw.setText("");
                        }
                    }
                }
           }
           else if(ae.getActionCommand().equals("Skisprung"))
           {
        	   aktualisiere2();
           }
           else if(ae.getActionCommand().equals("Rechner"))
           {
        	   aktualisiere3();
           }
                
           //Es wird eine Zahl für die Punkte des Telemarks mit 6 initialisiert
           int zahl2=7;
           //den ergebnisvariablen werden die benötigten Parameter zugewiesen
           double ergebnisN_MT=Berechnungen.ergebnisNormalschanze(normaleschanze, haltung);
           double ergebnisN_OT=Math.round((Berechnungen.ergebnisNormalschanze(normaleschanze, haltung)-zahl2)*100)/100.;
           double ergebnisN_OTgesamt=Math.round((Berechnungen.ergebnis2Normalschanze(normaleschanze, haltung)-(zahl2*2))*100)/100.;
           double ergebnisN_MTgesamt=Berechnungen.ergebnis2Normalschanze(normaleschanze, haltung);
               
           double ergebnisG_MT=Berechnungen.ergebnisGroßschanze(grossschanze, haltung);
           double ergebnisG_OT=Math.round((Berechnungen.ergebnisGroßschanze(grossschanze, haltung)-zahl2)*100)/100.;
           double ergebnisG_MTgesamt=Berechnungen.ergebnis2Großschanze(grossschanze, haltung);
           double ergebnisG_OTgesamt=Math.round((Berechnungen.ergebnis2Großschanze(grossschanze, haltung)-(zahl2*2))*100)/100.;
               
           double ergebnisF_MT=Berechnungen.ergebnisFlugschanze(flugschanze, haltung);
           double ergebnisF_OT=Math.round((Berechnungen.ergebnisFlugschanze(flugschanze, haltung)-zahl2)*100)/100.;
           double ergebnisF_MTgesamt=Berechnungen.ergebnis2Flugschanze(flugschanze, haltung);
           double ergebnisF_OTgesamt=Math.round((Berechnungen.ergebnis2Flugschanze(flugschanze, haltung)-(zahl2*2))*100)/100.;
               
           //was passiert bei Klick auf Ja oder auf Nein
           if((ja.isSelected()==true)&&(normaleschanze.isFocusable()==true))
           {
        	   nein.setSelected(false);
               punkte11.setText(""+ergebnisN_MT);
               punkte22.setText(""+ergebnisN_MTgesamt);
           }
           else if((ja.isSelected()==true)&&(grossschanze.isFocusable()==true))
           {
        	   nein.setSelected(false);
               punkte11.setText(""+ergebnisG_MT);
               punkte22.setText(""+ergebnisG_MTgesamt);
           }
           else if((ja.isSelected()==true)&&(flugschanze.isFocusable()==true))
           {
        	   nein.setSelected(false);
               punkte11.setText(""+ergebnisF_MT);
               punkte22.setText(""+ergebnisF_MTgesamt);
           }
           else if((nein.isSelected()==true)&&(normaleschanze.isFocusable()==true))
           {
        	   ja.setSelected(false);
               punkte11.setText(""+ergebnisN_OT);
               punkte22.setText(""+ergebnisN_OTgesamt);
           }
           else if((nein.isSelected()==true)&&(grossschanze.isFocusable()==true))
           {
        	   ja.setSelected(false);
               punkte11.setText(""+ergebnisG_OT);
               punkte22.setText(""+ergebnisG_OTgesamt);
           }
           else if((nein.isSelected()==true)&&(flugschanze.isFocusable()==true))
           {
        	   ja.setSelected(false);
               punkte11.setText(""+ergebnisF_OT);
               punkte22.setText(""+ergebnisF_OTgesamt);
           }
        }
                
        @Override
        public void stateChanged(ChangeEvent ce)
        {
        	JSlider normaleschanze;
        	JSlider grossschanze=(JSlider)ce.getSource();
        	JSlider flugschanze=(JSlider)ce.getSource();
        	JSlider haltung=(JSlider)ce.getSource();
        	normaleschanze=(JSlider)ce.getSource();
        	
        	if(normaleschanze.getName().equals("Normalschanze"))
        	{
                weite2.setText(""+normaleschanze.getValue());
        	}
        	if (grossschanze.getName().equals("Grossschanze"))
        	{
                weite2.setText(""+grossschanze.getValue());
        	}
        	if(flugschanze.getName().equals("Flugschanze"))
        	{
                weite2.setText(""+flugschanze.getValue());
        	}	
        	if(haltung.getName().equals("Haltung"))
        	{
                haltungspunkte.setText(""+haltung.getValue());
        	}
        }
	}

Und hier von den Berechnungen:

import java.util.Random;

import javax.swing.JSlider;

class Berechnungen extends VerschiedeneListenerAlsMenue 
{
	private static final long serialVersionUID = 1L;
	
	static double kmhInMph(double zahl)
	{	
		double zahl2;
		zahl2=Math.round(zahl*0.62)*100/100.;
		return zahl2;
	}
	
	static double mphInKmh(double zahl)
	{
		double zahl2;
		zahl2=Math.round(zahl/0.62)*100/100.;
		return zahl2;
	}	
	
	static double kmhInKnoten(double zahl)
	{
		double zahl2;
		zahl2=Math.round(zahl*0.539)*100/100.;
		return zahl2;
	}
	
	static double knotenInKmh(double zahl)
	{
		double zahl2;
		zahl2=Math.round(zahl/0.539)*100/100.;
		return zahl2;
	}
	
	static double mphInKnoten(double zahl)
	{
		double zahl2;
		zahl2=Math.round(zahl*0.868)*100/100.;
		return zahl2;
	}
	
	static double knotenInMph(double zahl)
	{
		double zahl2;
		zahl2=Math.round(zahl/0.868)*100/100.;
		return zahl2;
	}
	
	static double kmhInMach(double zahl)
	{
		double zahl2;
		zahl2=zahl*0.0008084;
		return zahl2;
	}
	
	static double machInKmh(double zahl)
	{
		double zahl2;
		zahl2=Math.round(zahl/0.0008084)*100/100.;
		return zahl2;
	}
	
	static double mphInMach(double zahl)
	{
		double zahl2;
		zahl2=zahl*0.001301;
		return zahl2;
	}
	
	static double machInMph(double zahl)
	{
		double zahl2;
		zahl2=Math.round(zahl/0.001301)*100/100.;
		return zahl2;
	}
	
	static double knotenInMach(double zahl)
	{
		double zahl2;
		zahl2=zahl*0.001497;
		return zahl2;
	}
	
	static double machInKnoten(double zahl)
	{
		double zahl2;
		zahl2=Math.round(zahl/0.001497)*100/100.;
		return zahl2;
	}
	
	  ///////////////////////////BERECHNUNGEN/////////////////////////
    
    //Ergebnis Flugschanze
    static double ergebnisFlugschanze(JSlider flugschanze,JSlider haltung)
    {
            double weite1=60+((flugschanze.getValue()-185)*1.2);
            double haltung1=0;
            Random rd=new Random(0-2);
            
            if(haltung.getValue()<=10)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            else if(haltung.getValue()<=15)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            else if(haltung.getValue()>=15)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            
            double ergebnis1=Math.round((weite1+haltung1)*100)/100.;
            return ergebnis1;
    }
            
    //Gesamtergebnis Flugschanze
    static double ergebnis2Flugschanze(JSlider flugschanze,JSlider haltung)
    {
            double weite1=60+((flugschanze.getValue()-185)*1.2);
            double haltung1=0;
            Random rd=new Random(0-2);
            
            if(haltung.getValue()<=10)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            else if(haltung.getValue()<=15)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            else if(haltung.getValue()>=15)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            
            double ergebnis1=Math.round(((weite1+haltung1)*2)*100)/100.;
            return ergebnis1;
    }
                    
    //Hier wird das Ergebnis der Weite und der Haltung errechnet //Großschanze
    static double ergebnisGroßschanze(JSlider grossschanze,JSlider haltung)
    {
            double weite1=60+((grossschanze.getValue()-120)*1.8);
            double haltung1=0;
            Random rd=new Random(0-2);
            
            if(haltung.getValue()<=10)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            else if(haltung.getValue()<=15)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            else if(haltung.getValue()>=15)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            
            double ergebnis1=Math.round((weite1+haltung1)*100)/100.;
            return ergebnis1;
    }

    //Hier wird das Gesamtergebnis errechnet //Großschanze
    static double ergebnis2Großschanze(JSlider grossschanze,JSlider haltung)
    {
            double weite1=60+((grossschanze.getValue()-120)*1.8);
            double haltung1=0;
            Random rd=new Random(0-2);
            
            if(haltung.getValue()<=10)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            else if(haltung.getValue()<=15)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            else if(haltung.getValue()>=15)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            
            double ergebnis1=Math.round(((weite1+haltung1)*2)*100)/100.;
            return ergebnis1;
    }
                    
    //Berechnung auf einer Normalschanze
    static double ergebnisNormalschanze(JSlider normaleschanze,JSlider haltung)
    {
            double weite1=60+((normaleschanze.getValue()-115)*2);
            double haltung1=0;
            Random rd=new Random(0-2);
            
            if(haltung.getValue()<=10)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            else if(haltung.getValue()<=15)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            else if(haltung.getValue()>=15)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            
            double ergebnis1=Math.round((weite1+haltung1)*100)/100.;
            return ergebnis1;
    }
    //Normalschanze Gesamtergebnis
    static double ergebnis2Normalschanze(JSlider normaleschanze,JSlider haltung)
    {
            double weite1=60+((normaleschanze.getValue()-115)*2);
            double haltung1=0;
            Random rd=new Random(0-2);
            
            if(haltung.getValue()<=10)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            else if(haltung.getValue()<=15)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }
            else if(haltung.getValue()>=15)
            {
                    haltung1=(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble())+(haltung.getValue()+rd.nextDouble());
            }

            double ergebnis1=Math.round(((weite1+haltung1)*2)*100)/100.;
            return ergebnis1;
    }
}

Von Eclipse werden in den beiden Klassen keine Fehler angezeigt. Erst zum Schluss wenn das Programm ausgeführt wird, zeigt Eclipse folgendes an:

Exception in thread „AWT-EventQueue-0“ java.lang.NullPointerException
at Berechnungen.ergebnisNormalschanze(Berechnungen.java:199)
at VerschiedeneListenerAlsMenue.actionPerformed(VerschiedeneListenerAlsMenue.java:313)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread „AWT-EventQueue-0“ java.lang.NullPointerException
at Berechnungen.ergebnisNormalschanze(Berechnungen.java:199)
at VerschiedeneListenerAlsMenue.actionPerformed(VerschiedeneListenerAlsMenue.java:313)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Wenn mir da jemand sagen könnte, was ich machen könnte oder mir einer einen Tipp geben kann wäre ich dankbar :slight_smile:

Lg

In deiner actionPerformed methode ist haltung null, ich habe jetzt nicht nachvollziehen können, wo das zugewiesen wird, aber das verursacht die Fehlermeldung.

Ich kann uach nirgendwo in deinem Konstruktor ein haltung = new … finden

eigentlich ist schon die andere Variable normalSchanze das Problem, wenn mich beim Ausprobieren nicht alles täuscht, andere Zeilennummern

die Variablen werden nur (wiederholt…) in aktualisiere2() gesetzt, was nur drankommt wenn man Skisprung auswählt,
das zuerst dann kann man die anderen auch auswählen…

wobei sicher noch Fehler dass die bei den anderen auch verwendet werden, passe genau auf was angezeigt wird und was im Listener jeweils passiert,


GUI umstellen ist allgemein unschön bei Button-Klick, schaue dir
http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html
oder auch
http://docs.oracle.com/javase/tutorial/uiswing/components/tabbedpane.html
an,
am Anfang alles genau einmal initialisieren (keine Angst vor doppelten Komponenten falls in verschiedenen Bereichen benötigt),
zur Laufzeit nur hin und her schalten

wenn es zig Tabs/ Cards werden, kann man überlegen die jeweiligen erst bei Benutzung zu initialisieren,
aber auch dann auf maximal eine Initialisierung achten, nicht immer wieder


Klasse Berechnungen nicht unnötig von VerschiedeneListenerAlsMenue erben lassen,
bei statischen Methoden hier ganz ohne Auswirkung, mit Wirkung wäre es noch fraglicher, kann schöne Fehler produzieren,
etwa zweites Objekt separat bei dem all die Variablen (normalSchanze, haltung) null sind da hier nicht initialisiert

genau aufpassen mit Vererbung, nur begründet einsetzen

Zum CardLayout gibts im Byte-Welt-Wiki auch einen Beitrag.