【发布时间】:2014-07-22 12:45:13
【问题描述】:
我有一个相当简单的程序,一旦将一些数据输入JTable,就可以将其导出或“保存”到 Excel 电子表格中。所有这一切都工作正常,它正在完美地制作一个保存的 excel 文件。
我遇到的问题是这样的:
当您尝试将 excel 文件放在桌面文件夹(桌面/文件夹)的子文件夹中时,它会将其保存在桌面上; 但它只在 Mac 上执行此操作。
当我在 Windows 计算机上执行此操作时,它 100% 的时间都可以工作。
我想知道是否有人对此问题有任何见解或解决方法?
这是我的JFileChooser 代码,理论上会导致问题。
JFileChooser fc = new JFileChooser();
fc.setSelectedFile(new File(jTextField3.getText() + jTextField6.getText() + "-" + jTextField7.getText() + "-" + jTextField8.getText()));
int option = fc.showSaveDialog(PScalcUI.this);
if(option == JFileChooser.APPROVE_OPTION){
String filename = fc.getSelectedFile().getName();
String path = fc.getSelectedFile().getParentFile().getPath();
int len = filename.length();
String ext = "";
String file = "";
if(len > 4){
ext = filename.substring(len-4, len);
}
if(ext.equals(".xls")){
file = path + "\\" + filename;
}else{
file = path + "\\" + filename + ".xcl";
}
toExcel(jTable1, new File(file));
}
【问题讨论】:
-
请考虑在您的问题中添加Minimal, Complete, and Verifiable example,以便其他人可以测试您面临的行为。
-
不要在路径中使用反斜杠 (
\) - 使用正斜杠 (/)。它在 Windows 上没有任何区别,但在大多数其他平台(包括 OS X)上会让你头疼。 -
不要使用平台相关的字符串。要么使用
File.separator,要么使用构造函数new File(String parent, String child) -
为什么关闭?该帖子遵守所有 MCVE 规则:它很小,但很完整(如果您不知道如何在某些代码周围放置
main方法,那么您不应该在这里)并且它清楚地描述了问题:当他尝试将文件放在桌面的子文件夹中,但它最终出现在桌面上,但仅在 Mac 上;不在 PC 上。 Bot @Mac 和我可以毫不含糊地轻松理解问题。
标签: java excel swing jtable filechooser