Erste Schritte ActionListener

Diskutiere ActionListener im Java Basics - Anfänger-Themen Bereich.
P

philipmrz

Mein Problem ist, dass alles bis auf der Knopf (berechnenButton) funktioniert. Das ganze liegt am ActionListener aber ich weiß nicht wieso es so ist und wie ich es beseitige.

Dank im Voraus

Philip

Javascript:
package guiii;


import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;

import java.awt.Color;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JMenuBar;
import javax.swing.JScrollPane;


public class Hedogenisches extends JFrame implements ActionListener{

    JButton berechnenButton;
    JLabel lblNewLabel_1;
    

     JPanel contentPane;
     JTextField pEinsUnMiFr;
     JTextField pZweiUnMiFr;
     JTextField pDreiUnMiFr;
     JTextField pVierUnMiFr;
     JTextField pEinsUnMiLe;
     JTextField pZweiUnMiLe;
     JTextField pDreiUnMiLe;
     JTextField pVierUnMiLe;
     JTextField pEinsMiFr;
     JTextField pZweiMiFr;
     JTextField pDreiMiFr;
     JTextField pVierMiFr;
     JTextField pEinsMiLe;
     JTextField pZweiMiLe;
     JTextField pDreiMiLe;
     JTextField pVierMiLe;
    
    
    
      int pEinsUnmittelbareFreude=1;
      int pEinsUnmittelbaresLeid=1;
      int pEinsMittelbareFreude=1;
      int pEinsMittelbaresLeid=1;
 
        
        //Person 2
    public int pZweiUnmittelbareFreude=1;
    public  int pZweiUnmittelbaresLeid=1;
    public  int pZweiMittelbareFreude=1;
    public  int pZweiMittelbaresLeid=1;
        
        
        //Person3
    public  int pDreiUnmittelbareFreude=1;
    public int pDreiUnmittelbaresLeid=1;
    public int pDreiMittelbareFreude=1;
    public  int pDreiMittelbaresLeid=1;
        
        
        //Person 4
    public int pVierUnmittelbareFreude=1;
    public int pVierUnmittelbaresLeid=1;
       public int pVierMittelbareFreude=1;
       public int pVierMittelbaresLeid=1;
        
        
        //Person 5
       public int pFuenfUnmittelbareFreude=1;
       public     int pFuenfUnmittelbaresLeid=1;
       public  int pFuenfMittelbareFreude=1;
       public  int pFuenfMittelbaresLeid=1;
        
    
       public int gluecksbilanz;
    
    
    
