netbeans - 自定义表模型未在设计视图中显示

时间:2016-01-07 09:51:50

标签: java netbeans

我试图在我的java桌面应用程序中使用自定义TableModel。 GUI是使用NetBeans创建的。 但问题是当我使用DefaultTableModel时,我可以在GUI的设计视图中看到我的表。

enter image description here

但是当我使用我的自定义TableModel时,它不会显示在设计视图中,尽管它在我运行应用程序时显示。

enter image description here

什么似乎是问题?

自定义表型号代码

public class BillingTableModel extends AbstractTableModel implements TableModel {

    String columnNames[] = {
        "Name", "Address", "1", "2", "3"
    };

    Object data[][] = {
        {null,null,null,null,null},
        {null,null,null,null,null},
        {null,null,null,null,null},
        {null,null,null,null,null},
        {null,null,null,null,null}
    };  
    Class types[] = new Class [] {
        String.class, String.class, String.class, String.class, String.class 
    };

    @Override
    public Class<?> getColumnClass (int columnIndex) {
        return types[columnIndex].getClass();
    }

    @Override
    public String getColumnName(int column) {
        return columnNames[column];
    }

    @Override
    public int getRowCount() {
        return data.length;
    }

    @Override
    public int getColumnCount() {
        return columnNames.length;
    }

    @Override
    public Object getValueAt(int row, int col) {
        return data[row][col];
    }

    @Override
    public boolean isCellEditable (int row, int col) {
        if (col >= 2) 
            return true;
        else
            return false;
    }


    @Override
    public void setValueAt(Object value, int row, int col) {
        data[row][col] = value;
        fireTableCellUpdated(row, col);
    }

}

我编辑了默认代码以包含我的类

customerTable = new javax.swing.JTable();

customerTable.setModel(new BillingTableModel());



tableScrollPane.setViewportView(customerTable);

1 个答案:

答案 0 :(得分:1)

子类JTable,然后您可以将自定义JTable拖动到Netbeans设计器而不是常规JTable,并且您的自定义模型已经可见。

例如

将此文件作为CustomerTable.java

放入项目中
public class CustomerTable extends JTable {

    public CustomerTable() {
        this.setModel(new BillingTableModel());
    }
}

选择文件,然后选择运行 - &gt;从菜单编译文件。 (或按F9)

从Netbeans Design视图中删除您拥有的JTable,然后将CustomerTable.java从项目窗口拖到设计视图中。

custom jtable in designer