JTextField select 获得焦点时的所有内容
JTextField select all content when focus gained
我有一个 class 实现 FocusListener,在 class 里面有很多 JTextField,当获得焦点时我想要所有这些 select。这是我的 focusGained()
函数:
@Override
public void focusGained(FocusEvent fe)
{
JTextField txt = (JTextField)fe.getComponent();
txt.selectAll();
}
我尝试将 fe
转换为组件然后 selectAll()
,但它不起作用。对此有什么想法吗?
您需要使用getSource()
((JTextField)fe.getSource()).selectAll();
我会亲自检查 instanceof
fe.getSource()
@Override
public void focusGained(FocusEvent fe) {
if (!(fe.getSource() instanceof JTextField)) return;
JTextField txt = (JTextField)fe.getSource();
txt.selectAll();
}
您的代码应该可以工作,因此我假设侦听器未在 JTextField 中注册。你必须做某事。像这样(通知 addFocusListener 方法):
public class MyClass implements FocusListener {
public JTextField createTextField() {
JTextField field = new JTextField();
//add this class as a listener to the textfield
field.addFocusListener(this);
return field;
}
@Override
public void focusGained(FocusEvent fe) {
JTextField txt = (JTextField)fe.getComponent();
txt.selectAll();
}
@Override
public void focusLost(FocusEvent e) {
}
}
我有一个 class 实现 FocusListener,在 class 里面有很多 JTextField,当获得焦点时我想要所有这些 select。这是我的 focusGained()
函数:
@Override
public void focusGained(FocusEvent fe)
{
JTextField txt = (JTextField)fe.getComponent();
txt.selectAll();
}
我尝试将 fe
转换为组件然后 selectAll()
,但它不起作用。对此有什么想法吗?
您需要使用getSource()
((JTextField)fe.getSource()).selectAll();
我会亲自检查 instanceof
fe.getSource()
@Override
public void focusGained(FocusEvent fe) {
if (!(fe.getSource() instanceof JTextField)) return;
JTextField txt = (JTextField)fe.getSource();
txt.selectAll();
}
您的代码应该可以工作,因此我假设侦听器未在 JTextField 中注册。你必须做某事。像这样(通知 addFocusListener 方法):
public class MyClass implements FocusListener {
public JTextField createTextField() {
JTextField field = new JTextField();
//add this class as a listener to the textfield
field.addFocusListener(this);
return field;
}
@Override
public void focusGained(FocusEvent fe) {
JTextField txt = (JTextField)fe.getComponent();
txt.selectAll();
}
@Override
public void focusLost(FocusEvent e) {
}
}