当JTextField
事件发生时,默认情况下会自动选择JTextArea
和focusGained
中的文字吗?
答案 0 :(得分:6)
你刚刚说了怎么做 - FocusGistener的focusGained事件。
然后,您可以通过FocusEvent的getSource()
方法获取焦点已获得的JComponent,然后在其上调用selectAll()
方法。
类似的东西:
FocusAdapter selectAllFocusAdapter = new FocusAdapter() {
public void focusGained(FocusEvent e) {
final JTextComponent tComponent = (JTextComponent) e.getSource();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
tComponent.selectAll();
}
});
tComponent.selectAll();
}
};
myJTextField.addFocusListener(selectAllFocusAdapter);
otherJTextField.addFocusListener(selectAllFocusAdapter);
myTextArea.addFocusListener(selectAllFocusAdapter);
答案 1 :(得分:6)
这就是你需要的:
jTextField1.selectAll();
更多信息如下:
jTextField1.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
if(jTextField1.getText().equals(initialText))
//jTextField1.setText("");
jTextField1.selectAll();
}
@Override
public void focusLost(FocusEvent e) {
if(jTextField1.getText().equals(""))
jTextField1.setText("whatever");
}
});
答案 2 :(得分:5)
你期待像
这样的东西 class MyFocusTextField extends JTextField {
{
addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
FocusTextField.this.select(0, getText().length());
}
@Override
public void focusLost(FocusEvent e) {
FocusTextField.this.select(0, 0);
}
});
}
}