0

いくつかのユーザー イベントを実行するためのユーザー インターフェイスを提供する Java プロジェクトを使用しています。ほとんどの Swing/Gui アプリケーションのように、main() で Runnable スレッドとして実行されていません。むしろ、ソース コードにいくつかのクラス ファイルとフォーム ファイルが含まれており、別の Java プログラムを使用してコマンド ラインから実行されます。しかし、入力ボタンをクリックして特定のファイルを読み取ろうとすると、システムはファイルの読み取りに失敗します。カスタム エラー メッセージは、プロジェクト フォルダー内に保存されている log.txt という名前のファイルに書き込まれます。試してみました 1. ブレークポイントの設定 (アプリケーションはブレークポイントで停止しません) 2. コンソール プリント、すなわち System.out.println の実行 (コンソールにプリントはありません)

したがって、デバッグの両方の方法が失敗しました。Eclipse 3.5.2 SDK (Galileo) を使用しています。アプリケーションでユーザー イベントをデバッグするにはどうすればよいですか?

プロジェクト DDMT のソース クラス DataImportPanel の概要を以下に示します。メソッド DataImportPanel.openHeteroFile(File) で例外が発生しています。

DDMT.core.DataImportPanel 
... 
DDMT.core.DataImportPanel.heteroDistributionModel 
...  
DDMT.core.DataImportPanel.initComponents() 
DDMT.core.DataImportPanel.initComponents().new ActionListener() {...} 
...
DDMT.core.DataImportPanel.initComponents().new MouseAdapter() {...} 
DDMT.core.DataImportPanel.initComponents().new ActionListener() {...} 
DDMT.core.DataImportPanel.jButton2ActionPerformed(ActionEvent) 
... 
DDMT.core.DataImportPanel.jButton3ActionPerformed(ActionEvent) 
DDMT.core.DataImportPanel.openHeteroFile(File) 
DDMT.core.DataImportPanel.jButton8ActionPerformed(ActionEvent)  
DDMT.core.DataImportPanel.openFile(File) 
DDMT.core.DataImportPanel.jButton15ActionPerformed(ActionEvent) 
DDMT.core.DataImportPanel.jRadioButton1ActionPerformed(ActionEvent)  
DDMT.core.DataImportPanel.buttonGroup1  
...
DDMT.core.DataImportPanel.jButton8 
DDMT.core.DataImportPanel.jButton9 
DDMT.core.DataImportPanel.jLabel1 
... 
DDMT.core.DataImportPanel.jList1 
... 
DDMT.core.DataImportPanel.jPanel1 
... 
DDMT.core.DataImportPanel.jRadioButton1 
...
DDMT.core.DataImportPanel.jScrollPane1 
... 
DDMT.core.DataImportPanel.jTabbedPane1 
DDMT.core.DataImportPanel.DistributionTypes 
DDMT.core.DataImportPanel.DoubleCellRenderer

これは、データ インポート例外をスローしている openHeteroFile です。

private void openHeteroFile(File f)
{
    File file = null;
    try{
        file = f;
        file.createNewFile();
        FileReader reader = new FileReader(file);
        BufferedReader bReader = new BufferedReader(reader);

        //The vector that holds the number of columns
        attributeNames = new ArrayList<String>();

        //Read in the number of pairs
        String line = bReader.readLine();

        //load the file
        heteroDistributionModel = new DefaultListModel();
        line = bReader.readLine();
        while( line != null )
        {
            //Set up the RegEx matches
            heteroDistM = heteroDistP.matcher(line);
            firstM = firstP.matcher(line);
            firstM.find();
            String output1 = firstM.group()+" (";
            for( int j = 0; j< nodeTypes[0].length; j++)
            {
                if( controlClass.nodes[Integer.parseInt(firstM.group())].getNodeType().equals( nodeTypes[1][j]) )
                {
                    output1 = output1+nodeTypes[0][j]+")";
                }
            }
            String output2 = new String();
            while( heteroDistM.find() )
            {
                attributeNames.add(heteroDistM.group(1));
                output2 = output2 + " "+heteroDistM.group(1);
            }
            heteroDistributionModel.addElement(new String[]{output1, output2});
            line = bReader.readLine();
        }

        for (String attr : attributeNames) 
            System.out.println(attr); //debug


        jList3.setModel(heteroDistributionModel);
        jList3.setCellRenderer(new DoubleCellRenderer());
        bReader.close();
        reader.close();
    }catch(IOException ex)
    {
        controlClass.showError("Data Import: Error: File "+file.getPath()+" is not a valid Heterogeneous data file!");
    }catch(Exception ex)
    {
        ex.printStackTrace(); //debug
        controlClass.showError("Data Import: Error: Unknown problem reading file "+file.getPath()+"!");
    }
}
4

1 に答える 1

1

デバッガーを起動する実行ボタンのすぐ横に小さな緑色のてんとう虫があります。

適切な呼び出しが行われていることを確認します。また、コードが実際に読み取られていることを確認するために、ブラケット、ブレーク、およびリターンを確認してください。SSCCE (Short, Self Contained, Correct Example) を投稿してください。そうすれば、コードを表示してより適切な支援を行うことができます。

編集(OPがいくつかのコードを追加した後)

あなたの問題はどこにあると確信しています file.createNewFile();

于 2012-07-05T12:52:45.867 に答える