[英]Changing Border Color of AWT TextField
在AWT应用程序中,我需要设置TextField的边框颜色。
在JTextField中,我知道我们可以做到以下几点
JTextField tf = new JTextField();
tf.setBorder(BorderFactory.createLineBorder(Color.decode("#2C6791")));
但是在awt TextField中无法使用setBorder()方法。 这个问题有解决方法吗?
正如您所发现的,AWT TextField
不支持边框。 您可以通过将文本字段放在一个稍微大于文本字段的Panel
中并更改面板的背景颜色来模拟边框。
为了兼容外观和感觉变化, setBorder()
API建议如下:“通常,当您想在除JPanel
或JLabel
之外的标准Swing组件上设置边框时,我们建议您将组件放在JPanel
,在JPanel
上设置边框。“
附录:虽然这表明了一种方法,但它与纯AWT应用程序无关。
tf.setBorder(new LineBorder(Color.red,1));
//new LineBorder(color,width);
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;
}
创建具有指定颜色和宽度的线条边框
Border border = BorderFactory.createLineBorder(Color.BLUE, 5);
设置此组件的边框
JTextField.setBorder(border);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.