2011-12-04 28 views
1

使用TableFilterDemo示例,我試圖在NetBeans中創建RowFilter,但我不能。我試了JCreator中的code;我需要幫助。NetBeans中我的JTable模型的變量名稱是什麼

我知道我不需要創建class MyTableModel extends AbstractTableModel,因爲我已經在NetBeans GUI工具中手動執行了此操作。現在,我在使用RowSorter定義模型時遇到問題。

MyTableModel model = new MyTableModel(); 
sorter = new TableRowSorter<MyTableModel>(model); 
table = new JTable(model); 
table.setRowSorter(sorter); 
table.setPreferredScrollableViewportSize(new Dimension(500, 70)); 
table.setFillsViewportHeight(true); 

以上就是例子,我把它改成這樣:

private TableRowSorter<javax.swing.table.DefaultTableModel> sorter; 
/** Creates new form NewJFrame */ 
public NewJFrame() { 
    initComponents(); 
    javax.swing.table.DefaultTableModel model = new DefaultTableModel(); 
    sorter = new TableRowSorter<javax.swing.table.DefaultTableModel>(model); 
    JTable jTable = new JTable(model); 
    jTable.setRowSorter(sorter); 

它是正確的嗎?我無法得到這個工作。我懷疑分揀機沒有添加到表格中。這可能是因爲定義模型部分。請給出建議。

回答

0

我認爲這不是nessesary,你創建你的抽象表模型。
你只需要使用defaultModel和使用下面的代碼

voterTable.getColumnModel().getColumn(0).setPreferredWidth(65);

0

我應該創建GUI Builder中JTable的。您也可以將模型添加到此表中,而不是添加到您創建的新模型中。

替換的方法:

public NewJFrame() { 
    javax.swing.table.DefaultTableModel model = new DefaultTableModel(); 
    sorter = new TableRowSorter<javax.swing.table.DefaultTableModel>(model); 
    initComponents(); 
} 

並添加從GUI Builder中RowSorter的(將在initComponent()添加):

  • 右鍵單擊的JTable - >屬性 - >窗格「代碼「
  • 在自定義創建代碼中寫入 - >new JTable(model);
  • 在變量名中,您將看到變量名([table_name])在以下點)
  • 創建後編碼 - >[table_name].setRowSorter(sorter);
相關問題