java - 如何在java中为JTextField制作坐标格式

标签 java

latitude: 43,324523 longitude: 34,958140

我使用了此处提供的 IntegerField IntegerField

我可以解析数字以获得我喜欢的格式,但我希望在框架屏幕中得到它。当用户输入时(不输入点或逗号)

但我怎样才能做到呢。

这是我要编辑的框架

In this screen it should be changed

Like the second box, User won't enter the dots但这不是我喜欢的格式。当您阅读代码时,您就会明白我的意思。

第三个屏幕截图是用此代码拍摄的

DecimalFormat format = new DecimalFormat("##,####");
format.setGroupingUsed(true);
NumberFormatter formatter = new NumberFormatter(format);
formatter.setValueClass(Integer.class);                  
formatter.setMaximum(Integer.MAX_VALUE);
formatter.setAllowsInvalid(false);

IntegerField minField = new IntegerField();
JFormattedTextField maxField = new JFormattedTextField(formatter);

最佳答案

好的,我找到了解决方案。 MaskFormatter 很好地处理了这个问题。尽管如此,任何其他想法将不胜感激

MaskFormatter latitudeformat=new MaskFormatter("##.######");
MaskFormatter longitudeformat=new MaskFormatter("###.######");
latitudeformat.setPlaceholderCharacter('0');
latitudeformat.setOverwriteMode(true);
longitudeformat.setPlaceholderCharacter('0');
longitudeformat.setOverwriteMode(true);    

JFormattedTextField latitudeField = new JFormattedTextField(latitudeformat);
JFormattedTextField longituteField = new JFormattedTextField(longitudeformat);

关于java - 如何在java中为JTextField制作坐标格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38846023/

相关文章:

java - 每 6-10 秒播放一次声音

Java 集合 : which collection to use and when?

java - 数学结果相差十的幂

java - 将单元格放置在网格(表)中的算法

java - 如何在 Java Weka API 中使用类不平衡技术 (SMOTE)?

java - 通过JNLP写入本地文件

java - 发出发布请求时无法从 jsoup 获取结果

java - 如何捕获 "Fatal signal 11 (SIGSEGV)"?

java - Java 递归算法是否会消耗更多堆导致额外的垃圾收集?

java - 如何防止同一应用程序的并行 Java Web Start 下载?