универсальный класс, использующий в основной функции Java - PullRequest
0 голосов
/ 20 декабря 2011

Я использую следующий код для создания универсального класса. Этот код в основном используется для получения фокуса в текстовом поле в java. Предположим, мы даем клавишу табуляции или клавишу Shift для выбора текстов JTextField. Как я могу реализовать этот универсальный класс для основногоФункция Я не знаю, как реализовать универсальный класс в Java-программе

import java.awt.FlowLayout;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
//import javax.swing.text.JTextComponent;


class MyFocusListener<T extends JTextField> extends FocusAdapter {

    public void focusGained(FocusEvent evt) {
        final T c = (T)evt.getSource();
        String s = c.getText();
        c.requestFocus();
        c.selectAll();

        for (int i = 0; i < s.length(); i++) {
            if (!Character.isDigit(s.charAt(i))) {
                c.setSelectionStart(i);
                c.setSelectionEnd(i);
                break;
            }
        }
    }

    public void focusLost(FocusEvent evt) {
        final T c = (T) evt.getSource();
        String s = c.getText();

        if (evt.isTemporary()) {
            return;
        }
        for (int i = 0; i < s.length(); i++) {
            if (!Character.isDigit(s.charAt(i))) {
            c.requestFocus();
                c.selectAll();
                break;
            }
        }
    }
}

1 Ответ

1 голос
/ 20 декабря 2011

Вам нужно добавить это FocusListener к JTextField следующим образом:

Вы используете его следующим образом:

JTextField tf = new JTextField();
tf.addFocusListener(new MyFocusListener<JTextField>());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...