2016-09-17 40 views
-1

我想保存所有的信息後,我想從jtable刪除一行信息,我可以嗎?我想保存所有的信息後,我想從jtable刪除一行信息嗎?

private void buyButtonActionPerformed(java.awt.event.ActionEvent evt) {           
       try { 
      FileWriter writer = new FileWriter("BuyItem.txt", true); 
      writer.write(accNameTextField.getText() + "//" + jTextField1.getText() + "//" + jTextField3.getText() + "//" + jTextField4.getText() + "//" + jTextField5.getText() + "//"+ "\n"); 
      JOptionPane.showMessageDialog(null, "Iteam Bought"); 
      writer.close(); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    }  


private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {          
    int index = jTable1.getSelectedRow(); 
    TableModel model = jTable1.getModel(); 
    String Name = model.getValueAt(index, 0).toString(); 
    String Price = model.getValueAt(index, 1).toString(); 
    String Category = model.getValueAt(index, 2).toString(); 
    String Method_of_Delivery = model.getValueAt(index, 3).toString(); 
    String Condition = model.getValueAt(index, 4).toString(); 

    jtRowData.setVisible(true); 
    jtRowData.pack(); 
    jtRowData.setLocationRelativeTo(null); 
    jtRowData.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 

    jtRowData.jTextField1.setText(Name); 
    jtRowData.jTextField3.setText(Price); 
    jtRowData.jTextField4.setText(Category); 
    jtRowData.jTextField5.setText(Method_of_Delivery); 
    jtRowData.jTextField6.setText(Condition); 
+0

不知道這是我在這裏失明,但你的代碼在哪裏? –

+0

@JoeC我添加了關於如何從我的表中獲取值的代碼 –

回答

0

是的,你可以這樣做。但是,您需要訪問'JTable'?

我也建議將文件寫入東西搬進spearate線程,然後再打像這樣的東西:

// You invoke this method through a SwingWorker, ExecutorService or some other background service 
void someMethodTharRunsInBackground(final JTextField jTextField1, final JTable table) { 
    try(FileWriter writer = new FileWriter("BuyItem.txt", true)) { // try with resources 
     writer.write(accNameTextField.getText() + "//" + jTextField1.getText() + "//" + jTextField3.getText() + "//" + jTextField4.getText() + "//" + jTextField5.getText() + "//"+ "\n"); 
     writer.close(); 
    } 
    // lambda expression so you don't have to type new Runnable() { public void run() {} }; 
    SwingUtilities.invokeLater(() -> { 
     JOptionPane.showMessageDialog(null, "Iteam Bought"); 
     table.getModel.removeRow(rowNum); 
    }); 
} 
+0

我不明白嗎? –

+0

我更新了我如何從我的表中獲取數據的代碼 –

1

這真的歸結到你所使用的的TableModel實施。我建議創建自己的實現並將其注入到JTable中,以便完全控制行的移除方式。

相關問題