2014-03-31 22 views

回答

1

使用FocusListener,下面是簡單的例子:

import java.awt.BorderLayout; 
import java.awt.event.FocusAdapter; 
import java.awt.event.FocusEvent; 
import java.awt.event.FocusListener; 

import javax.swing.JFrame; 
import javax.swing.JTextField; 

public class TestFrame extends JFrame{ 

    public TestFrame(){ 
     init(); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     pack(); 
     setVisible(true); 
    } 

    private void init() { 
     JTextField f1 = new JTextField(5); 
     f1.addFocusListener(getFocusListener()); 
     add(f1,BorderLayout.SOUTH); 
     add(new JTextField(5),BorderLayout.NORTH); 
    } 


    private FocusListener getFocusListener() { 
     return new FocusAdapter() { 

      @Override 
      public void focusGained(FocusEvent e) { 
       super.focusGained(e); 
       System.out.println("action"); 
      } 
     }; 
    } 

    public static void main(String... s){ 
     new TestFrame(); 
    } 

} 

而且JFramegetFocusOwner()方法。

1

使用API​​

JFrame.getFocusOwner() 

這將返回焦點的參考組件

也CA檢查....

KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner() 

要修改,只需添加一個FocusListener到你的相應組件,並實現你的特定acitons的接口。

1

有視覺線索有助於瞭解哪個組件具有焦點,例如文本字段中的活動光標。要使用FocusListener接口並且爲了監聽鍵盤獲得或失去焦點,從類創建的偵聽器對象需要使用組件的addFocusListener()方法向組件註冊。兩個重要的方法focusGained(FocusEvent e)void focusLost(FocusEvent e)有助於找出哪個組件重點關注。

瞭解更多關於What is FocusListener Interface and How it Works