我想知道为什么我的元素JTextField在设置新的Border后会改变高度:
packagesAddField.setBorder(BorderFactory.createLineBorder(Color.RED));
这段代码后,我的JTextField更改了高度(距上端约1px,距页脚约1px)。有可能,当我设置一些边框时,他可以更改组件的外观吗?
最佳答案
总之,不要。 setBorder()
API建议您将边框添加到封闭的容器中:
尽管从技术上讲,您可以在继承自JComponent
的任何对象上设置边框,但是许多标准Swing组件的外观实现都无法与用户设置的边框很好地配合。通常,当您要在除JPanel
或JLabel
之外的标准Swing组件上设置边框时,建议将组件放在JPanel
中,并在JPanel
上设置边框。
或者,考虑InputVerifier
。