2010-09-18 73 views
2

我使用NetBeans开发java dextop应用程序,我创建了一个JFilechooser,它将让用户保存创建的新文件。netbeans中的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."); 
    } 
} 

如何解决这个问题?

回答

4

它期待java.awt.Component的实例作为showSaveDialog()方法的参数,但是您没有传递有效的参数。

你有2种选择:

  1. 只是通过null而不是this

  2. 让类netsim.NetSimView延伸java.awt.Component

提示:第一句中那些蓝色的代码事物实际上是链接。点击并学习。

3

这就是您需要抛开NetBeans和RTM的魔力的地方。

JFileChooser.showSaveDialog(Component)的JavaDocs明确声明参数必须是组件(或通过含义,扩展组件)。

组件用于为选择器提供位置。

更深入的文档。加。

​​