在AWT应用程序中,我需要设置TextField的边框颜色。
在JTextField中,我知道我们可以执行以下操作
JTextField tf = new JTextField();
tf.setBorder(BorderFactory.createLineBorder(Color.decode("#2C6791")));
但是在awt TextField中无法使用setBorder()方法。这个问题有解决办法吗?
答案 0 :(得分:8)
AWT TextField
不支持边框,正如您所发现的那样。您可以通过将文本字段放在Panel
内,使其略大于文本字段并更改面板的背景颜色来模拟边框。
答案 1 :(得分:2)
与外观兼容;感觉变化,setBorder()
API推荐以下内容:“通常,当您要在JPanel
或JLabel
以外的标准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);