有没有办法从 jtable 下载选定的行?
Is there a way to download a selected row from a jtable?
我希望能够从 jtable select 一行并将其下载到 .txt 文件。不是整个数据库只是 selected 行。这可能吗?
目前我正在做的是选择行并将它们传输到单独的 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);
}
}
但我想提高效率,在网上找不到任何地方显示如何将 selected 行直接下载到文件中。感谢任何帮助,谢谢!
编辑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");
我希望能够从 jtable select 一行并将其下载到 .txt 文件。不是整个数据库只是 selected 行。这可能吗?
目前我正在做的是选择行并将它们传输到单独的 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);
}
}
但我想提高效率,在网上找不到任何地方显示如何将 selected 行直接下载到文件中。感谢任何帮助,谢谢!
编辑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");