繁体   English   中英

Java-JFormattedTextField不允许在首次尝试时输入

[英]Java - JFormattedTextField does not allow input on first attempt

我正在用GUI制作一个数独游戏,并将MaskFormatter用于JFormattedTextFields:

 formatter = new MaskFormatter(s);
 formatter.setValidCharacters("123456789");

但是我的问题是,当窗口打开且我单击这些字段之一时,无法键入内容,
它仅适用于第二次尝试,即当我单击另一个字段然后返回到第一个字段时。

是否需要先失去焦点才能激活?

如果需要我的一些代码,请告诉我。

这是它的样子

在此处输入图片说明

编辑:问题在这里:

if (guessMatrix[i][j] == 0) {
    tfM[j][i].setBackground(Color.yellow);
    tfM[j][i].setText("");

如果没有setText(“”),它可以正常工作。

我认为您在创建MaskFormatter的对象时遇到问题。 您可以使用遮罩模式创建对象,然后设置有效字符。

 MaskFormatter formatter = new MaskFormatter("#");
 formatter.setValidCharacters("123456789");
 JFormattedTextField txt = new JFormattedTextField(formatter);

当您单击文本字段并键入任何数字(仅1-9)时,它可以正常工作,但您键入任何非数字则不允许。

谢谢,Jignesh Gothadiya

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM