猿问

从 GUI 类调用字符串 - VariableDeclarators 错误

我创建了一个程序来浏览 excel 文件并使用windowbuilder和Apache POI修改它。


我为文件路径创建了一个公共字符串,如下所示。


public class UI {


    public static String filename;


JFileChooser chooser = new JFileChooser();

                FileNameExtensionFilter filter = new FileNameExtensionFilter("MS Excel Files", "xlsx");

                chooser.setFileFilter(filter);

                chooser.showOpenDialog(null);


                File file= chooser.getSelectedFile();

                filename=file.getAbsolutePath();    

并在主代码中调用字符串以获取文件路径以继续该过程。


public static void main (String[]args) throws Exception {


    UI.filename;


    File file= new File(filename);

    FileInputStream fis= new FileInputStream (file);

    XSSFWorkbook wb = new XSSFWorkbook(fis);

    XSSFSheet sheet1= wb.getSheetAt(0);

当我运行 GUI 时,我收到以下错误消息,


语法错误,插入“VariableDeclarators”完成 LocalVariableDeclaration 文件名无法解析为变量


new File(filename);

这部分应该是这样的


File file= new File("C:\\Users\\Desktop\\Project\\Data.xlsx");

在这方面的任何建议将不胜感激。


守着一只汪
浏览 315回答 1
1回答

慕村9548890

Java 中的所有代码都需要在“可执行”上下文中执行。在您的情况下,这意味着类中的方法。您需要首先更改您的UI类以提供static执行您想要的操作的方法......public class UI {    public static File selectFile() {        JFileChooser chooser = new JFileChooser();        FileNameExtensionFilter filter = new FileNameExtensionFilter("MS Excel Files", "xlsx");        chooser.setFileFilter(filter);        chooser.showOpenDialog(null);        return chooser.getSelectedFile();    }然后您需要更新您的main方法以利用此更改...public static void main (String[]args) throws Exception {    EventQueue.invokeLater(new Runnable() {        @Override        public void run() {            File file = UI.selectFile();            if (file == null) {                System.out.println("No file selected");            }            FileInputStream fis= new FileInputStream (file);            XSSFWorkbook wb = new XSSFWorkbook(fis);            XSSFSheet sheet1= wb.getSheetAt(0);        }    });
随时随地看视频慕课网APP

相关分类

Java
我要回答