0

EclipseでWindowBuilderプラグインを使用してすべてのビジュアルコンポーネントを作成し、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);

それは問題なく機能していました。エラーがウィンドウビルダーのフォームの日食に関係しているのか、コード内でJTableを新しく提供しているのかわかりません。

4

2 に答える 2

2

あなたAbstractTableModelにはデータが含まれていません。

getColumnCountandgetRowCountメソッドの実装によって、ゼロ行とゼロ列が含まれていることを示します。

また、これらのメソッドを調整する場合でも、メソッドで常に返すため、コンストラクターで渡されたデータを使用しませnullgetValueAt

テーブル チュートリアルの「How to create a TableModelセクションを読み始める必要があると思います。

于 2012-10-28T19:13:30.460 に答える
2

あなたの問題return 0;

public int getColumnCount() {

public int getRowCount() {

代わりに使用してください。データに使用するDefaultTableModel本当に重要な問題がないかどうかを確認してくださいAbstractTableModelObject[][]Vector of Vectors

AbstractTableModelmake me sence for model based onHashMapまたはjava.util.Listeiの使用法

于 2012-10-28T19:02:52.983 に答える