[英]JTable from AbstractTableModel not showing
我在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);
它工作正常,我不知道該錯誤是否與de Window Builder形式的日蝕有關,還是代碼中導致我新使用JTables。
您的問題是return 0;
在
public int getColumnCount() {
和
public int getRowCount() {
請改用DefaultTableModel
,確定是否對Object[][]
數據或Vector of Vectors
使用AbstractTableModel
並不是真正重要的問題
使用AbstractTableModel
可以使基於HashMap
或java.util.List
ei的模型成為現實
您的AbstractTableModel
不包含任何數據。
通過實現getColumnCount
和getRowCount
方法,可以表明它包含零行和零列。
即使調整這些方法,也不會使用在構造函數中傳遞的數據,因為您總是在getValueAt
方法中返回null
。
我認為您應該開始閱讀表格教程中的“如何創建TableModel
”部分
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.