java中的文件选择器
我试图在代码中使用文件选择器,但在java中的文件选择器,java,swing,jbutton,actionlistener,jfilechooser,Java,Swing,Jbutton,Actionlistener,Jfilechooser,我试图在代码中使用文件选择器,但在int returnVal=fc.showOpenDialog(FileChooserDemo.this);“中出现错误“非封闭类”。下面是我的代码。有没有猜到答案 browse_button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int returnVal = fc.showOpenDialog(FileChoo
int returnVal=fc.showOpenDialog(FileChooserDemo.this);“
中出现错误“非封闭类”
。下面是我的代码。有没有猜到答案
browse_button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int returnVal = fc.showOpenDialog(FileChooserDemo.this);
File file = fc.getSelectedFile();
log.append("Opening: " + file.getAbsolutePath() + "." + "\n");
String ab=file.getAbsolutePath();
System.out.println(ab);
}});
我在main方法中创建了
actionlistener
。您的问题是,您在一个静态方法中调用main(…)
,并试图使用FileChooserDemo。这个(对封闭类的引用)在这个静态方法中。这是行不通的,因为在静态世界中没有this
。解决方案是在非静态代码(如非静态方法或类的构造函数)中执行此操作。是的,我在添加了browse_按钮的地方创建了一个Jframe。其思想是,当单击browse_按钮时,应该出现文件选择器。我认为在创建操作侦听器之前,需要在代码中声明“fc”为final,或声明为class@Mad:不,final
在这里不起作用。如果这是问题所在,错误消息将明确说明这一点(正如我们都经历过的)。fc在代码中已经是最终的:/@hovercraftfullofees-yes-yes,抓住一根稻草:有什么方法可以在main方法中使用它吗?我的其余代码也在main方法中。当我在构造函数中使用它时,它给出了相同的错误:/Ok,我得到了我想要的。我只编辑了“int returnVal=fc.showOpenDialog(null);”@装满鳗鱼的气垫船你说得对。但我想现在使用“null”对mr是有效的。谢谢大家的帮助…@user841852:我建议你们不要在main方法或任何其他静态方法中这样做。main方法应该非常小,只需设置主要对象并启动它们,就是这样。