簡體   English   中英

更改AWT TextField的邊框顏色

[英]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建議如下:“通常,當您想在除JPanelJLabel之外的標准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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM