-1

トリガーされたときに次を表示する Jtable があります。

Jテーブル

元の形式を維持したまま、すべての内容をテキスト ファイルに書き込むにはどうすればよいですか。テキスト ファイルは次のようになります。

Line Number    Error   Solution Percentage(%)
 6               in     int       33%

これは私がこれまでに試したことです。しかし、値 6 だけがファイルに書き込まれています。任意のヘルプ。

私のコード(主要部分のみ):

private static final String[] columnNames = {"Line Number", "Error","Solution","Percentage (%)"};
static DefaultTableModel model = new DefaultTableModel(null,columnNames);
public static void DisplayMyJList(List<CaptureErrors> x) throws IOException
{
    String [] myErrorDetails = new String[x.size()];
    int i = 0;
    int line,percentage;
    String err, sol;
    String aLine;
    StringBuffer fileContent = new StringBuffer();
    for(CaptureErrors e: x)
    {
        Vector row = new Vector();
          row.add(e.getLinenumber());
          row.add(e.getMyfounderror());
          row.add(e.getMycorrection());
          row.add(e.getMyPercentage()+"%");
          model.addRow( row );
          for (int i1 = 0; i1 < model.getRowCount(); i1++) {

                Object cellValue = model.getValueAt(i1, 0);
                // ... continue to read each cell in a row
                fileContent.append(cellValue);
                // ... continue to append each cell value


            FileWriter fileWriter = new FileWriter(new File("C:\\Users\\Antish\\Desktop\\data.txt"));
            fileWriter.write(fileContent.toString());
            fileWriter.flush();
            fileWriter.close();

    }

更新これを2つのループで試したところ、次のようになりました。元のフォーマットを失いました:

コード:

String separator = System.getProperty( "line.separator" );

    try
      {
            BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file,true));
            PrintWriter fileWriter = new PrintWriter(bufferedWriter);

            for(int i1=0; i1<model.getRowCount(); ++i1)
            {
                  for(int j=0; j<model.getColumnCount(); ++j)
                  {     String names = columnNames[counter];
                        String s = model.getValueAt(i1,j).toString();

                        fileWriter.print(names +"    ");
                        fileWriter.append( separator );
                        fileWriter.print(s + "    ");
                        counter ++;
                  }
                  fileWriter.println("");
            }      
            fileWriter.close();

      }catch(Exception e)
      {

ここに画像の説明を入力

4

1 に答える 1

3

あなたのコードは完全ではありませんが、1 つ、おそらく 2 つのエラーが表示されます。

1) 2 つのループが必要です。1 つは行用で、もう 1 つは行のすべての列用です。投稿したコードは、「6」しか表示されない理由を説明する最初の列から値を取得することのみを示しています。

2) ファイルに書き込むコードは、2 つのループの外にある必要があります。コードの記述方法では、行ごとに新しいファイルを再作成します。つまり、ファイルには 1 行のデータしかありません。

于 2013-03-02T05:36:44.387 に答える