Java在JFrame上圆角?

我有一个登录JFrame我的应用程序,我想使框架的角落圆几个像素。

我喜欢这样做而不使用JFrame上的透明度并且必须在JPanel中使用背景图像 – 这可能吗?

对于未修饰的框架,可以考虑以下示例:

 JFrame frame = new JFrame(); frame.setUndecorated(true); frame.setShape(new RoundRectangle2D.Double(10, 10, 100, 100, 50, 50)); frame.setSize(300, 200); frame.setVisible(true); 

此代码适用于Java 7.对于Java 6(自更新10开始),您可以对AWTUtilities.setWindowShape执行相同的AWTUtilities.setWindowShape

 JFrame frame = new JFrame(); frame.setUndecorated(true); AWTUtilities.setWindowShape(frame, new RoundRectangle2D.Double(10, 10, 100, 100, 50, 50)); frame.setSize(300, 200); frame.setVisible(true); 

尝试这个。 这是工作 :)

 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)); } });