    public Hedogenisches() {
        this.setTitle("Hedonistische Kalk\u00FCl-Rechner nach Mrozyk");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setBounds(100, 100, 621, 300);
        
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        this.setContentPane(contentPane);
        contentPane.setLayout(null);
        
        JButton berechnenButton = new JButton("Berechnen");
        berechnenButton.setBounds(368, 220, 113, 23);
        berechnenButton.addActionListener(this);
        contentPane.add(berechnenButton);
        
        JLabel lblNewLabel = new JLabel("Person 1");
        lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 15));
        lblNewLabel.setBounds(10, 37, 63, 14);
        contentPane.add(lblNewLabel);
        

        
        JLabel lblNewLabel_2 = new JLabel("Person 2");
        lblNewLabel_2.setFont(new Font("Tahoma", Font.PLAIN, 15));
        lblNewLabel_2.setBounds(10, 84, 63, 14);
        contentPane.add(lblNewLabel_2);
        
        JLabel lblNewLabel_3 = new JLabel("Person 3");
        lblNewLabel_3.setFont(new Font("Tahoma", Font.PLAIN, 15));
        lblNewLabel_3.setBounds(10, 126, 63, 14);
        contentPane.add(lblNewLabel_3);
        
        JLabel lblNewLabel_4 = new JLabel("Person 4");
        lblNewLabel_4.setFont(new Font("Tahoma", Font.PLAIN, 15));
        lblNewLabel_4.setBounds(10, 171, 63, 14);
        contentPane.add(lblNewLabel_4);
        
        
        JLabel lblNewLabel_5 = new JLabel("Unmittelbare Freude");
        lblNewLabel_5.setFont(new Font("Tahoma", Font.PLAIN, 15));
        lblNewLabel_5.setBounds(80, 11, 142, 14);
        contentPane.add(lblNewLabel_5);
        
        JLabel lblNewLabel_6 = new JLabel("Unmittelbares Leid");
        lblNewLabel_6.setFont(new Font("Tahoma", Font.PLAIN, 15));
        lblNewLabel_6.setBounds(232, 11, 126, 14);
        contentPane.add(lblNewLabel_6);
        
        JLabel lblNewLabel_7 = new JLabel("Mittelbare Freude");
        lblNewLabel_7.setFont(new Font("Tahoma", Font.PLAIN, 15));
        lblNewLabel_7.setBounds(368, 11, 113, 14);
        contentPane.add(lblNewLabel_7);
        
        JLabel lblNewLabel_8 = new JLabel("Mittelbares Leid");
        lblNewLabel_8.setFont(new Font("Tahoma", Font.PLAIN, 15));
        lblNewLabel_8.setBounds(491, 11, 104, 14);
        contentPane.add(lblNewLabel_8);
        
        pEinsUnMiFr = new JTextField();
        pEinsUnMiFr.setBounds(101, 36, 86, 20);
        contentPane.add(pEinsUnMiFr);
        pEinsUnMiFr.setColumns(10);
        
        pZweiUnMiFr = new JTextField();
        pZweiUnMiFr.setBounds(101, 83, 86, 20);
        contentPane.add(pZweiUnMiFr);
        pZweiUnMiFr.setColumns(10);
        
        pDreiUnMiFr = new JTextField();
        pDreiUnMiFr.setBounds(101, 125, 86, 20);
        contentPane.add(pDreiUnMiFr);
        pDreiUnMiFr.setColumns(10);
        
        pVierUnMiFr = new JTextField();
        pVierUnMiFr.setBounds(101, 170, 86, 20);
        contentPane.add(pVierUnMiFr);
        pVierUnMiFr.setColumns(10);
        
        pEinsUnMiLe = new JTextField();
        pEinsUnMiLe.setBounds(242, 36, 86, 20);
        contentPane.add(pEinsUnMiLe);
        pEinsUnMiLe.setColumns(10);
        
        pZweiUnMiLe = new JTextField();
        pZweiUnMiLe.setBounds(242, 83, 86, 20);
        contentPane.add(pZweiUnMiLe);
        pZweiUnMiLe.setColumns(10);
        
        pDreiUnMiLe = new JTextField();
        pDreiUnMiLe.setText("");
        pDreiUnMiLe.setBounds(242, 125, 86, 20);
        contentPane.add(pDreiUnMiLe);
        pDreiUnMiLe.setColumns(10);
        
        pVierUnMiLe = new JTextField();
        pVierUnMiLe.setBounds(242, 170, 86, 20);
        contentPane.add(pVierUnMiLe);
        pVierUnMiLe.setColumns(10);
        
        pEinsMiFr = new JTextField();
        pEinsMiFr.setBounds(378, 36, 86, 20);
        contentPane.add(pEinsMiFr);
        pEinsMiFr.setColumns(10);
        
        pZweiMiFr = new JTextField();
        pZweiMiFr.setBounds(378, 83, 86, 20);
        contentPane.add(pZweiMiFr);
        pZweiMiFr.setColumns(10);
        
        pDreiMiFr = new JTextField();
        pDreiMiFr.setBounds(378, 125, 86, 20);
        contentPane.add(pDreiMiFr);
        pDreiMiFr.setColumns(10);
        
        pVierMiFr = new JTextField();
        pVierMiFr.setBounds(378, 170, 86, 20);
        contentPane.add(pVierMiFr);
        pVierMiFr.setColumns(10);
        
        pEinsMiLe = new JTextField();
        pEinsMiLe.setBounds(501, 36, 86, 20);
        contentPane.add(pEinsMiLe);
        pEinsMiLe.setColumns(10);
        
        pZweiMiLe = new JTextField();
        pZweiMiLe.setBounds(501, 83, 86, 20);
        contentPane.add(pZweiMiLe);
        pZweiMiLe.setColumns(10);
        
        pDreiMiLe = new JTextField();
        pDreiMiLe.setBounds(501, 125, 86, 20);
        contentPane.add(pDreiMiLe);
        pDreiMiLe.setColumns(10);
        
        pVierMiLe = new JTextField();
        pVierMiLe.setBounds(501, 170, 86, 20);
        contentPane.add(pVierMiLe);
        pVierMiLe.setColumns(10);
        

        
        JLabel lblNewLabel_1 = new JLabel("Gl\u00FCcksbilanz");
        lblNewLabel_1.setBounds(513, 220, 63, 23);
        contentPane.add(lblNewLabel_1);
        

        
        
        
        
        
        
    }
    
    
    public static void main(String[] args) {
        Hedogenisches hed = new Hedogenisches();
        hed.setVisible(true);   
    }
    
        public void actionPerformed (ActionEvent ae) {
            if(ae.getSource () == this.berechnenButton) {
                contentPane.setBackground(Color.YELLOW);
            }
            
        }
    }
 
J

JustNobody

Mit der Zeile
JButton berechnenButton = new JButton("Berechnen");

erzeugst Du eine neue lokale Variable berechnenButton, welche die Instanzvariable berechnenButton versteckt.

Daher ist in actionPerformed this.berechnenButton immer noch null und die if Abfrage wird nie wahr sein.

Daher: Wenn Du Instanzvariablen hast, die du füllen willst, dann gib nur die Instanzvariable an - ohne einen Typ davor:
berechnenButton = new JButton("Berechnen");

Das trifft natürlich nicht nur auf diese Instanzvariable zu.
 
P

philipmrz

Perfekt ich danke dir für die schnelle Antwort. Funktioniert jetzt.
 
Thema: 

ActionListener

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben