首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在用户输入值时添加字符

在用户输入值时添加字符
EN

Stack Overflow用户
提问于 2015-01-08 14:59:53
回答 1查看 540关注 0票数 1

当用户填写一定数量的字符时,如何创建一个自动添加字符的方法。

假设我必须输入一个12个字符长的代码。

每次我通过第四个字符时,必须加一个破折号。(4-5,8-9)共2次破折号。

我对Java有点陌生,所以我不知道从哪里开始。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-08 15:12:51

使用可以为其定义输入掩码的JFormattedTextField

代码语言:javascript
运行
复制
JFormattedTextField textField = new JFormattedTextField();
textField.setFormatterFactory(new DefaultFormatterFactory(new MaskFormatter("HHHH-HHHH-HHHH")));

编辑添加一个工作示例

代码语言:javascript
运行
复制
public class SimpleInputMask {

    private static void createAndShowGUI() {
        JFrame frame = new JFrame("MaskFormatteExample");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel();
        JLabel label = new JLabel("input: ");
        panel.add(label);

        // define the text field with an input mask
        JFormattedTextField textField = new JFormattedTextField();
        textField.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 14));
        try {
            String inputMask = "HHHH-HHHH-HHHH";
            textField.setFormatterFactory(new DefaultFormatterFactory(new MaskFormatter(inputMask)));
        } catch (ParseException ex) {
            // will be raised if the inputMask cannot be parsed
            // add your own exception handling here
        }

        panel.add(textField);

        frame.add(panel);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                createAndShowGUI();
            }
        });
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27843053

复制
相关文章

相似问题

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