我的 actionPerformed 方法 (Java) 不起作用,我不知道为什么

My actionPerformed method(Java) is not working and I have no clue why

这是我的整个程序,不要怀疑我用的词,我是德国人。 从 l. 95到l。 103 是执行操作的方法,(我只执行了 System.out.println() 以查看它是否有效)。 我写了其他程序,我从来没有遇到过这样的问题,我尝试了很多东西,但我没有找到问题,也许这是一个非常简单的问题...... 如果您能帮助我,我将不胜感激!

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class GameFrame implements ActionListener {

    String wochentag;
    int itag = 0;
    int imonat = 0;
    int ijahrhundert = 0;
    int ijahr = 0;

    String stag;
    String smonat;
    String sjahr;
    String sJahrhundert;
    boolean rechnen = false;

    JFrame frame = new JFrame();
    JButton start = new JButton("Wochentag errechnen");
    JButton update = new JButton("Datum anzeigen");

    JPanel alles = new JPanel();

    JLabel Tag = new JLabel("Tag");
    JLabel Monat = new JLabel("Monat");
    JLabel Jahr = new JLabel("Jahr");
    JLabel Jahrhundert = new JLabel("Jahrhundert");

    JTextField Datum = new JTextField(" Welchen Wochentag hatte der --.--.---- ");
    JTextField Output = new JTextField(" Dieser Tag war ein ------tag");

    JTextField tag = new JTextField();
    JTextField monat = new JTextField();
    JTextField jahr = new JTextField();
    JTextField jahrhundert = new JTextField();

    GameFrame(){

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(500, 500);
        frame.getContentPane().setBackground(Color.WHITE);
        frame.setLayout(new BorderLayout());
        frame.setVisible(true);
        frame.setFocusable(false);
        frame.setResizable(false);

        alles.setBounds(0,0,500,500);

        Datum.setBounds(75,40,280,40);
        Datum.setEditable(false);
        Tag.setBounds(175,100,45,25);
        Monat.setBounds(175,150,55,25);
        Jahr.setBounds(175,200,50,25);
        Jahrhundert.setBounds(175,250,75,25);
        Output.setBounds(118,400,202,40);
        Output.setEditable(false);

        tag.setBounds(250,100,75,25);
        tag.setEditable(true);
        monat.setBounds(250,150,75,25);
        jahr.setBounds(250,200,75,25);
        jahrhundert.setBounds(250,250,75,25);

        start.setBounds(165,350,170,25);
        start.setFocusable(false);

        update.setBounds(175,300,150,25);
        update.setFocusable(false);

        frame.add(alles);

        alles.add(Datum);
        alles.add(Tag);
        alles.add(Monat);
        alles.add(Jahr);
        alles.add(Jahrhundert);

        alles.add(Output);

        alles.add(tag);
        alles.add(monat);
        alles.add(jahr);
        alles.add(jahrhundert);

        alles.add(start);
        alles.add(update);
    }

    public static void main(String[] args) {

        GameFrame gameframe = new GameFrame();
    }
    @Override
    public void actionPerformed(ActionEvent e){

        if(e.getSource() == update){
            stag = tag.getText();
            tag.setText("");
            System.out.println(stag);
        }
    }
}

正如评论中提到的那些人,您还没有将侦听器添加到您的组件(更新按钮)。如果您使用的是按钮,则可以考虑改用 MouseListener

public class GameFrame implements MouseListener {

JButton update = new JButton("Datum anzeigen");
GameFrame()
{

  //other code
  update.addMouseListener(this);

}
    public void mouseClicked(MouseEvent e) {
        // TODO Auto-generated method stub
        
    }

    public void mousePressed(MouseEvent e) {
        // TODO Auto-generated method stub
        
    }

    public void mouseReleased(MouseEvent e) {
        // TODO Auto-generated method stub
        
    }

    public void mouseEntered(MouseEvent e) {
        // TODO Auto-generated method stub
        
    }

    public void mouseExited(MouseEvent e) {
        // TODO Auto-generated method stub
        
    }
}

如果您想为单独的按钮设置多个侦听器,您也可以在构造函数中创建它们

update.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e){
        System.out.println("Start button wurde geklickt");
    }
};
start.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e){
        System.out.println("Update button wurde geklickt");
    }
};