texto resultado obtener mostrar indicativo fondo eventos ejemplo como java swing user-interface padding jtextfield

java - resultado - ¿Cómo puedo agregar relleno a un campo jtext



texto de fondo en jtextfield (5)

¿Cómo puedo agregar algo de relleno a un jtextfield? He intentado tf.setMargin(new Insets(5,5,5,5)); Lo que no tiene ningún efecto.


El problema que tiene es que la interfaz de usuario está configurando su propio borde en el campo de texto, anulando el margen establecido. Puede ver una advertencia a este efecto en el javadoc de setMargin() .

La solución es dejar que la interfaz de usuario establezca un borde, luego presione otro borde propio:

field.setBorder(BorderFactory.createCompoundBorder( field.getBorder(), BorderFactory.createEmptyBorder(5, 5, 5, 5)));


La forma más sencilla es utilizar BorderFactory

field.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));


Puede aplicar esto a un cuadro de texto ya creado con un borde

jTextField1.setBorder(BorderFactory.createCompoundBorder(jTextField1.getBorder(), BorderFactory.createEmptyBorder(6, 6, 6, 6)));


Sé que es un año demasiado tarde, pero en realidad, si desea una apariencia coherente en Java, debe editar la interfaz de usuario para que cada campo de texto que cree no necesite su propio código especial. Entonces, tomando del ejemplo de Russel Zahniser arriba:

Border tfBorder = UIManager.getBorder("TextField.border"); Border newBorder = BorderFactory.createCompoundBorder(tfBorder, BorderFactory.createEmptyBorder(5, 5, 5, 5))); UIManager.setBorder("TextField.border", newBorder);


Tiene que mirar CompoundBorder , allí puede configurar LineBorder(Color.gray, 1) y con

EmptyBorder(5, 5, 5, 5)