2014-10-08 87 views
0

我已经创建了一个表格查看器并显示了表格中的内容。现在我创建了一个名为save的按钮,它必须将表格的所有内容保存到一个文件。我创建了一个对话窗口给出文件名,但我没有得到如何将表中的完整数据保存到文本文件。那么我们如何将表中的完整数据保存到文本文件中。代码对话框如下如何将tableviewer的内容保存到swt中的文本文件中

Button btnSave= new Button(topComposite, SWT.BUTTON2); 
     btnSave.setText("Save"); 
     //btnSave.addSelectionListener(new OpenFiler()); 



     btnSave.addSelectionListener(new SelectionAdapter() { 
      @Override public void widgetSelected(final SelectionEvent e){ 
       FileDialog dialog = new FileDialog(shell, SWT.SAVE); 
       dialog.setText("Save"); 
       String[] filterExt = { "*.log" }; 
       dialog.setFilterNames(filterExt); 
       String absolutePath = dialog.open(); 
       if (absolutePath == null) 
        return; 
           dialog.setFilterExtensions(new String[] { "*.log" });               dialog.setFilterPath("c:\\"); // Windows path 
         } 
     }); 

请帮我一下,我们如何将表中的完整数据保存到文本文件中。

回答

1

使用此代码。 viewer是您的表格查看器的实例。将此代码添加到按钮btnSaveaddSelectionListener方法的末尾。

TableItem[] items = viewer.getTable().getItems(); 
    File fl = new File(dialog.getFilterPath() + File.separator + dialog.getFileName()); 
    FileWriter flwr; 
    int cls = viewer.getTable().getColumnCount(); 
      try { 
       flwr = new FileWriter(fl); 
       for (int i = 0; i < items.length; i++) { 
        for (int j = 0; j <= cls; j++) { 
         flwr.write(items[i].getText(j) + "\t"); 
        } 
        flwr.write("\n"); 
       } 
       flwr.flush(); 
       flwr.close(); 
      } catch (IOException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 
相关问题