Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Сортировка столбцов в JTable / 22 сообщений из 22, страница 1 из 1
07.06.2006, 13:11
    #33777453
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
В своей программе для сортировки столбцов использую класс TableSorter, взятый из интернета.

Как лучше сделать такое:

Если в запросе поле даты я представляю как String, то сортировка происходит не правильно.

Код: plaintext
1.
nvl(to_char(DS,'dd.mm.yyyy'),' ') DS 

Если поле типа Date - правильно.
То же самое дело обстот и с полями типа double.

Поделитесь, кто как решает эту проблему.
...
Рейтинг: 0 / 0
07.06.2006, 16:15
    #33778214
/**/
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
боюсь протупить, но все же попробую что-то посоветовать(если неправ - сильно не бейте):
в запросах всяких лучше использовать тип java.sql.Date
и в методе getColumnClass(); лучше указывать этот же тип данных.
тогда даты "понимаются" правильно и по идее сортироваться должны тоже правильно. В случае с Double - то же самое.
иначе sorter не понимает по какому признаку ему сортировать и вряд ли есть какой-то путь заставить его сортировать строки как даты
...
Рейтинг: 0 / 0
07.06.2006, 16:26
    #33778253
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
авторЕсли в запросе поле даты я представляю как String
Если уж никак без стринга можно в модели в дату сконвертить.
...
Рейтинг: 0 / 0
07.06.2006, 16:49
    #33778345
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
ТимоН авторЕсли в запросе поле даты я представляю как String
Если уж никак без стринга можно в модели в дату сконвертить.

Да наверное так и прийдется...
...
Рейтинг: 0 / 0
07.06.2006, 17:02
    #33778406
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
GlukOza ТимоН авторЕсли в запросе поле даты я представляю как String
Если уж никак без стринга можно в модели в дату сконвертить.

Да наверное так и прийдется...
по-моему это неправильно, к тому же со стрингами много возни. лучше не изобретать велосипед и дату возвращать как дату (через java.sql.Timestamp) и в модели использовать ее, а для отображения поставить свой cell renderer. MVC и все такое :)
...
Рейтинг: 0 / 0
07.06.2006, 17:57
    #33778576
Vinni-pux
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
Timmпо-моему это неправильно, к тому же со стрингами много возни. лучше не изобретать велосипед и дату возвращать как дату (через java.sql.Timestamp) и в модели использовать ее, а для отображения поставить свой cell renderer. MVC и все такое :)

Как сделать чтобы в JTable поле типа Date выводилось так: dd.mm.yyyy
У меня выводится так: yyyy-mm-dd
...
Рейтинг: 0 / 0
07.06.2006, 17:59
    #33778588
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
Vinni-pux Timmпо-моему это неправильно, к тому же со стрингами много возни. лучше не изобретать велосипед и дату возвращать как дату (через java.sql.Timestamp) и в модели использовать ее, а для отображения поставить свой cell renderer. MVC и все такое :)

Как сделать чтобы в JTable поле типа Date выводилось так: dd.mm.yyyy
У меня выводится так: yyyy-mm-dd

SimpleDateFormat нужно использовать для преобразования форматов дат
...
Рейтинг: 0 / 0
07.06.2006, 18:13
    #33778628
Vinni-pux
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
wessen Vinni-pux Timmпо-моему это неправильно, к тому же со стрингами много возни. лучше не изобретать велосипед и дату возвращать как дату (через java.sql.Timestamp) и в модели использовать ее, а для отображения поставить свой cell renderer. MVC и все такое :)

Как сделать чтобы в JTable поле типа Date выводилось так: dd.mm.yyyy
У меня выводится так: yyyy-mm-dd

SimpleDateFormat нужно использовать для преобразования форматов дат


А мне надо чтобы поле было типа Date віводилось в таблице в виде dd.mm.yyyy
...
Рейтинг: 0 / 0
07.06.2006, 18:51
    #33778786
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
Vinni-pux
А мне надо чтобы поле было типа Date віводилось в таблице в виде dd.mm.yyyy

Отнаследуйся от класса Date и переопредели у него метод toString(). Соответственно в таблицу добавляй уже свой класс.
...
Рейтинг: 0 / 0
07.06.2006, 18:58
    #33778804
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
автор
Отнаследуйся от класса Date и переопредели у него метод toString(). Соответственно в таблицу добавляй уже свой класс.
Некрасивое решение на мой взляд...
...
Рейтинг: 0 / 0
07.06.2006, 19:04
    #33778827
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
Яб так сделал.
sun
Для отображения даты и времени в одной String, создайте форматтер при помощи метода getDateTimeInstance. Первый параметр - стиль даты, а второй параметр - стиль времени. Третий параметр - Locale. Вот маленький пример:
Код: plaintext
1.
2.
3.
    DateFormat formatter = 
        DateFormat.getDateTimeInstance(DateFormat. LONG ,
                                       DateFormat. LONG ,
                                       currentLocale);
...
Рейтинг: 0 / 0
07.06.2006, 19:37
    #33778933
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
ТимоНЯб так сделал.
sun
Для отображения даты и времени в одной String, создайте форматтер при помощи метода getDateTimeInstance. Первый параметр - стиль даты, а второй параметр - стиль времени. Третий параметр - Locale. Вот маленький пример:
Код: plaintext
1.
2.
3.
    DateFormat formatter = 
        DateFormat.getDateTimeInstance(DateFormat. LONG ,
                                       DateFormat. LONG ,
                                       currentLocale);


