我想知道为什么我的元素JTextField在设置新的Border后会改变高度:

  packagesAddField.setBorder(BorderFactory.createLineBorder(Color.RED));


这段代码后,我的JTextField更改了高度(距上端约1px,距页脚约1px)。有可能,当我设置一些边框时,他可以更改组件的外观吗?

最佳答案

总之,不要。 setBorder() API建议您将边框添加到封闭的容器中:


  尽管从技术上讲,您可以在继承自JComponent的任何对象上设置边框,但是许多标准Swing组件的外观实现都无法与用户设置的边框很好地配合。通常,当您要在除JPanelJLabel之外的标准Swing组件上设置边框时,建议将组件放在JPanel中,并在JPanel上设置边框。


或者,考虑InputVerifier

09-10 07:11
查看更多