2011-12-20 51 views
0

我使用下面的代碼來創建泛型類。這個代碼主要用於焦點文本在java.suppose中的字段我們給tab或Shift tab鍵JTextField文本將被選中。我實現這個泛型類的主要功能,我不知道如何實現在Java程序中的泛型類在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

您需要添加FocusListenerJTextField這樣的:

你使用這樣的:

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