更改AWT TextField的边框颜色

时间:2011-09-28 11:05:31

标签: java swing awt textfield border

在AWT应用程序中,我需要设置TextField的边框颜色。

在JTextField中,我知道我们可以执行以下操作

JTextField tf = new JTextField();
tf.setBorder(BorderFactory.createLineBorder(Color.decode("#2C6791")));

但是在awt TextField中无法使用setBorder()方法。这个问题有解决办法吗?

5 个答案:

答案 0 :(得分:8)

AWT TextField不支持边框,正如您所发现的那样。您可以通过将文本字段放在Panel内,使其略大于文本字段并更改面板的背景颜色来模拟边框。

答案 1 :(得分:2)

与外观兼容;感觉变化,setBorder() API推荐以下内容:“通常,当您要在JPanelJLabel以外的标准Swing组件上设置边框时,我们建议您放置JPanel中的组件,并在JPanel上设置边框。

附录:虽然这表明了一种方法,但它与纯粹的AWT应用程序无关。

答案 2 :(得分:1)

tf.setBorder(new LineBorder(Color.red,1));
//new LineBorder(color,width);

答案 3 :(得分:0)

tf.setBorder(new LineBorder(Color.red,1));
//new LineBorder(color,width);

由于方法已重载,因此您可以定义颜色,并将其余颜色保留为默认值。 另外,您可以定义整个方法,然后选择“颜色”,“线粗细”和拐角类型。是否舍入。

    public LineBorder(Color color) {
        this(color, 1, false);
    }
    public LineBorder(Color color, int thickness)  {
        this(color, thickness, false);
    }
    @ConstructorProperties({"lineColor", "thickness", "roundedCorners"})
    public LineBorder(Color color, int thickness, boolean roundedCorners)  {
        lineColor = color;
        this.thickness = thickness;
        this.roundedCorners = roundedCorners;
    }

答案 4 :(得分:0)

创建具有指定颜色和宽度的线条边框

Border border = BorderFactory.createLineBorder(Color.BLUE, 5);

设置此组件的边框

 JTextField.setBorder(border);