簡體   English   中英

來自AbstractTableModel的JTable不顯示

[英]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可以使基於HashMapjava.util.List ei的模型成為現實

您的AbstractTableModel不包含任何數據。

通過實現getColumnCountgetRowCount方法,可以表明它包含零行和零列。

即使調整這些方法,也不會使用在構造函數中傳遞的數據,因為您總是在getValueAt方法中返回null

我認為您應該開始閱讀表格教程中的“如何創建TableModel部分

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM