我正在使用netbeans开发java dextop应用程序,我创建了一个JFilechooser
,它允许用户保存创建的新文件。
但是以下代码中的int returnVal = newFileChooser.showSaveDialog(this);
行会出现此错误:
method showSaveDialog in javax.swing.JFileChooser cannot be applied to given types required: java.awt.Component found: netsim.NetSimView
此处类名为NetSimView
,源包为netsim
private void newMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
newFileChooser=new JFileChooser();
int returnVal = newFileChooser.showSaveDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = newFileChooser.getSelectedFile();
} else {
System.out.println("File access cancelled by user.");
}
}
如何解决此错误?
答案 0 :(得分:4)
它期望在java.awt.Component
方法中将showSaveDialog()
的实例作为参数,但您没有传递有效参数。
您有两个选择:
只需传递null
而不是this
。
让课程netsim.NetSimView
延伸java.awt.Component
。
提示:第一句中的那些蓝色代码实际上是链接。点击并学习。
答案 1 :(得分:3)
这是您需要将NetBeans的魔力与RTM放在一起的地方。
JFileChooser.showSaveDialog(Component)的JavaDocs明确声明参数必须是一个Component(或暗示,扩展组件的东西)。
组件用于为选择器提供位置。
进一步下载文档。添加。
参数: parent - 对话框的父组件,可以为null;看到 showDialog了解详情