如何将填充添加到jtextfield

时间:2012-01-09 17:35:58

标签: java swing user-interface padding jtextfield

如何在jtextfield中添加一些填充? 我已经尝试了tf.setMargin(new Insets(5,5,5,5));,但没有任何效果。

6 个答案:

答案 0 :(得分:33)

您遇到的问题是UI正在文本字段上设置自己的边框,从而覆盖您设置的边距。您可以在setMargin()的javadoc中看到此效果的警告。

解决方案是让UI设置边框,然后挤入您自己的另一个边框:

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

答案 1 :(得分:4)

你看CompoundBorder,你可以设置LineBorder(Color.gray, 1)

EmptyBorder(5, 5, 5, 5)

答案 2 :(得分:2)

最简单的方法是使用BorderFactory

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

答案 3 :(得分:1)

我知道这已经太晚了,但是实际上,如果您想要Java的一致外观,应该编辑UI,这样您创建的每个文本字段都不需要自己的文本字段特殊代码。因此,以上述Russel Zahniser的示例为例:

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

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

答案 4 :(得分:0)

yourTextFeildVariable.setBorder(BorderFactory.createCompoundBorder(yourTextFeildVariable.getBorder(), BorderFactory.createEmptyBorder(0, 5, 0, 0)));

这可以100%工作

enter image description here

答案 5 :(得分:-1)

您可以将其应用于已使用边框

创建的文本框
jTextField1.setBorder(BorderFactory.createCompoundBorder(jTextField1.getBorder(), BorderFactory.createEmptyBorder(6, 6, 6, 6)));