有没有办法在jtextfield放一个冒号,所以它不能删除?

rde*_*ish 3 java swing colon jtextfield jformattedtextfield

我想要一个用户输入时间,所以就像12点,但我需要弄清楚一些事情而且我很遗憾.

  1. 我可以将文本限制为5个字符以及如何?
  2. 我可以在代码中嵌入冒号,以便用户无法删除它吗?
  3. 最后,我可以获取该代码并验证它只是数字(当然忽略冒号)

Hov*_*els 7

答案是使用JFormattedTextFieldMaskFormatter.

例如:

String mask = "##:##";
MaskFormatter timeFormatter = new MaskFormatter(mask);
JFormattedTextField formattedField = new JFormattedTextField(timeFormatter);
Run Code Online (Sandbox Code Playgroud)

Java编译器将要求您在创建MaskFormatter时捕获或抛出ParseException,因此请务必执行此操作.