2011-11-28 132 views
2

是否可以檢查jtextfield是否已被選中/取消選定(即文本字段已被點擊且光標現在在該字段內)?檢查是否選擇了JTextfield

//編輯 得益於以下這裏的幫助是一個工作示例

import java.awt.event.FocusEvent; 
import java.awt.event.FocusListener; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 

@SuppressWarnings("serial") 
public class test extends JFrame { 

private static JPanel panel = new JPanel(); 
private static JTextField textField = new JTextField(20); 
private static JTextField textField2 = new JTextField(20); 

public test() { 
    panel.add(textField); 
    panel.add(textField2); 
    this.add(panel); 
} 

public static void main(String args[]) { 

    test frame = new test(); 
    frame.setVisible(true); 
    frame.setSize(500, 300); 
    frame.setLocationRelativeTo(null); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    textField.addFocusListener(new FocusListener() { 

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

     @Override 
     public void focusLost(FocusEvent e) { 
      System.out.println("de-selected"); 
     } 
    }); 
    } 
} 
+1

請學習Java命名約定並嚴格遵守 – kleopatra

回答

6

已經超出了它,則需要使用focusGainedfocusLost事件看,以及何時取消選擇(即獲得/失去焦點)。

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

import javax.swing.JTextField; 

public class Main { 

    public static void main(String args[]) { 
     final JTextField textField = new JTextField(); 
     textField.addFocusListener(new FocusListener() { 

      @Override 
      public void focusGained(FocusEvent e) { 
       //Your code here 
      } 

      @Override 
      public void focusLost(FocusEvent e) { 
       //Your code here 
      } 
     }); 

    } 
} 
+0

感謝您的代碼,從中我創建了一個工作示例以上。 – Ricco

6

您可以嘗試isFocusOwner()

+0

感謝,我從來沒有見過這個命令之前,我就開始工作就可以了... – Ricco

2

是否有可能檢查一個JTextField已經選擇/取消選擇

是,使用focusGainedfocusLost事件。

文本字段已被點擊並且光標現在在該字段內?

使用isFocusOwner()如果此Component是焦點所有者,則返回true。

0
if(((JFrame)getTopLevelAncestor()).getFocusOwner() == textField) { 
    .... 
}