java - 有没有办法从 jtable 下载选定的行?

标签 java mysql download

我希望能够从 jtable 中选择一行并将其下载到 .txt 文件中。不是整个数据库只是选定的行。这可能吗?

目前我正在做的是选择行并将它们传输到单独的 jtable,然后使用此代码从那里下载进行传输。

DefaultTableModel model1 = (DefaultTableModel) Shortlist_Table.getModel();
            int[] indexs = Shortlist_Table.getSelectedRows();
            Object[] row = new Object[3];
            DefaultTableModel model2 = (DefaultTableModel) Final_Table.getModel();
            for(int i=0; i<indexs.length; i++)
        {
            row[0] = model1.getValueAt(indexs[i], 0);
            row[1] = model1.getValueAt(indexs[i], 1);
            row[2] = model1.getValueAt(indexs[i], 2);
            model2.addRow(row);
        }

然后使用此代码下载到 .txt 文件。

private void jButtonExportActionPerformed(java.awt.event.ActionEvent evt) {                                              

        String filePath = "C:\\Users\\omar\\Desktop\\myfolder\\txtfile.txt";
        File file = new File(filePath);
        try {
            FileWriter fw = new FileWriter(file);
            BufferedWriter bw = new BufferedWriter(fw);

            for(int i = 0; i < jTableExport.getRowCount(); i++){//rows
                for(int j = 0; j < jTableExport.getColumnCount(); j++){//columns
                    bw.write(jTableExport.getValueAt(i, j).toString()+" ");
                }
                bw.newLine();
            }

            bw.close();
            fw.close();

        } catch (IOException ex) {
            Logger.getLogger(JTable_import_and_export_to_text_file.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

但我想提高效率,但在网上找不到任何地方可以显示如何将所选行直接下载到文件中。感谢任何帮助,谢谢!

编辑2: 我一直在尝试想出一些办法,到目前为止我已经做到了:

try{
           File file = new File("/Users/lucacassin/NetBeansProjects/Recruitment\\ Project/HiredCandidatesTextFile.txt");
           if(!file.exists()){
               file.createNewFile();
           }

               try (FileWriter fw = new FileWriter(file.getAbsoluteFile()); BufferedWriter bw = new BufferedWriter(fw)) {

                   int row = Shortlist_Table.getSelectedRow();
                   bw.write(Shortlist_Table.getModel().getValueAt(row, 0)+" ");
                   bw.write(Shortlist_Table.getModel().getValueAt(row, 1)+" ");
                   bw.write(Shortlist_Table.getModel().getValueAt(row, 2)+" ");
                   bw.write("\n_________\n");


               }
           JOptionPane.showMessageDialog(null, "Data Exported");

           }catch(HeadlessException | IOException ex){
           } 

但是,它没有做任何事情,我不知道出了什么问题,因为没有抛出任何错误或任何事情,只是什么也没发生。有什么想法吗?

最佳答案

如果其他人需要它,我想出了如何做到这一点。与我上面的编辑类似,但我将完整的文件路径放在我应该只放置部分文件名的位置。现在可以多次运行而不会覆盖文件。

           try (FileWriter fw = new FileWriter("HiredCandidatesTextFile.txt",true); BufferedWriter bw = new BufferedWriter(fw)) {

                   int row = Shortlist_Table.getSelectedRow();
                   bw.write(Shortlist_Table.getModel().getValueAt(row, 0)+" ");
                   bw.write(Shortlist_Table.getModel().getValueAt(row, 1)+" ");
                   bw.write(Shortlist_Table.getModel().getValueAt(row, 2)+" ");
                   bw.write("\n_________\n");


               } catch (IOException ex) {
        Logger.getLogger(AddShortlist.class.getName()).log(Level.SEVERE, null, ex);
    }
           JOptionPane.showMessageDialog(null, "Data Exported");

关于java - 有没有办法从 jtable 下载选定的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60475832/

相关文章:

jquery - 通过 HTTPS 的 POST 请求导致错误 403(禁止)

python - 如何统计上一秒下载了多少数据? (FTP)

java - Eclipse 动态 Web 项目中缺少 WEB-INF 文件

android - 定期从远程数据库更新本地数据库的最佳方法

javascript - ajax请求成功但看不到我的数据

php - 使用 PDO 从 MySQL 表中每页选择并显示 N=50 条记录

ruby-on-rails - 确保从网页下载文件

java - spring mvc 模拟存储库

java - Android - 即使应用程序关闭时也在后台计算时间

java - 带邻域搜索的子集总和 - java