2015-06-16 40 views
1


我一直在尝试将一些数据从Editable JComboBox发送到JXTable。它的代码是这样的:DefaultTableModel不接受对象类型

private void selectTestActionPerformed(java.awt.event.ActionEvent evt) {           
    JTextField editorComponent = (JTextField) testName_cb.getEditor().getEditorComponent(); 
    System.out.println(editorComponent.getText()); 
    String data = editorComponent.getText(); 
    Object row = data; /* String to Object casting */ 
    DefaultTableModel model = (DefaultTableModel) testsSelected_table.getModel(); 
    model.addRow(row); /* Error : Cast row to Object or Vector */ 
} 

但这种方法model.addRow(row);的最后一行说:​​3210,这已经是。
我可能会缺少一些概念或逻辑部分作为初学者。所以想到在这里发布一个问题。有人可以指出我的错误吗?我会感激地接受任何建议。

谢谢!

+1

它应是一个'对象[]'。你可以做'row = new Object [] {data};'假设你想要的行只有一列或者数据。否则,您可以使用'model.setValueAt(value,row,col)'设置一个值,如果这就是您真正想要做的事情 –

+0

请参阅['DefaultTableModel']的API(http://docs.oracle.com .com/javase/7/docs/api/javax/swing/table/DefaultTableModel.html) –

+0

应该声明哪一行显示为?如果我使用'row = new Object [] {data};' – mustangDC

回答

0

它应该是一个Object[]。你可以做Object[] row = new Object[] { data };,假设你想要的行只有一列或数据。

否则,您可以使用model.setValueAt(value, row, col)来设置单个值,如果这就是您真正想要做的。

对于一般参考文献,参见

+0

干杯和谢谢 – mustangDC

相关问题