繁体   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