【问题标题】:Java cannot find symbol symbol : method getFiles()Java找不到符号符号:方法getFiles()
【发布时间】:2015-05-01 18:08:15
【问题描述】:

我正在尝试在 ImageJ 插件中使用 java.awt.FileDialog,但由于某种原因,我收到一个错误,即 Java 找不到 getFiles 方法:

C:\File_Opener3.java:50: 找不到符号符号:方法 getFiles() 位置:类 java.awt.FileDialog fd.getFiles(); ^ 1 个错误

我在尝试 setMultipleMode 时遇到了类似的错误,但 setVisible 和 getFile 等其他方法可以正常工作。谁能告诉我我做错了什么?

import ij.plugin.*;
import ij.*;
import ij.io.*;
import java.io.*;
import javax.swing.*;
import javax.swing.filechooser.*;

import ij.gui.*;
import ij.plugin.frame.Recorder;
import ij.util.Java2;
import ij.macro.Interpreter;
import java.awt.*;

import java.awt.FileDialog;
import java.awt.Frame;

// Try to figure out why this only allows list veiw
public class File_Opener3  implements PlugIn {
    //static File dir;

    private static Frame sharedFrame;
    private String dir;
        private String name;

    public void run(String arg) {
        openFiles();
        IJ.register( File_Opener .class);
    }

    public void openFiles() {
        Frame parent = IJ.getInstance();
        if (parent==null) {
            if (sharedFrame==null) sharedFrame = new Frame();
                parent = sharedFrame;
            }
        FileDialog fd = new FileDialog(parent, "title"); // From Java.awt.FileDialog
        fd.setVisible(true);
        //fd.setMultipleMode(true);
        name = fd.getFile();
            if (name==null) {
                if (IJ.isMacOSX())
                    System.setProperty("apple.awt.fileDialogForDirectories", "false");
                Macro.abort();
            } else
                dir = fd.getDirectory();


        //File[] files = fd.getFiles();
        fd.getFiles();
        //IJ.log("48 fd.getFilenameFilter(): "+fd.getFilenameFilter());
        Opener opener = new Opener();
        //opener.openMultiple();
/*      for (int i=0; i<files.length; i++) {
            ImagePlus img = opener.openImage(path, files[i].getName());
            if (img!=null)
                img.show();
        }    */    
    }

}

【问题讨论】:

    标签: java imagej filedialog


    【解决方案1】:

    FileDialog.getFiles()FileDialog.setMultipleMode() 是在 Java 1.7 中引入的。您可能正在针对早期版本的 Java 进行编译。如果您使用的是 IDE,请检查为您的项目设置的源代码级别。

    【讨论】:

    • 很遗憾你是对的,我的“关于 ImageJ”说 Java 1.6.0,即使我安装了 1.8。
    • @user1639187 - 也许this FAQ 会有所帮助。 (或许不是。我对 ImageJ 一无所知。)
    • 谢谢 Ted,我只是在尝试,现在编译时出现“类文件的 52.0 版本错误,应该是 50.0”。
    • @user1639187 不幸的是,ImageJ 的脚本编辑器不适用于 Java 7+。这是known issue,我们计划在夏季结束前解决。但是脚本编辑器还有其他与 Java 插件开发相关的critical bugs。我建议使用 IDE 来开发你的插件;特别是,我衷心推荐 Eclipse。请参阅this guide 并使用minimal-ij1-plugin 项目作为起点。
    猜你喜欢
    • 2018-07-21
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 2021-02-08
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多