![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 2 Всего: 17 |
Требуется, что бы double, отображаемые в JTable, отображались с заданным числом знаков.
Я знаю как это сделать заменив renderer. Может можно как-то по проще? -------------------- Mirkes |
|||
|
||||
| k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: нет Всего: 5 |
Написать класс-обертку с переопределенным toString() и использовать его вместо double?
-------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
| rang3r |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 2.4.2009 Репутация: нет Всего: нет |
Написать свою модель, переопредели метод
getValue(int, int) или как то так, и в нем возвращаем отформатированное значение, один из вариантов http://www.javaprogrammingforums.com/java-...mal-places.html. |
|||
|
||||
| Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 2 Всего: 17 |
Отформатировать при getValueAt не проблема. Единственный недостаток - выравнивание по левому краю. А хочется, как положено для чисел, по правому.
Как отформатировать по правому краю не меняя renderer? Точнее стандартный renderer качественно преобразует и выравнивает double. Но он не сохраняет число знаков после запятой (точки). Может можно заменить преобразование исключительно для типа double установив renderer'у какой-то параметр? -------------------- Mirkes |
|||
|
||||
| Dummy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 2 Всего: 19 |
Если предположить, что у вас столбцы однородны, т. е. содержат либо числа, либо что-то еще, то можно так:
После этого у вас первый столбец будет отрисовываться с выравниванием по правому краю (т. к. мы объявили, что он имеет тип Double), а остальные - так же, как прежде. И еще - я бы форматирование числа (формирование строки с ограниченным количество знаков после запятой) перенес в рендерер, а не в TableModel.getValueAt(). Это даст лучшее разделение между моделью и представлением. Это сообщение отредактировал(а) Dummy - 1.2.2012, 01:23 |
|||
|
||||
| Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 2 Всего: 17 |
, спасибо. Вчера я уже сдался и сделал свой renderer для всех числовых полей. К сожалению, если возвращать в getValueAt значение double в таблице оказываются значения Number, а не Double. Так что пришлось обработать все числовые поля разом.
Прочитав Ваш топик понял, как можно было не обрабатывать все значения, но уже обработал -------------------- Mirkes |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |