powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сделать форматированное поле ввода.
8 сообщений из 8, страница 1 из 1
Как сделать форматированное поле ввода.
    #33194795
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никто не подскажет, как ограничить варианты ввода в JTextField, чтобы туда можно было внести только текст, соответствующий некоему регулярному выражению.
Скорее всего, что для этого надо использовать JFormattedTextField и наследника Format.
Неплохо бы чтобы
- Текст соответствующий фиксированным фрагментам регекспа как-то автокомплитился
- Были бы некоторые дефолтовые значения для нефиксированных фрагментов регекспа, чтобы, например, если пользовнтель выделил фрагмент вводимого текста и нажал delete фиксированные фрагменты остались на месте, а нефиксированные, например, были бы заменены дефолтовыми значениями.

В качестве примера можно рассмотреть поле для ввода IP - адреса.
...
Рейтинг: 0 / 0
Как сделать форматированное поле ввода.
    #33194943
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BTW задача ограничения ввода в Текстбоксе довольно типичная. Неплохо бы увидеть комменты кто и как ее решает.
...
Рейтинг: 0 / 0
Как сделать форматированное поле ввода.
    #33194961
боц
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
:) Самое простое.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
 package  test.swing;

 import  javax.swing.*;
 import  javax.swing.text.*;
 import  java.awt.*;
 import  java.text.*;

 public   class  IPField  extends  JFrame {
   public  FormattedField()  throws  ParseException {
     super ("IP-Formatted Field");
    setDefaultCloseOperation(EXIT_ON_CLOSE);

    MaskFormatter mf =  new  MaskFormatter("###.###.###.###");
    mf.setPlaceholderCharacter('_');

    JFormattedTextField jftf =  new  JFormattedTextField(mf);
    getContentPane().add(jftf);
    setVisible(true);
  }

   public   static   void  main(String[] args)  throws  ParseException {
     new  IPField();
  }
}

...
Рейтинг: 0 / 0
Как сделать форматированное поле ввода.
    #33195038
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ссылка интересная

http://javagu.ru/portal/dt?last=false&provider=javaguru&ArticleId=GURU_ARTICLE_64813&SecID=GURU_SECTION_63111#DA001
...
Рейтинг: 0 / 0
Как сделать форматированное поле ввода.
    #33196308
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужна довольно простая вешь - сделать поле ввода, куда можно воткнуть от 0 до 6 цифр.
Пробелы не катят, и следовательно MaskFormatter("######") не катит, так как он
добивает строку до 6 символов пробелами. MaskFormatter("######") c placeholderChar '0' тоже не катит, так как строка может быть короче 6 символов или даже вообще быть пустой.
Строка может начинаться с произвольного количества нулей, или даже быть '000000', следовательно NumberFormat тоже не катит, так как он мочит лидирующие нули.
...
Рейтинг: 0 / 0
Как сделать форматированное поле ввода.
    #33196318
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://java.sun.com/products/jfc/tsc/articles/reftf/ ???
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Как сделать форматированное поле ввода.
    #33196434
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рулез. то что надо.
...
Рейтинг: 0 / 0
Как сделать форматированное поле ввода.
    #33199495
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня тоже один вопрос есть. Код
Код: plaintext
1.
2.
3.
4.
5.
  DecimalFormat decimalFormat =  new  DecimalFormat("0.0#");
  NumberFormatter textFormatter =  new  NumberFormatter(decimalFormat);

  textFormatter.setOverwriteMode(true);
  textFormatter.setAllowsInvalid(false);
Все вобщем-то работает только криво. Неработает '.'(точка) как разделитель, хотя в формате "0.0#" задается именно она. А вот запятая работает, приходится потом менять '.' на ','. Можно как нибудь руками выставить сепаратор? И вообще почему с данным форматом подобное происходит. В региональных настройках сепапатор везде (RU,EN) точка.
Заранее спсибо.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сделать форматированное поле ввода.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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