ты это к чему вообще?
...
Рейтинг: 0 / 0
08.06.2006, 11:05
    #33779810
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
авторА мне надо чтобы поле было типа Date віводилось в таблице в виде dd.mm.yyyy к этому....
...
Рейтинг: 0 / 0
08.06.2006, 11:30
    #33779942
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
ТимоНЯб так сделал.
sun
Для отображения даты и времени в одной String, создайте форматтер при помощи метода getDateTimeInstance. Первый параметр - стиль даты, а второй параметр - стиль времени. Третий параметр - Locale. Вот маленький пример:
Код: plaintext
1.
2.
3.
    DateFormat formatter = 
        DateFormat.getDateTimeInstance(DateFormat. LONG ,
                                       DateFormat. LONG ,
                                       currentLocale);


Не могу понять, почему выдает ошибку при
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 public   class  TestDateFormat {
   public   static   void  main(String[] args)  throws  ParseException {
  
      DateFormat dateFormat = DateFormat.getDateInstance(DateFormat. DEFAULT );
      Date date_p = dateFormat.parse("08.06.2006");
      System.out.println(date_p);

  }
}

...
Рейтинг: 0 / 0
08.06.2006, 11:36
    #33779967
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
ТимоН авторА мне надо чтобы поле было типа Date віводилось в таблице в виде dd.mm.yyyy к этому....

Какое выражение должно быть в sd, чтобы произошел парсинг?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 DateFormat formatter =
        DateFormat.getDateTimeInstance(DateFormat. LONG ,
                                       DateFormat. LONG ,
                                       Locale.UK);
      Date dd = formatter.parse(sd);
      System.out.println("dd = " + dd);

...
Рейтинг: 0 / 0
08.06.2006, 11:58
    #33780069
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
Чего то я не догоняю. Почему парсинг мне лает дату в виде
Tue Feb 24 00:00:00 EET 2004 ?


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
                Object entry = resultSet.getString(i);
                System.out.println("entry = " + entry);
                // entry = 24.02.2004
                DateFormat sdf =  new  SimpleDateFormat("dd.MM.yyyy",Locale.UK);
                 try  {
                          entry = sdf.parse(resultSet.getString(i));
                          System.out.println("entryUK = " + entry);
                          // entry = Tue Feb 24 00:00:00 EET 2004
                }  catch  (ParseException e) {
                          e.printStackTrace();
               }
...
Рейтинг: 0 / 0
08.06.2006, 12:05
    #33780099
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
птомучто метод parse возвращает объект Date, затем ты у него вызываешь toString, который по умолчанию возвращает дату именно в таком - Tue Feb 24 00:00:00 EET 2004 формате. Чтобы возвращалост то, что требуется, нужно смотреть решение здесь
...
Рейтинг: 0 / 0
08.06.2006, 12:43
    #33780280
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
wessen Vinni-pux
А мне надо чтобы поле было типа Date віводилось в таблице в виде dd.mm.yyyy

Отнаследуйся от класса Date и переопредели у него метод toString(). Соответственно в таблицу добавляй уже свой класс.


Первое я сделала. А как дабавить в таблицу свой класс. Мжет туплю страшно... Но все-таки...
...
Рейтинг: 0 / 0
08.06.2006, 12:47
    #33780289
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
GlukOza wessen Vinni-pux
А мне надо чтобы поле было типа Date віводилось в таблице в виде dd.mm.yyyy

Отнаследуйся от класса Date и переопредели у него метод toString(). Соответственно в таблицу добавляй уже свой класс.


Первое я сделала. А как дабавить в таблицу свой класс. Мжет туплю страшно... Но все-таки...

как раньше класс Date добавляла, так и свой класс добавляй :)
...
Рейтинг: 0 / 0
08.06.2006, 13:09
    #33780374
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
Как - то так:?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
  
           ResultSet rs = st.executeQuery("select sysdate from dual");

           MainDate  md =  new  MainDate();
            while (rs.next())  
           {
                 md = (MainDate)rs.getDate( 1 );
           }
    
...
Рейтинг: 0 / 0
08.06.2006, 14:44
    #33780757
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
как нибудь так
Код: plaintext
1.
MainDate  md =  new  MainDate( rs.getDate(  1  ) );
...
Рейтинг: 0 / 0
08.06.2006, 18:26
    #33781705
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка столбцов в JTable
Юзай и все получится...

Решила свою проблему так. Так как сортировщик использует данные модели, то из запроса в модель данные типа Date так и сохраняю.

А когда вывожу таблицу пользователям, то как бы обманываю пользователей и на ячейку с таким полем вешаю TableCellRenderer, в котором данные форматирую с помощью SimpleDateFormat, который красиво выводит дату.

Когда пользователь нажимает на заголовок поля даты и хочет отсортировать поле, то здесь включается модель, в которой данные -то типа даты, а рисовальщик показывает в определенном формате.

Может кому пригодится... )))
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Сортировка столбцов в JTable / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]