Какое имя переменной модели моего JTable в NetBeans - PullRequest
1 голос
/ 04 декабря 2011

Используя пример TableFilterDemo, я пытаюсь создать RowFilter в NetBeans, но не могу. Я попробовал код в JCreator; Мне нужна помощь.

Я понимаю, что мне не нужно создавать class MyTableModel extends AbstractTableModel, потому что я уже делал это вручную в инструментах с графическим интерфейсом NetBeans. Теперь я столкнулся с проблемой при определении модели с помощью 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 голосов
/ 13 мая 2012

Я предполагал, что вы создадите JTable в GUI Builder. Вы также добавили модель в эту таблицу, а не в новую, созданную вами.

Заменить метод на:

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

И добавьте сортировщик строк из GUI Builder (будет добавлен в initComponent()):

  • Щелкните правой кнопкой мыши JTable -> Свойства -> Панель «Код»
  • В пользовательском коде записи -> new JTable(model);
  • В поле Имя переменной вы увидите имя переменной ([имя_таблицы] в следующем пункте)
  • В коде создания поста напишите -> [table_name].setRowSorter(sorter);
0 голосов
/ 13 мая 2012

Я думаю, вам не обязательно создавать свою абстрактную табличную модель.
вы просто используете defaultModel и используете следующий код

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

...