Создание пользовательских компонентов — расширение до JFormattedField

В настоящее время я работаю над приложением, и у меня есть определенные требования к моему интерфейсу: ввод времени.

Мне нужно, чтобы мои элементы управления принимали ввод от 12 до 24 часов с использованием JFormattedTextField, и я нашел это:

 MaskFormatter mask = new MaskFormatter("##:##");
 mask.setPlaceHolderCharacter('0');

Теперь я создал класс, который распространяется на JFormattedTextField.

 public class JayTimeInput extends JFormattedTextField{....

теперь я заглянул в источник JFormattedTextField и нашел что-то вроде этого:

public JFormattedTextField(Object mask){...

мой вопрос: как мне создать класс JayTimeInput, который автоматически имеет средство форматирования маски? Я попытался объявить это в своем конструкторе, но я не уверен в этом:

public JayTimeInput(){
     try{
          MaskFormatter mask = new MaskFormatter("##:##");
          mask.setPlaceHolderCharacter('0');
          new JFormattedTextField(mask);
     }catch(Exception e){e.printStackTrace()}
}

Я видел примеры того, как использовать MaskFormatter, и единственный способ, который я нашел, это объявить его следующим образом:

MaskFormatter mask = new MaskFormatter("##:##");
mask.setPlaceHolderCharacter('0');
JFormattedTextField jformat = new JFormattedTextField(mask);

Я не уверен, что мой actionlistener был сделан правильно, но мне нужно, чтобы это сработало в первую очередь.

кто-нибудь помочь мне? я все еще новичок в создании собственных элементов управления путем расширения существующих свингов.

ОБНОВЛЕНИЕ:

Я искал неправильный способ настройки моего JFormattedTextField. Я должен был использовать FormatFactory. Код ответа был опубликован для всех, кто в нем нуждается.


person james castillo    schedule 27.06.2016    source источник
comment
Почему бы и нет super(mask); docs.oracle.com/javase/tutorial/java/IandI /super.html   -  person Compass    schedule 27.06.2016
comment
извините, я никогда не знал, для чего супер. Читаем и тестируем. Спасибо!   -  person james castillo    schedule 27.06.2016