Re: CellEditor - не отрабатывает cancelCellEditing
От: Blazkowicz Россия  
Дата: 03.08.05 14:56
Оценка: 2 (1)
Здравствуйте, T34, Вы писали:

T34>Все работает, а вот последняя функция — ни в какую, он в нее даже не заходит. Гугль ковырял, документацию ковырял — ничего не нашел.

Сырцы забыл поковырять.

T34>Подскажите, в чем могут быть проблемы?

А почему это должно быть проблемой?
JTable.propertyChange:

if (!getCellEditor().stopCellEditing()) {
                            getCellEditor().cancelCellEditing();
                        }


Метод stopCellEditing может провалидировать текущее значение и если оно не приминимо, то он возвращает false. В этом случае вызывается cancelCellEditing.
CellEditor - не отрабатывает cancelCellEditing
От: T34 Россия  
Дата: 03.08.05 14:27
Оценка:
Вот такая простота:

class SimpleCellEditor extends DefaultCellEditor {
      static JTextField textField = new JTextField();

      SimpleCellEditor() {
            super(textField);
            textField.setBorder(BorderFactory.createLineBorder(Color.RED, 1));
      }

      public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int rowIndex, int vColIndex) {
            textField.setText(value.toString());
            return textField;
      }

      public Object getCellEditorValue() {
            return textField.getText();
      }

      public void cancelCellEditing() {
            super.cancelCellEditing();
            System.out.println("cancelled");
      }
}


Все работает, а вот последняя функция — ни в какую, он в нее даже не заходит. Гугль ковырял, документацию ковырял — ничего не нашел.
Подскажите, в чем могут быть проблемы?
Re[2]: CellEditor - не отрабатывает cancelCellEditing
От: T34 Россия  
Дата: 04.08.05 05:42
Оценка:
Здравствуйте, Blazkowicz

Ммм... тогда я немного перефразирую, то есть скажу что мне нужно.
По нажатию кнопки на тулбаре в конец таблицы добавляется строка и активизируется редактор для первой ячейки. Если пользователь нажимает Esc, редактирование прекращается, и мне нужно, чтобы эта новая пустая строка была удалена. Я думал, что это связано с cancelCellEditing, но ни эта функция ни stopCellEditing не вызываются при нажатии Esc. Вот. Опыта работы с тысячестрочными сырцами Свинга недостаточно, чтобы быстро выявить решение вопроса.
Re[3]: CellEditor - не отрабатывает cancelCellEditing
От: T34 Россия  
Дата: 04.08.05 07:26
Оценка:
Здравствуйте, T34, Вы писали:

T34>Здравствуйте, Blazkowicz


T34>Ммм... тогда я немного перефразирую, то есть скажу что мне нужно.

T34>По нажатию кнопки на тулбаре в конец таблицы добавляется строка и активизируется редактор для первой ячейки. Если пользователь нажимает Esc, редактирование прекращается, и мне нужно, чтобы эта новая пустая строка была удалена. Я думал, что это связано с cancelCellEditing, но ни эта функция ни stopCellEditing не вызываются при нажатии Esc. Вот. Опыта работы с тысячестрочными сырцами Свинга недостаточно, чтобы быстро выявить решение вопроса.

Удалось выловить через вот так:


            textField.addFocusListener(new FocusListener() {
                  public void focusLost(FocusEvent arg0) {
                        System.out.println("focusLost");
                  }
            });


Но сдается мне это не совсем верный вариант...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.