[英]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.