java - 有没有办法在 jtextfield 中放置一个冒号,这样它就不能被删除?

标签 java swing jtextfield jformattedtextfield

我希望用户输入时间,比如 12:00,但我需要弄清楚一些事情,我迷路了。

  1. 我可以将文本限制在 5 个字符以内吗?如何限制?

  2. 我能否在代码中嵌入一个冒号,以便用户无法删除它?

  3. 最后,我能否获取该代码并验证它是否只是数字(当然忽略冒号)

最佳答案

答案是使用 JFormattedTextField和一个 MaskFormatter .

例如:

String mask = "##:##";
MaskFormatter timeFormatter = new MaskFormatter(mask);
JFormattedTextField formattedField = new JFormattedTextField(timeFormatter);

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

关于java - 有没有办法在 jtextfield 中放置一个冒号,这样它就不能被删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11215449/

相关文章:

java - log4j2 双美元 $$ 符号在配置中的含义

Java Firebase 数据库设置

Java-如何通过单击按钮添加更多文本字段?

java - 如何重新启用已禁用的 JTextField?

java - 简单的JFrame程序但看不到JTextfield

java - MyBatis+OSGi : how to remove mappers dynamically

java - 导入org.openqa.selenium.WebDriver无法解析-Eclipse 2019-12(selenium-java-3.141.59 jar 和sikulixapi-2.0.1 jar )

java - 改变jframe的形状

java - Java Canvas 上的 FPtree

java - 布局管理器区域的动态调整大小