Как ввести текст в начале JTextField - PullRequest
1 голос
/ 17 февраля 2020

Есть ли способ добавить функциональность, которая позволила бы пользователю печатать в JTextField, но курсор оставался в начале ввода, что делало текст обратным?

Пример:

Пользовательские типы '5'

5 отображаются

Пользовательские типы '9'

95 отображаются

1 Ответ

0 голосов
/ 17 февраля 2020

Если вам нужно, чтобы это происходило только с числами, я предлагаю вам использовать компонент 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);
        }
    });
...