Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Несколько вопросов о TableCellEditor 
:(
    Опции темы
diablero
Дата 22.2.2007, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 2
Всего: 5



Есть клиент до базы данных, в списке, наименование таблиц, в зависемости от выбора, отображается соответствующая таблица.
У меня на данный момент возникло два вопроса:
1.  Как узнать что данные были изменены, чтобы их сохранить?
     Пробовал повешать кейлистенер, все работает, но в одном случае куча ошибок, если был нажат в текстовом поле только пробел.
2. Как если ячейка находиться в режиме редактирования, а пользователь пытаеться выбрать другую таблицу, выйти из режима редактирования и сохранить данные?

Код

import javax.swing.*;
import javax.swing.table.TableCellEditor;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.util.EventObject;


public class TextCellEditor extends AbstractCellEditor implements TableCellEditor {

    private JTextArea textCellEditor;

    public TextCellEditor() {
        textCellEditor = new JTextArea();
        textCellEditor.setWrapStyleWord(true);
        textCellEditor.setLineWrap(true);
    }
    public Object getCellEditorValue() {
        return textCellEditor.getText();
    }
    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
        if (value instanceof String) {
            textCellEditor.setText((String) value);
        }
        return new JScrollPane(textCellEditor);
    }
    public boolean isCellEditable(EventObject anEvent) {
        if (anEvent instanceof MouseEvent) {
            if (((MouseEvent) anEvent).getClickCount() != 2)
                return false;
        }
        return true;
    }
}




--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
nornad
Дата 22.2.2007, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 6
Всего: 31



Цитата(diablero @  22.2.2007,  20:26 Найти цитируемый пост)
1.  Как узнать что данные были изменены, чтобы их сохранить?

У модели есть метод setValueAt(), который вызывается при установлении значения. Думаю, лучше использовать его. А KeyListener будет срабатывать на каждое нажатие любой клавиши.
Цитата(diablero @  22.2.2007,  20:26 Найти цитируемый пост)
2. Как если ячейка находиться в режиме редактирования, а пользователь пытаеться выбрать другую таблицу, выйти из режима редактирования и сохранить данные?

У редакторая ячейки (или у таблицы - не помню точно) есть метод stopEdit().


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
diablero
Дата 22.2.2007, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 2
Всего: 5



С первым я разобрался, на JTextArea прикрутил DocumentListener.

Есть мысль, прекращать редактирование таблицы при потери фокуса, надо проверить...


--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0397 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.