2011-03-19 64 views
3

我在NetBeans 6.9.1中做了一个Summarizer项目,因为我有一个“浏览”按钮,它应该打开一个打开的对话框JFileChooser中。我看了一下这里: very similar question on stackoverflowjFileChooser.showOpenDialog()冻结应用程序..没有错误/异常..尝试了几件事

我的问题是一样的,我试图设置当前目录,这是在另一个类似的问题上在stackoverflow尝试,但即使这不起作用在我的电脑上。

我还不能确定什么是我的错误。我认为这些东西没有在EDT上运行是一样的错误。我使用netbeans,代码很大。我无法找到在哪里改变美国东部时间的事情。所以我只会发布相关部分。请看看并告诉我我需要做些什么来解决我的问题?

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); 
      } 
     }); 
    }    

请告诉我,如果需要其他部分代码,请帮助。我现在正在挠头。

+3

“请告诉我是否需要其他代码部分..”为了更快地获得更好的帮助,请发布SSCCE(http://pscode.org/sscce.html)。一个SSCCE可能会告诉我和其他人在什么*安全环境*这个代码被调用。请注意,如果存在安全沙箱,则“else”将永远不会到达。 – 2011-03-19 07:35:41

+0

@andrew感谢至少照顾回复..我会要求你不要添加到我的并发症......我已经在修复因为jfilechoser冻结我的应用程序...你只增加更多的复杂性我提到的东西像SSCCE ..我现在不需要东西 – 2011-03-20 15:30:40

+0

@andrew关于我的申请,你需要什么其他信息?它只是netbeans中的一个简单的按钮..购买“代码的其他部分”我的意思是任何部分的大型netbeans自动生成的代码,你可能需要尝试解决我的问题..我认为我的问题似乎是jfilechooser需要太长时间无法访问文件系统..这就是为什么它冻结我的应用程序..但我似乎无法弄清楚为什么它需要这么长时间,它冻结我的应用程序..真正的问题 – 2011-03-20 15:33:59

回答

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); 
    } 

} 
+0

感谢awi回复...这是我最后一年的项目..我已经停止工作了2个月以前..我没有使用jFileChooser,因为它没有工作..虽然我不记得我用了什么(我还没有碰过它因为超过2个月)..但仍然感谢回复..我会肯定尝试下一次把我的手放回去.. - – 2011-07-20 07:11:57

1

我建议你的问题是从美国东部时间磁盘读取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()); 
+0

谢谢akf回复...这是我最后一年engg项目..我已经停止了2个月以前的工作..我没有使用jFileChooser,因为它没有工作..虽然我不记得是什么我用过(我从2个多月以来没有碰过它)..但是仍然谢谢你的回复..我一定会在下一次把它放回去试试它.. – 2011-07-20 07:11:30

+0

我有同样的问题,它是EDT,谢谢akf – elect 2014-08-18 20:48:46