Java 创建具有圆角的形状

Java 创建具有圆角的形状,java,swing,jframe,Java,Swing,Jframe,我正在使用NetBeans,我有一个空白的JFrame。JFrame实际上是空的。我希望这个JFrame有圆角 我怎样才能做到这一点呢?如果你想要圆角,那么你需要一个成型的框架。你可以通过打电话来实现。引用其文件: 必须满足以下条件才能设置非空形状: 基础系统必须支持PERPIXEL\u TRANSPARENT半透明 窗户必须没有装饰(请参见和) 窗口不得处于全屏模式(请参阅) 第二点,一个未修饰的框架,对应于你原始问题的一部分,在随后的编辑中被重新表述:它将给你 没有类似windows的东

我正在使用NetBeans,我有一个空白的
JFrame
JFrame
实际上是空的。我希望这个
JFrame
有圆角


我怎样才能做到这一点呢?

如果你想要圆角,那么你需要一个成型的框架。你可以通过打电话来实现。引用其文件:

必须满足以下条件才能设置非空形状:

  • 基础系统必须支持
    PERPIXEL\u TRANSPARENT
    半透明
  • 窗户必须没有装饰(请参见和)
  • 窗口不得处于全屏模式(请参阅)
第二点,一个未修饰的框架,对应于你原始问题的一部分,在随后的编辑中被重新表述:它将给你

没有类似windows的东西,只有表单,没有退出按钮,什么都没有


如果你想要圆角,那么你需要一个成型的框架。你可以通过打电话来实现。引用其文件:

必须满足以下条件才能设置非空形状:

  • 基础系统必须支持
    PERPIXEL\u TRANSPARENT
    半透明
  • 窗户必须没有装饰(请参见和)
  • 窗口不得处于全屏模式(请参阅)
第二点,一个未修饰的框架,对应于你原始问题的一部分,在随后的编辑中被重新表述:它将给你

没有类似windows的东西,只有表单,没有退出按钮,什么都没有

试试这个。其工作:)

试试这个。其工作:)


你所说的“形式”是指一个和一个框架吗?如果是的话,我可以把这个评论变成一个答案。哈哈,是的,这正是我的意思。你说的是AWT还是Swing?或者完全是别的什么?嗯,我想是摇摆。我打开了netbeans,选择了file-newproject-java应用程序。创建它,然后右键单击树中的节点,然后说new-jframe表单。那张表格。然后我做了设定(真);并且它显示。但我也说过,在形式上,它是未装饰的。所以这只是一张空白表格。如果我运行,它只是空白表格没有任何东西。我只想把尖角弄圆。这样看起来很好。然后我会做剩下的功能。你的问题不清楚,所以我编辑了它。根据上面的回答,我认为你所说的形式是指一个
JFrame
(请注意,我对你的问题进行了编辑,以便更清楚)。你所说的“形式”是指一个和框架吗?如果是的话,我可以把这个评论变成一个答案。哈哈,是的,这正是我的意思。你说的是AWT还是Swing?或者完全是别的什么?嗯,我想是摇摆。我打开了netbeans,选择了file-newproject-java应用程序。创建它,然后右键单击树中的节点,然后说new-jframe表单。那张表格。然后我做了设定(真);并且它显示。但我也说过,在形式上,它是未装饰的。所以这只是一张空白表格。如果我运行,它只是空白表格没有任何东西。我只想把尖角弄圆。这样看起来很好。然后我会做剩下的功能。你的问题不清楚,所以我编辑了它。根据上面的回答,我认为form是指
JFrame
(请注意,我对您的问题进行了编辑,以便更清楚)。在IDE中使用code
new RoundRectangle2D.Double(10010010080060050)
设置
shape
属性。通常
设置为未装饰(true)必须在设置形状之前(新的圆形矩形2D.Double(100100800600,50,50))RoundRectangle2D.Double
构造函数。在IDE中用code
new RoundRectangle2D.Double(100,100,800,600,50,50)
设置
shape
属性。通常
设置为未装饰(true)必须在设置形状之前(新的圆形矩形2D.Double(100100800600,50,50))RoundRectangle2D.Double
构造函数。
yourframe.setBackground(new Color(0, 0, 0, 180));
yourframe.setUndecorated(true);
yourframe.addComponentListener(new ComponentAdapter() {
               @Override
                public void componentResized(ComponentEvent e) {
                    setShape(new RoundRectangle2D.Double(0, 0, getWidth(), getHeight(), 80, 80));
                }
            });