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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JDateChooser в качестве CellEditor'a в JTable, некорректно работает 
V
    Опции темы
CrasyMen
Дата 24.4.2009, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 264
Регистрация: 19.12.2006

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



класс DateCellEditor:
Код

import com.toedter.calendar.JDateChooser;

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

public class DateCellEditor extends AbstractCellEditor implements TableCellEditor {
    JDateChooser dateChooser = new JDateChooser();

    public Component getTableCellEditorComponent(JTable table, Object value,
                                                 boolean isSelected, int row, int column) {
        dateChooser.setDate((Date) value);
        dateChooser.setDateFormatString("dd.mm.yyyy");
        return dateChooser;
    }

    // Enables the editor only for double-clicks.
    public boolean isCellEditable(EventObject evt) {
        if (evt instanceof MouseEvent) {
            return ((MouseEvent) evt).getClickCount() >= 2;
        }
        return true;
    }

    // Returns the current value.
    public Object getCellEditorValue() {
        return dateChooser.getDate();
    }
}

так я его добавляю в column model (упростил до минимума):
Код

public class CardsTableColumnModel extends DefaultTableColumnModel {
    public CardsTableColumnModel() {
        DateCellEditor dateCellEditor = new DateCellEditor();
        column = new TableColumn();
        column.setModelIndex(CardsTableModel.DATE_OF_LOAN_COLUMN);
        column.setHeaderValue("Date of loan");
        column.setPreferredWidth(200);
        column.setCellRenderer(cellRenderer);
        column.setCellEditor(dateCellEditor);
        addColumn(column);
    }
}

Проблемма в том что формат строки даты принимает вид "dd.mm.yyyy" только после входа в режим редактирования (по двойному клику). Вне режима редактирования строка в таблице имеет вид "Fri Mar 17 00:00:00 EET 2006". Мне надо чтобы в ячейке всегда была строка формата "dd.mm.yyyy".

Это сообщение отредактировал(а) CrasyMen - 24.4.2009, 20:59


--------------------
Человек просто обязан ошибаться, раз другие учатся на его ошибках.
[color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color]
PM MAIL ICQ   Вверх
CrasyMen
Дата 24.4.2009, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 264
Регистрация: 19.12.2006

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



добавил DateRenderer и все гуд

Код

import java.text.DateFormat;
import java.text.SimpleDateFormat;

public class DateRenderer extends RowRenderer {
    DateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");;
        public DateRenderer() { super(); }

        public void setValue(Object value) {
            if (formatter==null) {
                formatter = DateFormat.getDateInstance();
            }
            setText((value == null) ? "" : formatter.format(value));
        }
}


Заметил что уже не первый раз решение приходит на ум после того как запостил вопрос на форуме.  smile Надеюсь кому-нить пригодится.


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

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

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


 




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


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

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