Java использует период в десятичных знаках, например. 1/2 = 0,5Форматирование номера локализации Java
Есть ли способ сделать это вместо запятой, как в 1/2 = 0,5? И не использовать запятую для тысяч (как в сто тысяч = 100 000), а вместо этого использовать пространство (100 000)?
Когда дело доходит до вывода, я предполагаю, что могу использовать всевозможные функции строкового формата, но проблема заключается в вводе (JTable). Некоторые столбцы требуют Двойного формата, так что пользователи должны ввести что-то вроде 45,5 и в этих местах они используются для 45,5 :) Заранее спасибо
Update:
Я попытался с помощью myTable.setDefaultLocale (Locale.Germany); но это не сработало. Я также сделал Locale.setDefault (Locale.Germany); @ main, и это действительно работало, но довольно глупо: пока ячейка находится в режиме редактирования, вы должны ввести точку как обычно, т. е. 45,5, но после вы нажимаете ввод для подтверждения изменений, он отображается как запятая: 45,5. Я имею в виду, что он использует запятую только для показа, но при редактировании ее еще одной точки.
Есть ли способ исправить это без документ пользовательская таблица модель?
Проблема с этим решением заключается в том, что мой столбец таблицы принимает только двойные значения, а Double Java-style означает форматирование чисел в США и Канаде. Я могу заставить его принимать String вместо Double, а затем анализировать/проверять его вручную, но нет ли более простого решения? Что-то вроде SetGlobalLocale (Locale.German); и вдруг Java знает, что 12,20 является допустимым двойным значением, поэтому мне не нужно ничего менять в моей таблице ... что-то в этом роде? :) – Sejanus
Вижу, вы используете Swing. Я обновил свой ответ (и теги этого вопроса). – BalusC
Большое спасибо, я считаю, что это то, что мне нужно! Пока у меня это работало, что-то гораздо лучше, чем ничего, но что-то еще не совсем правильно. Я обновил оригинальный вопрос, если у вас есть время, чтобы посмотреть на него – Sejanus