0

假设我有一个名为examples/basics/ 在该文件夹中的文件夹,我有一堆 .asm 文件。我现在想做的是将这些文件自动制作成 JMenuItems,不带 .asm 扩展名,放置在 JMenu 内并添加动作监听器,执行以下操作:

用户点击生成的 JMenuItem。一个新的,假设创建了一个 CodeArea 对象,并且文件示例/基础/我单击的内容作为新文件传入。

如何以最简单的方式实现这一目标?

4

1 回答 1

1

用于您的目的的简单示例:

    JFrame frame = new JFrame();
    frame.setSize(400,400);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JMenuBar menu = new JMenuBar();
    frame.setJMenuBar(menu);

    JMenu mainMenu = new JMenu("Menu");
    menu.add(mainMenu);

    File f = new File(PATH_TO_FOLDER);
    if(f.exists()){
        File[] listFiles = f.listFiles();
        for(File file : listFiles){
            if(file.getAbsolutePath().endsWith(EXTENSION)){
                final JMenuItem m = new JMenuItem(file.getName());
                mainMenu.add(m);
                m.addActionListener(new ActionListener() {

                    @Override
                    public void actionPerformed(ActionEvent arg0) {
                        System.out.println(m.toString());
                    }
                });
            }
        }
    }

    frame.setLocationRelativeTo(null);
    frame.setVisible(true);

这里PATH_TO_FOLDER是您的文件夹的路径,其中包含文件

EXTENSION是菜单文件的目标扩展名

于 2013-11-05T13:41:24.340 回答