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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Преобразование данных из ячейки таблицы в дату 
:(
    Опции темы
Swatch
Дата 20.5.2013, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 1



доброго времени суток.

Помогите разобраться, пожалуйста. Один столбец в таблице - поля с датами. Задаю вот так
Код

PPDateField ppdf = new PPDateField();
        ppdf.setFont(new java.awt.Font("Arial", 0, 12));
        
        TableColumn column2 = jTable1.getColumnModel().getColumn(2);
        column2.setCellEditor(new DateFieldTableEditor(ppdf));
        DateRendererDecorator renderer2 = new DateRendererDecorator();
        column2.setCellRenderer(renderer2);


Вот само описение класса PPDateField:
Код


public class PPDateField extends DateField implements IPPComponent {
    public String name;
    IPPControllableObject controlObject;
    
    public PPDateField() {
        super();
        
        addFocusListener(new FocusAdapter() {
            public void focusLost(FocusEvent evt) {
                setControlValue();
            }
        });
        
        addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                WorkHelper.selectText(getFormattedTextField());
                setControlValue();
            }
        });
        
        getFormattedTextField().addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                textFieldMouseClicked(evt);
            }
        });
        
        setDateFormat(new SimpleDateFormat("dd/MM/yyyy"));
    }
    
    private void textFieldMouseClicked(java.awt.event.MouseEvent evt){
        WorkHelper.selectText(getFormattedTextField());
        getFormattedTextField().requestFocusInWindow();
        
    }
    
    public void setUndoManager(UndoManager manager){
    }
    
    public void setName(String name){
        getFormattedTextField().setToolTipText(name);
        super.setName(name);
    }
    
    public void setControllableObject(IPPControllableObject control) {
        controlObject = control;
        refresh();
    }
    
    public void refresh() {
        if (controlObject == null)
            return;
        
        setValue(controlObject.getProperty());
    }
    
    private void setControlValue() {
        if (controlObject == null)
            return;
        Object value;
                
       // controlObject.setProperty(getValue());
    }
}



пытаюсь достать значение из этих ячеек, чтобы записать в базу.
делаю так
Код

(Date)jTable1.getValueAt(f, 2)

пишет java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date
делаю так:

Код

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
            Date dateofbirth;
             try{
                dateofbirth = dateFormat.parse((String)jTable1.getValueAt(f, 2));
            }catch(ParseException ex){
               dateofbirth = new Date();

            }

пишет java.util.Date cannot be cast to java.lang.String

Вывожу то, что находится в ячейке jTable1.getValueAt(f, 2),  получаю Thu May 16 00:00:00 MSK 2013

Что делаю не так? как дату в формате "dd/MM/yyyy" получить?

PM MAIL   Вверх
Pawl
Дата 21.5.2013, 07:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 1
Всего: 28



интересно, а что получится, если вызвать toString в содержимом ячейки?
Код

String strData = jTable1.getValueAt(f, 2).toString();
System.out.println(strData);

Если строка с датой, а не с именем класса и хэшкодом, можно попробовать метод
Код

Date.valueOf(strData);
, который
Цитата

Converts a string in JDBC date escape format to a Date value. 

И посмотрите, на всякий случай, этот топик. Там тоже была проблема с парсингом даты, правда, из web-формы.

Это сообщение отредактировал(а) Pawl - 21.5.2013, 08:05


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
Swatch
Дата 23.5.2013, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 1



Код

Date.valueOf(strData);


мне система вообще не дала написать. подчеркивает и говорит, не знаю ,что это такое.

Зато вот такая строчка
Код

dateFormat.parse(jTable1.getValueAt(f, 2).toString());


проблему решила. спасибо:)
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.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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