4

NetBeans 6.9.1でSummarizerプロジェクトを作成しています。「参照」ボタンがあり、JFileChooserでダイアログボックスを開く必要があります。私はここを見ました:stackoverflowに関する非常によく似た質問

私の問題はまったく同じです。stackoverflowの別の同様の質問で試した現在のディレクトリを設定しようとしましたが、それでも私のPCでは機能しません。

私はまだ一体何が私のエラーであるかを理解することはできません。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);
            }
        });
    }             

コードの他の部分が必要かどうか教えてください、そして助けてください。今、頭をかいてます。

4

2 に答える 2

1

あなたの問題はFile、EDT のディスクからの読み取りにあることをお勧めします。

 //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());
于 2011-07-20T01:54:31.880 に答える
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);
    }

}
于 2011-07-20T00:28:50.560 に答える