簡體   English   中英

如何在Java Swing中創建圓角標題邊框

[英]How to create a rounded title border in Java Swing

我明白要創建標題邊框,你可以這樣做:

BorderFactory.createTitledBorder("  Your Title  ");

然而,這會創建一個矩形邊框,而我需要一個帶有彎角的矩形。

根據我的理解,您可以通過以下方式創建自己的自定義邊框:

class CustomBorder implements Border
{
  ...
}

問題是我不確定如何編寫覆蓋該方法的代碼:

public void paintBorder(Component component, Graphics g, int x, int y, int width, int height)

或者更好的是,有沒有辦法在不實現自己的Border類的情況下完成它? 如果沒有,你會如何編寫自定義標題邊框? 我可以畫一個帶圓角的矩形,但是你怎么做才能有標簽的空間呢?

可以創建帶有圓邊的標題邊框,而無需實現自己的Border類。 只需將圓形邊框傳遞給TitledBorder的構造函數即可。 請嘗試以下方法:

LineBorder roundedLineBorder = new LineBorder(Color.black, 5, true);
TitledBorder roundedTitledBorder = new TitledBorder(roundedLineBorder, "Title");

雖然這個線程已經有點老了,但也許有人絆倒它可能會發現解決方案很有用:

您可以為所需的任何邊框添加標題:

  1. 實現你的自定義邊框類public class MyBorder extends AbstractBorder {...並在public void paintBorder(Component c, Graphics g, int x, int y, int w, int h)方法中你可以在Graphics上繪制自己的自定義邊框上下文

  2. 創建此自定義邊框的實例

     Border myborder = new MyBorder(); 
  3. 使用自定義邊框作為模板創建TitledBorder並將其添加到您想要的對象(在本例中為JPanel:

     jPanel1.setBorder(BorderFactory.createTitledBorder(myborder , "Border title")); 

您現在應該看到自定義邊框以及標題,其中包含您正在使用的外觀和默認設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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