如何向 jtextfield 添加填充

Posted

技术标签:

【中文标题】如何向 jtextfield 添加填充【英文标题】:How can I add padding to a jtextfield 【发布时间】:2012-02-06 05:42:08 【问题描述】:

如何向 jtextfield 添加一些填充? 我试过tf.setMargin(new Insets(5,5,5,5)); 没有任何效果。

【问题讨论】:

【参考方案1】:
yourTextFeildVariable.setBorder(BorderFactory.createCompoundBorder(yourTextFeildVariable.getBorder(), BorderFactory.createEmptyBorder(0, 5, 0, 0)));

这是 100% 的工作

【讨论】:

【参考方案2】:

我知道这为时已晚,但实际上,如果您希望在 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);

【讨论】:

【参考方案3】:

您可以将其应用于已经创建的带有边框的文本框

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

【讨论】:

【参考方案4】:

最简单的方法是使用BorderFactory

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

【讨论】:

【参考方案5】:

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

解决办法是让UI设置一个边框,然后挤进自己的另一个边框:

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

【讨论】:

【参考方案6】:

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

EmptyBorder(5, 5, 5, 5)

【讨论】:

以上是关于如何向 jtextfield 添加填充的主要内容,如果未能解决你的问题,请参考以下文章

如何从 A 类中的 JTextField 输入向 B 类中的数据库插入值

使用来自 JtextField 的 java/jdbc 进行参数传递

在设置可见之前向 JFrame 添加内容

如何将文档侦听器添加到面板内的 JTextFields?

如何向 scrollTop() 函数添加填充

如何向带有边框的 JPanel 添加填充