是否可以检查是否已选择/取消选择jtextfield(即已单击文本字段并且光标现在位于字段内)?
// EDIT 感谢下面的帮助,这是一个有效的例子
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");
}
});
}
}
答案 0 :(得分:6)
您可以尝试isFocusOwner()
答案 1 :(得分:6)
您需要使用focusGained
和focusLost
事件来查看它何时被选中,以及何时取消选择(即获得/失去焦点)。
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
}
});
}
}
答案 2 :(得分:2)
是否可以检查是否已选择/取消选择jtextfield
是的,请使用focusGained
和focusLost
个活动。
单击了文本字段,光标现在位于字段中?
如果此Component是焦点所有者,请使用isFocusOwner()返回true。
答案 3 :(得分:0)
if( ((JFrame)getTopLevelAncestor()).getFocusOwner() == textField ) {
....
}