我创建了一个程序来浏览 Excel 文件并使用 windowbuilder 和 Apache POI 对其进行修改.
我为文件路径创建了一个公共(public)字符串,如下所示。
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();
并在主代码中调用 String 来获取文件路径以继续该过程。
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 时,收到以下错误消息,
Syntax error, insert "VariableDeclarators" to complete LocalVariableDeclaration filename cannot be resolved to a variable
new File(filename);
这部分应该是这样的
File file= new File("C:\\Users\\Desktop\\Project\\Data.xlsx");
任何这方面的建议将不胜感激。
最佳答案
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);
}
});
关于java - 从 GUI 类调用字符串 - VariableDeclarators 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51815852/