我正在NetBeans 6.9.1中创建一个Summarizer项目,因为我有一个“浏览”按钮,它应该在JFileChooser上打开一个打开的对话框。我查看了这里: very similar question on stackoverflow
我的问题是一样的,我尝试设置当前目录,该目录在stackoverflow上尝试了另一个类似的问题,但即使这样也无法在我的电脑上运行。
我仍然无法弄清楚我的错误到底是什么。我认为事情没有在EDT上运行也是同样的错误。我使用netbeans,代码很大。我无法找到在哪里更改EDT的事情。所以我只发布它的相关部分。请看看并告诉我如何解决我的问题?
private void cmdBrowseActionPerformed(java.awt.event.ActionEvent evt) {
jFileChooser1.setCurrentDirectory(new File("F:/BE-Project/Summarizer"));
jFileChooser1.setDialogTitle("Open File");
jFileChooser1.setFileSelectionMode(JFileChooser.FILES_ONLY);
int returnVal = jFileChooser1.showOpenDialog(Summarizer.this);
if (returnVal== JFileChooser.APPROVE_OPTION) {
try {
fin = jFileChooser1.getSelectedFile();
fileContents = Files.readFromFile(fin,"ISO-8859-1");
tAreafileContents.setText( fileContents );
txtInputFile.setText( fin.getAbsolutePath() + " -- " + fin.getName());
tAreafileContents.setCaretPosition(tAreafileContents.getDocument().getLength());
}
catch (Exception e) {
System.out.println(e);
}
}
else System.out.println("there is some error");
}
/* netbeans generated code */
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Summarizer().setVisible(true);
}
});
}
如果需要任何其他代码,请告诉我,请帮忙。我现在正在挠头。
答案 0 :(得分:1)
我建议您的问题是在EDT中从磁盘读取File
。
//this should be in a worker thread
fileContents = Files.readFromFile(fin,"ISO-8859-1");
//this then gets dumped back on the EDT
tAreafileContents.setText( fileContents );
txtInputFile.setText( fin.getAbsolutePath() + " -- " + fin.getName());
tAreafileContents.setCaretPosition(tAreafileContents.getDocument().getLength());
答案 1 :(得分:0)
您确定只是JFileChooser问题吗? 你的F:单位是硬盘,网络共享,USB驱动器吗?如果不是,您可以尝试将设备更换为硬盘吗? 在netbeans和命令行中运行这些测试,读取F:上的文件和其他与F
不同的单元import java.io.*;
public class FileSize
{
public static void main(String [] args)
{
//String fileName = "F:/BE-Project/Summarizer/someFile.txt");
String fileName = "FileSize.java";
long size = new File(fileName).length();
System.out.println("size: " + size);
}
}