select all on focus in lots of jTextField
10,616
Solution 1
Create on class and extend the JTextField now implement whatever you want in this class. And where you can create object of JTextField like this
JTextField txt1 = new JTextField();
frm.add(txt1);
instead of do this way
JTextField txt1 = new CustomText();
frm.add(txt1);
so you have to set the common class for the Text field
Solution 2
Create a class for this task:
static class FocusTextField 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);
}
});
}
}
Example usage (code below):
public static void main(String[] args) throws Exception {
JFrame frame = new JFrame("Test");
frame.setLayout(new GridLayout(5, 1));
frame.add(new FocusTextField());
frame.add(new FocusTextField());
frame.add(new FocusTextField());
frame.add(new FocusTextField());
frame.add(new FocusTextField());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
Solution 3
Is there any way to do this with one listener
You can use the KeyboardFocusManager. See the example from Global Event Listeners.
Comments
-
Ariyan almost 2 years
I have lots of jTextFields in my application (About 34 jTextFields) and I want all of them select all of their text when get focus and select none of text on focus lost.
Is there any way to do this with one listener or should I write a "FocusGained" and a "FocusLost" for each of these 34 jTextFields?Thanks