假设我有一个名为 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/