2017-02-10 3 views
0

Я начинаю программировать, и у меня есть простая программа, которая вычисляет что-то, используя даты в формуле расчета.Отображение даты в JTextField, когда пользователь вводит числа (Java)

Итак, у меня есть два поля:

JTextField startDate - для ввода первой даты и JTextField endDate - на второй день.

Когда пользователь вводит какие-либо значения в эти поля, я использую getText(), а затем эти значения преобразуются в SimpleDateFormat DATE = new SimpleDateFormat("ddMMyyyy") с использованием DATE.parse("value from getText()"). После этого мы можем сделать с нашим новым значением Date все, что захотим.

В чем проблема и что я хочу делать. ввода даты выглядит следующим образом:

enter image description here

Но визуально это не очень хорошо для меня. Я хочу сделать какой-то «автоматический ввод даты». Например: пользователь вводит «09052017», но в JTextField мы видим «09.05.2017», или пользователь просто вводит «09», но в поле мы видим «09.», затем «0905», но в поле мы имеют "09.05.". Таким образом, пользователь вводит 09052017, но в поле мы видим:

enter image description here

Как реализовать это?

+1

Одно из возможных решений http://docs.oracle.com/javase/tutorial/uiswing/components/formattedtextfield.html – RubioRic

ответ

2

Использование JCalendar. Это похоже на небольшой календарь, который откроется в вас gui, и пользователь может выбрать желаемую дату.

Чтобы использовать JCalendar, вам необходимо импортировать файл .jar в проект, указанный в приведенной выше ссылке.

JCalendar выглядит

enter image description here

Кроме того, вы можете изменить формат даты, чтобы все, что вы хотите.

0

Вы можете использовать SimpleDateFormat для форматирования дат, но вы хотите. У вас есть подстановочные знаки для параметров даты, а затем вы можете добавлять разделительные символы, такие как слэши или точки.

String pattern = "MM.dd.yyyy"; 
SimpleDateFormat sdf = new SimpleDateFormat (pattern); 
String t = sdf.format (new Date()); 
Смежные вопросы