我一直在尝试从这个网站上学习这些Java教程
http://www.homeandlearn.co.uk/java/java.html
然而,教程是在Netbeans中,我正在使用Eclipse。
直到现在,直到现在还没有遇到任何困难。 http://www.homeandlearn.co.uk/java/opening_files.html在给定的教程中,使用JFileChooser通过名为“Open”的JMenuItem打开文件。但是,当我使用网站上给出的代码时,会发生以下错误
JFileChooser类型中的方法showOpenDialog(Component)不适用于参数(new ActionListener(){})
这是发生错误的代码。
JMenuItem mntmNewMenuItem = new JMenuItem("Open");
mntmNewMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
int returnVal = db.showOpenDialog(this);
}
});
所以,我的问题是,我应该在上面的代码存根中更改什么才能使用文件选择器?
如果您想查看整个代码,我会将其放入您的请求中。
答案 0 :(得分:1)
错误的含义:方法name a b
foo 4 1
bar 3 7
bar 1 2
需要showOpenDialog
类型的参数,但使用Component
进行调用。更确切地说,给定参数是实现ActionListener
而不是ActionListener
的匿名类:
Component
在我使用new ActionListener() { ... }
的地方声明的方法中,关键字. . .
指向该匿名类的实例。
请参阅showOpenDialog()
的文档,它需要父母或this
:
弹出一个"打开文件"文件选择器对话框。注意那个文字 出现在批准按钮中由L& F确定。
参数:
null
showDialog()
的相关文档:
父参数确定两件事:打开的框架 对话框取决于具有外观和位置的组件 在放置对话框时考虑。 ... 如果父级为null,则对话框取决于没有可见窗口,并且 它被放置在依赖于外观的位置,例如中心 屏幕。
通常传递的参数是在视觉上包含对话框的parent - the parent component of the dialog, can be null; see showDialog for details
或JFrame
,但它可以是JPanel
:
null