为什么我的动作事件没有被触发?
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);
注意,不需要设置动作命令。它将默认为菜单项的文本。
我正在尝试构建一个简单的记事本。但是由于某种原因,在单击 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);
注意,不需要设置动作命令。它将默认为菜单项的文本。