2017-04-25 64 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为您的努力.. –

相关问题