我知道要创建标题边框,您可以执行以下操作:
BorderFactory.createTitledBorder(" Your Title ");
然而,这会创建一个矩形边框,而我需要一个带有弯角的矩形。
根据我的理解,您可以通过以下方式创建自己的自定义边框:
class CustomBorder implements Border
{
...
}
问题在于我不确定如何编写覆盖该方法的代码:
public void paintBorder(Component component, Graphics g, int x, int y, int width, int height)
或者更好的是,有没有办法在不实现自己的Border类的情况下完成它?如果没有,你会如何编写自定义标题边框?我可以画一个带圆角的矩形,但是你怎么做才能有标签的空间呢?
答案 0 :(得分:6)
可以创建带有圆边的标题边框,而无需实现自己的Border类。只需将圆形边框传递给TitledBorder的构造函数即可。请尝试以下方法:
LineBorder roundedLineBorder = new LineBorder(Color.black, 5, true);
TitledBorder roundedTitledBorder = new TitledBorder(roundedLineBorder, "Title");
答案 1 :(得分:3)
虽然这个帖子已经有点老了,也许有人绊倒它可能会发现解决方案很有用:
您可以为所需的任何边框添加标题:
在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"));
现在,您应该会看到自定义边框以及标题,并使用您正在使用的外观和感觉的默认设置。