2017-04-25 63 views
0

我有兩個表,我需要將table_3中特定單元格的值添加到table_4 ..但它不工作。請幫忙嗎?錯誤:java.lang.ArrayIndexOutOfBoundsException:0> = 0

代碼:

JTable table_3 = new JTable(TableModel2); 
final JTable table_4 = new JTable(TableModel3); 


JButton btnAdd = new JButton("add"); 
btnAdd.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
    int row = table_3.getSelectedRow(); 
    int column = table_3.getSelectedColumn(); 
    Object selectedPlanet = TableModel2.getValueAt(row, column); 
    int columnContainingPlanets = 0; 

    for (int index = columnContainingPlanets; index < TableModel3.getRowCount();index ++){ 
      Object value = TableModel3.getValueAt(index, columnContainingPlanets) ; 
      if (value == selectedPlanet) { 
      JOptionPane.showMessageDialog(panel_10,"This item was selected ,Please select another item"); 
      return; }} 

    TableModel3.addRow(new Object[] { selectedPlanet }); 
      } 
     }); 
+1

變量名不應該與一個大寫字母開頭。有些是正確的,有些則不是。始終如一!變量名稱也應該是描述性的。 「3和4」不是很具描述性。模型名稱更糟(「2和3」)。至少模型名稱應該與表格名稱匹配,以便我們知道哪個模型屬於哪個表格。我們不能說爲什麼表沒有更新。您是否添加了調試語句來驗證代碼是否被執行?如果你需要更多的幫助發佈一個合適的[mcve]來證明問題。並確保代碼格式正確,以便可讀。 – camickr

+0

是的,這是正確的,但不影響代碼運行,無論如何thanx的建議。 –

+0

還在等你[mcve]。 – camickr

回答

1

仍在等待您的Minimal, Complete, and Verifiable Example(MCVE)。是什麼讓你認爲這個問題出現在你發佈的代碼中?在問題解決之前,每個問題都應該有一個簡單的例子來說明證明你試圖簡化問題以更好地進行調試的問題。

發佈錯誤消息而不指出導致問題的代碼行的要點是什麼?再次發佈MCVE的另一個原因。直到問題得到解答,您纔會知道需要哪些信息來解決問題。

沒有所有的信息,我們所能做的只是猜測。

作爲論壇的新手,你會得到一個猜測。未來的問題將需要MCVE

我的猜測是「tableModel3」沒有任何列,所以你不能添加一行到包含一列數據的模型。

所以模型應與代碼像創建:

String[] columnNames = { "Planets" }; 
DefaultTableModel tableModel3 = new DefaultTableMNodel(columnNames, 0); 
+0

您的猜測是正確的,對不起,我會在下一次您的建議工作。 thanx爲您的努力.. –

相關問題