使用示例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);
这是对的吗?我不能让这个工作。我怀疑分拣机没有添加到表中。这可能是因为定义模型部分。请给出建议。
答案 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()
中):
new JTable(model);
[table_name].setRowSorter(sorter);