JTextField上的setBorder不起作用?还是吗?

Mar*_* V. 6 java swing jtextfield

代码是这样的:

JTextField txt = new JTextField();
txt.setBorder(BorderFactory.createMatteBorder(2,2,2,2,Color.red));
Run Code Online (Sandbox Code Playgroud)

但是文本字段忽略了我的调用setBorder.没有任何改变.

我要替换它JLabel(例如)

JLabel txt = new JLabel();
txt.setBorder(BorderFactory.createMatteBorder(2,2,2,2,Color.red));
Run Code Online (Sandbox Code Playgroud)

我会看到红色边框.

谁能告诉我为什么?或者甚至更好地向我解释如何添加边框JTextField

Tim*_*thy 6

从Java API查看此解释/建议

通常,如果要在除JPanel或JLabel之外的标准Swing组件上设置边框,我们建议您将组件放在JPanel中并在JPanel上设置边框.

所以...你应该将JTextField嵌套在JPanel或JLabel中,并将边框放在JPanel或JLabel上.瞧!

  • 嘿.我想改变一系列API文档比修复一个代码球以使用`BorderUIResource`更容易. (5认同)