首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MaskFormatter可以接受任何大小,还是只能接受您提供的大小?

MaskFormatter可以接受任何大小,还是只能接受您提供的大小?
EN

Stack Overflow用户
提问于 2014-09-03 09:19:19
回答 1查看 1.5K关注 0票数 0

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

但是,我必须输入我指定的字符数(在本例中为5个)。有没有一种方法可以让它接受任何大小的输入,同时仍然将我的输入限制为小写字符?或者我应该使用一个不同的类来实现我的目的?

下面是我目前所拥有的。

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

代码语言:javascript
复制
//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");
           }
        }
    });
EN

回答 1

Stack Overflow用户

发布于 2014-09-03 09:36:36

如果我对问题的理解正确,你可以写一个方法,它做了类似于...

代码语言:javascript
复制
public static String generateFormat(char with, int count) {
    return String.format("%" + count + "s", "").replaceAll(" ", Character.toString(with));
}

基本上,这将允许您生成一个用字符的countwith值填充的String,类似于...

代码语言:javascript
复制
leftMask = new MaskFormatter(generateFormat('L', 5));

现在,这不是一个完美的解决方案,一个更好的解决方案可能是使用一个DocumentFilter,它可以让你完全控制用户可以实时输入多少和什么内容……

有关更多详细信息,请查看Implementing a Document FilterDocumentFilter Examples

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25634792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档