How can I add padding to a jtextfield

fenerlitk picture fenerlitk · Jan 9, 2012 · Viewed 20.7k times · Source

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.

Answer

Russell Zahniser picture Russell Zahniser · Jan 9, 2012

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)));