Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > запрет на редактирование таблицы


Автор: izver84 21.4.2008, 08:40
У меня такой вопрос. 
Как отменить редактирование таблицы и/или редактирование отдельных столбцов? 


Автор: Kangaroo 21.4.2008, 09:35
Переопределить в модели примерно такой метод (точно не помню ) isEditable(int row, int col) 

Автор: izver84 25.4.2008, 15:37
У меня модель одна, а таблиц много (каждая таблица отдельный класс). Если установить метод isEditable(int row, int col), то все таблицы будут не редактируем. А это мне ненадо.

Автор: math64 25.4.2008, 17:34
Код

NonEditableTableModel implements TableModel, TableModelListener {
  TableModel baseModel;
  int editableColumns;
  public NonEditableTableModel(TableModel baseModel, int editableColumns) {
    this.baseModel = baseModel;
    this.editableColumns = editableColumns;
    baseModel.addTableModelListener(this);
  }

  int getColumnCount() {
    return baseTable.getColumnCount();
  }

  boolean isCellEditable(int row, int col) {
    if ((editableColumns & (1 << col)) == 0)
     return false;
    return baseTable.isCellEditable(row, col);
  }

  Object getValueAt(int row, int col) {
    return baseModel.getValueAt(row,col);
  }

  void tableChanged(TableModelEvent e) {
    TableModelEvent e2 = new TableModelEvent(this, e.getFirstRow(), e.getLastRow(), e.getColumn(), e.getType());
    <разослать сообщение  своим listener>
  }
  ...
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)