我在eclipse中使用Window Builder插件来制作所有可视化组件,并且我添加了一个JTable,起初它是一个简单的JTable,并且它正确地显示了数据。由于我需要 JTable 的数据不可编辑,因此我创建了一个模型来使用 isCellEditable 方法。我的代码是这样的。
public class MyTableModel extends AbstractTableModel {
private static final long serialVersionUID = 1L;
private String[] columnNames;
private Object[][] data;
public MyTableModel(Object[][] sentdata, String[] cnames){
columnNames = cnames;
data = sentdata;
}
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getRowCount() {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
return null;
}
public boolean isCellEditable (int row, int column){
return false;
}
}//fin del modelo
在类的构造函数中是这样的
String[] NombresdeColumnas = {"Nombre del Producto", "Cantidad en Inventario", "Precio Unitario"};
RegistroInventario inventariodatos = new RegistroInventario();
Object[][] data = inventariodatos.regresarInventario();
MyTableModel model1 = new MyTableModel(data, NombresdeColumnas);
Table_Inventario = new JTable(model1);
Table_Inventario.setGridColor(Color.gray);
JScrollPane scrollPane_1 = new JScrollPane();
scrollPane_1.setViewportView(Table_Inventario);
它没有显示任何内容,但是当我这样做时:
Table_Inventario = new JTable(data, NombresdeColumnas);
它工作得很好,我不知道这个错误是否与 Eclipse 中的 Window Builder 相关,或者是在代码中,因为我是新做 JTables 的。
最佳答案
您的问题是
中的return 0;
public int getColumnCount() {
和
public int getRowCount() {
使用 DefaultTableModel
代替,确定将 AbstractTableModel
用于 Object[][]
数据或 是否存在真正重要的问题> vector 的 vector
使用 AbstractTableModel
让我对基于 HashMap
或 java.util.List
e.i. 的模型有意义
关于java - AbstractTableModel 中的 JTable 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13111979/