problema con JFormattedTextField y cursor
Publicado por jogugil (3 intervenciones) el 18/12/2011 18:46:43
Tengo un problema con JFormattedTextField. Lo utilizo para crear un formulario de una aplicación. en este formulario tengo varios JFormattedTextField cada uno con un formato. Lo que quiero es que cuando un JFormattedTextField tenga el foco el cursor se ponga al final del texto, ya sea un numero o una fecha o un string. Es decir, por ejemplo
JFT1: direccion|
JFT2: 12/10/2011|
Que el cursor siempre este al final. Ahora mismos cuando el JFormattedTextField coje el foco el cursor se pone al inicio del texto y no entiendo porque. He utilizado ya el evento FocusListener y el codigo
public void focusGained(FocusEvent e) {
if (e.getSource() instanceof JFormattedTextField) {
JFormattedTextField jf = ((JFormattedTextField)e.getSource());
if (jf.isEditValid()) {
if (((JFormattedTextField)e.getSource()).getCaret().getDot() != jf.getText().length() ) {
int lg = ((JFormattedTextField)e.getSource()).getText().length();
if (lg == 10 ){
lg = 4;
}
prueba 1 --> //((JFormattedTextField)e.getSource()).getCaret().setDot(lg);
prueba 2 --> //((JFormattedTextField)e.getSource()).getCaret().moveDot(lg);
prueba 3 --> ((JFormattedTextField)e.getSource()).setCaretPosition(lg);
}
}
}
}
pero no hace caso a ningun metodo el cursor sigue apareciendo al principio del texto y no al final....
por favor ayuda!!!!
JFT1: direccion|
JFT2: 12/10/2011|
Que el cursor siempre este al final. Ahora mismos cuando el JFormattedTextField coje el foco el cursor se pone al inicio del texto y no entiendo porque. He utilizado ya el evento FocusListener y el codigo
public void focusGained(FocusEvent e) {
if (e.getSource() instanceof JFormattedTextField) {
JFormattedTextField jf = ((JFormattedTextField)e.getSource());
if (jf.isEditValid()) {
if (((JFormattedTextField)e.getSource()).getCaret().getDot() != jf.getText().length() ) {
int lg = ((JFormattedTextField)e.getSource()).getText().length();
if (lg == 10 ){
lg = 4;
}
prueba 1 --> //((JFormattedTextField)e.getSource()).getCaret().setDot(lg);
prueba 2 --> //((JFormattedTextField)e.getSource()).getCaret().moveDot(lg);
prueba 3 --> ((JFormattedTextField)e.getSource()).setCaretPosition(lg);
}
}
}
}
pero no hace caso a ningun metodo el cursor sigue apareciendo al principio del texto y no al final....
por favor ayuda!!!!
Valora esta pregunta
0