How can I add padding to a jtextfield

空扰寡人 提交于 2019-12-03 22:30:03

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

you have look at CompoundBorder, there you can set LineBorder(Color.gray, 1) and with

EmptyBorder(5, 5, 5, 5)

The simplest way is using BorderFactory

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

I know this is years too late, but actually, if you want a consistent look and feel in Java, you should be editing the UI so every text field you create doesn't need its own special code. So, taking from Russel Zahniser's example above:

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

UIManager.setBorder("TextField.border", newBorder);
donprecious iyeritufu

You can apply this to a textbox already created with a border

jTextField1.setBorder(BorderFactory.createCompoundBorder(jTextField1.getBorder(), BorderFactory.createEmptyBorder(6, 6, 6, 6)));
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!