NetBeans中我的JTable模型的变量名是什么

时间:2011-12-04 05:54:26

标签: java swing netbeans jtable tablesorter

使用示例TableFilterDemo,我正在尝试在NetBeans中创建RowFilter,但我不能。我在JCreator中尝试了code;我需要帮助。

我知道我不需要创建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);

这是对的吗?我不能让这个工作。我怀疑分拣机没有添加到表中。这可能是因为定义模型部分。请给出建议。

2 个答案:

答案 0 :(得分:0)

我认为没有必要创建抽象表模型 您只需使用默认模型并使用以下代码

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

答案 1 :(得分: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 - &gt;属性 - &gt;窗格“代码”
  • 在自定义创建代码中写 - &gt; new JTable(model);
  • 在变量名称中,您将看到变量名称(以下点中的[table_name])
  • 在创作后代码中写 - &gt; [table_name].setRowSorter(sorter);