java - java main 函数中使用的泛型类

标签 java swing generics

我使用以下代码来创建通用类。此代码主要用于在 java 中的文本字段中获得焦点。假设我们给出 Tab 或 Shift Tab 键,JTextField 文本将被选中。我如何将这个通用类实现为 main function 我不知道如何在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;
            }
        }
    }
}

最佳答案

您需要将 FocusListener 添加到 JTextField,如下所示:

你可以像这样使用它:

JTextField tf = new JTextField();
tf.addFocusListener(new MyFocusListener<JTextField>());

关于java - java main 函数中使用的泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8573845/

相关文章:

java - 在哪里可以找到 Java API 类图?

java - 如何为 Swing 应用程序编译 orson 图表库

java - 使用 Java2D 和 Swing 为我的 Java vector 图形编辑器创建曲线工具

scala - 无法在列表中获取通用对象的类型

java - Scanner - Java 中的字符矩阵

java - JCodeModel 和 elseif

java - 在 relativeLayout 中将 View 设置在中心下方几处

java - Swing,当 BoxLayout 空间受限时,实现组件环绕到下一行

java - 在java中重用类型参数的值

angular - 将复杂对象转换为查询字符串