首页 > 解决方案 > 如何在 JTextField 的开头输入文本

问题描述

有没有办法添加功能,使用户能够输入 JTextField 但光标停留在输入的开头,从而使文本向后?

例子:

用户类型“5”

5 显示

用户类型“9”

显示 95

标签: javaswingjtextfield

解决方案


如果您只需要对数字进行此操作,我建议您使用JSpinner组件而不是JTextField. 但是使用 textField 你可以像这样实现它:

    JTextField field = new JTextField();
    AbstractDocument document = (AbstractDocument) field.getDocument();
    document.setDocumentFilter(new DocumentFilter() {
        @Override
        public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr)
                throws BadLocationException {
            offset = 0;//Insert string at offset 0
            super.insertString(fb, offset, string, attr);
        }
        @Override
        public void replace(FilterBypass fb, int offset, int length, String text, AttributeSet attrs)
                throws BadLocationException {
            offset = 0; //Insert string at offset 0
            super.replace(fb, offset, length, text, attrs);
        }
    });

推荐阅读