Search code examples
javaswinguser-interfacepaddingjtextfield

How can I add padding to a jtextfield


How can I add some padding to a jtextfield? I've tried tf.setMargin(new Insets(5,5,5,5)); which doesn't have any effect.


Solution

  • The problem you are having is that the UI is setting its own border on the text field, overriding the margin you set. You can see a warning to this effect in the javadoc of setMargin().

    The solution is to let the UI set a border, then squeeze in another border of your own:

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