java - 在文件夹中创建 .asm 文件作为 JMenuItems 并将它们添加到 JMenu,添加 ActionListener 事件

标签 java swing file jmenu jmenuitem

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

User clicks on JMenuItem genetated. A new, lets say a CodeArea object is created and the file examples/basics/what I clikced on is passed in as a new File.

如何用最简单的手段实现这一目标?

最佳答案

适合您的目的的简单示例:

    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 是菜单文件的目标扩展名

关于java - 在文件夹中创建 .asm 文件作为 JMenuItems 并将它们添加到 JMenu,添加 ActionListener 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19789783/

相关文章:

java - 我在调用矩形面积的方法时遇到问题

java - 这个 Maven 插件真的有一个无效的描述符吗?

java - 如何使用 JMenu 项在 JTextArea 中的单独行上显示整数?

c - 可变参数函数 - 读取文件 (c)

java - 检查文件路径中是否包含特定目录名称

java - 如果 c 比 b 小得多,找到 a**b % c(a 幂 b 模 c)的最佳方法是什么?

Java - 为什么以下代码打印出 "BAC"而不是 "ABC"?

java - JTable 列标签不打印

java - 如何切换两个JComboBox的位置或交换内容?

c - 简单的 calloc 和 FILE 代码在 Windows 上随机崩溃