开发者社区> 问答> 正文

JFileChooser showOpenDialog方法不适用于ActionListener

这是发生错误的代码。

```js

JMenuItem mntmNewMenuItem = new JMenuItem("Open"); mntmNewMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { int returnVal = db.showOpenDialog(this); } });

所以,我的问题是,我应该在上面的代码存根中更改什么才能使用文件选择器?

展开
收起
游客ufivfoddcd53c 2020-01-04 11:02:21 1073 0
1 条回答
写回答
取消 提交回答
  • 错误的含义:该方法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);
    
    2020-01-04 11:03:22
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
继承与功能组合 立即下载
Flash Player最新安全特性分析 及绕过思路 立即下载
Flash Player最新安全特性分析及绕过思路 立即下载