这是发生错误的代码。
```js
JMenuItem mntmNewMenuItem = new JMenuItem("Open"); mntmNewMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { int returnVal = db.showOpenDialog(this); } });
所以,我的问题是,我应该在上面的代码存根中更改什么才能使用文件选择器?
错误的含义:该方法showOpenDialog需要一个类型的参数,Component但正在使用调用ActionListener。更确切地说,给定参数是实现的匿名类,ActionListener而不是Component:
new ActionListener() { ... }
在声明的使用. . .关键字的方法内部,this指向该匿名类的实例。
请参阅的文档showOpenDialog(),它需要父母或null:
弹出“打开文件”文件选择器对话框。请注意,批准按钮中显示的文本由L&F确定。
参数:
parent - the parent component of the dialog, can be null; see showDialog for details
以及以下相关文件showDialog():
父参数确定两件事:打开对话框所依赖的框架以及放置对话框时外观应考虑其位置的组件。...如果父级为null,则对话框不依赖于可见窗口,而是放置在与外观相关的位置,例如屏幕中心。
通```
常,传递的参数是JFrame或JPanel应该在视觉上包含对话框的参数,但可以是null:
```js
int returnVal = db.showOpenDialog(null);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。