如何在JavaSwing中创建圆形标题边框
我知道要创建标题边框,您可以执行以下操作:如何在JavaSwing中创建圆形标题边框,java,swing,Java,Swing,我知道要创建标题边框,您可以执行以下操作: BorderFactory.createTitledBorder(" Your Title "); 但是,这会创建一个矩形边框,而我需要一个带有弯曲拐角的矩形 现在,据我所知,您可以通过以下方式创建自己的自定义边框: class CustomBorder implements Border { ... } 问题是我不确定如何编写重写该方法的代码: public void paintBorder(Component component, Gr
BorderFactory.createTitledBorder(" Your Title ");
但是,这会创建一个矩形边框,而我需要一个带有弯曲拐角的矩形
现在,据我所知,您可以通过以下方式创建自己的自定义边框:
class CustomBorder implements Border
{
...
}
问题是我不确定如何编写重写该方法的代码:
public void paintBorder(Component component, Graphics g, int x, int y, int width, int height)
或者更好的是,有没有一种方法可以在不实现自己的Border类的情况下实现它?如果没有,你会如何写自定义标题边框?我可以用圆角绘制一个矩形,但如何才能使标签也有空间?不必实现自己的边框类,就可以创建带有圆角的标题边框。只需将一个圆形边框传递给TitledBorder的构造函数。请尝试以下操作:
LineBorder roundedLineBorder = new LineBorder(Color.black, 5, true);
TitledBorder roundedTitledBorder = new TitledBorder(roundedLineBorder, "Title");
虽然此线程已经有点旧了,但可能有人在遇到它时会发现解决方案很有用: 您可以将标题添加到所需的任何边框:
公共类MyBorder扩展AbstractBorder{…
并在公共void paintBorder(组件c、图形g、int x、int y、int w、int h)
方法,您可以在图形上下文上绘制自己的自定义边框Border myborder = new MyBorder();
jPanel1.setBorder(BorderFactory.createTitledBorder(myborder , "Border title"));
现在,您应该可以看到自定义边框及其上方的标题,标题具有您正在使用的外观和感觉的默认设置。请忽略此问题。创建RounderOrder类后,Swing将为您删除标题文本下的边框。实际上,忽略我的上一条注释。仅当您使用BorderFactory创建bord时,它才会执行此操作呃,比如线框。我想是时候看看线框是怎么画的了。。。