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

时间:2010-02-17 14:43:37

标签: java swing jtextfield

代码是这样的:

JTextField txt = new JTextField();
txt.setBorder(BorderFactory.createMatteBorder(2,2,2,2,Color.red));

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

我要用JLabel(例如)替换它

JLabel txt = new JLabel();
txt.setBorder(BorderFactory.createMatteBorder(2,2,2,2,Color.red));

我会看到红色边框。

有人可以告诉我为什么吗?或者甚至更好地向我解释如何在JTextField中添加边框?

1 个答案:

答案 0 :(得分:6)

查看this explanation/recommendation from the Java API

  

一般情况下,当你想设置一个   标准Swing组件上的边框   除了JPanel或JLabel,我们   建议您放置组件   在JPanel中设置边框   的JPanel。

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