为什么我的动作事件没有被触发?

why does my Action event is not being triggered?

我正在尝试构建一个简单的记事本。但是由于某种原因,在单击 New 菜单项后,我的操作事件没有被触发。当用户单击 New 菜单项时,下面给出的代码应调用 newFile() 方法。

public class MainUi implements ActionListener{
    
    //all the variables
    public JFrame window;
    public JTextArea textArea;
    public JScrollPane scrollPane;
    public JMenuBar menuBar;
    public JMenu menuFile, menuEdit, menuFormat;
    public JMenuItem fNew, fOpen, fSave, fSaveAs, fExit;
    
    //creating instance of all the functional class
    File_functions file = new File_functions(this);
    
    //Constructor to build the ui
    public MainUi() {
        createWindow();
        createMenuBar();
        addFileMenu();
        createTextArea();
        
        window.setVisible(true);
    }
    
    public static void main(String[] args) {
        new MainUi();
    }
    //menu bar
        public void createMenuBar() {
            menuBar = new JMenuBar();
            window.setJMenuBar(menuBar);
            
            //add file to the menu
            menuFile = new JMenu("File");
            menuBar.add(menuFile);
        }
        
        //all the file menu
        public void addFileMenu() {
            fNew = new JMenuItem("New");
            menuFile.add(fNew);
            menuFile.addActionListener(this);
            menuFile.setActionCommand("New");
        }

@Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        String command = e.getActionCommand();
        System.out.print(command);
        switch (command) {
            case "New": file.newFile();  break;
        }
    }
}

在另一个 class (File_function).

控制台中没有错误显示
        fNew = new JMenuItem("New");
        menuFile.add(fNew);
        menuFile.addActionListener(this);

需要将 ActionListener 添加到 JMenuItem:

        fNew = new JMenuItem("New");
        menuFile.add(fNew);
        //menuFile.addActionListener(this);
        fNew.addActionListener(this);

注意,不需要设置动作命令。它将默认为菜单项的文本。