[英]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");
雖然這個線程已經有點老了,但也許有人絆倒它可能會發現解決方案很有用:
您可以為所需的任何邊框添加標題:
實現你的自定義邊框類public class MyBorder extends AbstractBorder {...
並在public void paintBorder(Component c, Graphics g, int x, int y, int w, int h)
方法中你可以在Graphics上繪制自己的自定義邊框上下文
創建此自定義邊框的實例
Border myborder = new MyBorder();
使用自定義邊框作為模板創建TitledBorder並將其添加到您想要的對象(在本例中為JPanel:
jPanel1.setBorder(BorderFactory.createTitledBorder(myborder , "Border title"));
您現在應該看到自定義邊框以及標題,其中包含您正在使用的外觀和默認設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.