簡體   English   中英

netbeans-自定義表模型未顯示在設計視圖中

[英]netbeans - Custom table model not showing in design view

我正在嘗試在Java桌面應用程序中使用自定義TableModel。 GUI是使用NetBeans制作的。 但是問題是,當我使用DefaultTableModel時,可以在GUI的設計視圖中看到我的表。

在此處輸入圖片說明

但是,當我使用自定義TableModel時,盡管在運行應用程序時將顯示它,但它不會顯示在設計視圖中。

在此處輸入圖片說明

似乎是什么問題?

自定義表格模型代碼

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);

子類化JTable,然后可以將自定義JTable拖動到Netbeans設計器中,而不是將其拖到常規JTable中,並且自定義模型將已經可見。

例如。

將此文件作為CustomerTable.java放入您的項目中

public class CustomerTable extends JTable {

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

選擇文件,然后從菜單中選擇運行->編譯文件。 (或按F9鍵)

從Netbeans設計視圖中刪除您擁有的JTable,然后將CustomerTable.java從項目窗口拖到設計視圖中。

在設計器中自定義jtable

暫無
暫無

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

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