gpt4 book ai didi

java - MaskFormatter 可以采用任何尺寸,还是只能采用您提供的尺寸?

转载 作者:行者123 更新时间:2023-12-02 05:30:08 25 4
gpt4 key购买 nike

我想将输入限制为 JFormattedTextField,并且我有一个使用 MaskFormatter 的设置。

但是,我必须输入指定的字符数(在本例中为 5)。有没有办法让它接受任何大小的输入,并且仍然将我的输入限制为小写字符?或者我应该使用不同的类来达到我的目的?

以下是我目前拥有的。

我的目标是有两个文本框输入并比较它们之间的文本输入。

//This formatter allows for up to a 10 character word.
//No spaces allowed.
MaskFormatter leftMask = null;
try {
leftMask = new MaskFormatter("LLLLL");
leftMask.setInvalidCharacters("1234567890 ");
leftMask.setOverwriteMode(false);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
MaskFormatter rightMask = null;
try {
rightMask = new MaskFormatter("LLLLL");
rightMask.setInvalidCharacters("1234567890 ");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

//Initialize components
leftTextField = new JFormattedTextField(leftMask);
rightTextField = new JFormattedTextField(rightMask);
submitButton = new JButton("Submit");

submitButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
InputReader reader = new InputReader();
result.setText("These two strings are:");
if(reader.readInput(leftTextField.getText(), rightTextField.getText())){
result.append(" a match");
}
else{
result.append(" not a match");
}
}
});

最佳答案

如果我正确理解了这个问题,你可以编写一个方法来执行类似的操作......

public static String generateFormat(char with, int count) {
return String.format("%" + count + "s", "").replaceAll(" ", Character.toString(with));
}

基本上,这将允许您生成一个 String,其中填充 with 的值到字符的 count 之类的东西就像...

leftMask = new MaskFormatter(generateFormat('L', 5));

现在,这不是一个完美的解决方案,更好的解决方案可能是使用 DocumentFilter ,它可以让您完全控制用户可以实时输入的数量和内容......

看看Implementing a Document FilterDocumentFilter Examples了解更多详情。

关于java - MaskFormatter 可以采用任何尺寸,还是只能采用您提供的尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25634792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com