Java-JFrame上只有两个圆角

Java-JFrame上只有两个圆角,java,swing,jframe,rounded-corners,Java,Swing,Jframe,Rounded Corners,我想为我目前正在进行的一个项目,在JFrame上绕过顶部的两个角。我目前正在使用setShape(新的RoundRectangle2D.Double(0,0,200252,30,30))对所有四个角进行舍入但我不希望底部两个圆角,我希望底部是一个正常的角。您可以将形状组合在一起以获得此效果。通过将圆角矩形与正常矩形组合,您可以创建一个没有底部两个圆角的矩形 比如说 public class example extends JFrame{ public example() {

我想为我目前正在进行的一个项目,在JFrame上绕过顶部的两个角。我目前正在使用setShape(新的RoundRectangle2D.Double(0,0,200252,30,30))对所有四个角进行舍入但我不希望底部两个圆角,我希望底部是一个正常的角。

您可以将形状组合在一起以获得此效果。通过将圆角矩形与正常矩形组合,您可以创建一个没有底部两个圆角的矩形

比如说

public class example extends JFrame{

    public example() {
        this.setUndecorated(true);
        this.getContentPane().setBackground(Color.red);

        Area shape1 = new Area(new RoundRectangle2D.Double(0, 0, 200, 252, 30, 30));
        Area shape2 = new Area(new Rectangle(0, 252-30, 200, 100));
        shape1.add(shape2);
        this.setShape(shape1);
        this.setSize(300, 400);
    }
    public static void main(String[] args) {
        new example().setVisible(true);
    }

}


或者,您可以为框架指定比圆形矩形更小的高度。这样您就看不到圆形矩形的底部。然后您可以获得所需的输出。您可以组合形状来获得此输出。通过将圆形矩形与普通矩形组合,您可以制作一个底部没有两个圆角的矩形

比如说

public class example extends JFrame{

    public example() {
        this.setUndecorated(true);
        this.getContentPane().setBackground(Color.red);

        Area shape1 = new Area(new RoundRectangle2D.Double(0, 0, 200, 252, 30, 30));
        Area shape2 = new Area(new Rectangle(0, 252-30, 200, 100));
        shape1.add(shape2);
        this.setShape(shape1);
        this.setSize(300, 400);
    }
    public static void main(String[] args) {
        new example().setVisible(true);
    }

}

或者,您可以为框架指定比圆形矩形更小的高度。这样您就看不到圆形矩形的底部。然后您就可以获得所需的输出