la única manera de hacer que funciona en todas las circunstancias es la siguiente configuración:
setBorder (BorderFactory.createLineBorder (new Color (0, 0, 0, 0), 2));
lo contrario (cuando tiene el fondo nulo del contenedor principal) verá que el cursor "I" permanece para siempre en el borde izquierdo de su JTextField. (Basta con hacer algunas pruebas para diferentes espesores de frontera y observar de manera bastante extraña el JTextField coloca el cursor cuando se activa por primera vez.)
o también puede configurar:
setBorder (BorderFactory.createLineBorder (getBackground(), 2));
pero obtendrá el campo opticaly más grande por 2 píxeles en las cuatro direcciones. Si no especifica el grosor del borde, verá el cursor ENTRE este borde y el campo restante para siempre.
sería interesante saber qué sistema/entorno está utilizando. O hay más código involucrado ... Esto (nuevamente) funciona perfectamente para mí. Vea esta imagen con algunos resultados (y código): http: // img709.imageshack.us/img709/9034/fields.jpg –