【问题标题】:Java rounded corners on JFrame?JFrame上的Java圆角?
【发布时间】:2013-09-21 17:36:10
【问题描述】:

我有一个用于我的应用程序的登录 JFrame,我想让框架的角由几个像素变圆。

我想在不使用 JFrame 上的透明度并且必须在 JPanel 内使用背景图像的情况下执行此操作 - 这可能吗?

【问题讨论】:

    标签: java swing jframe rounded-corners


    【解决方案1】:

    没有装饰的框架是可能的,考虑下面的例子:

    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 执行相同操作:

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

    【讨论】:

      【解决方案2】:

      试试这个。它有效:)

      yourframe.setUndecorated(true);
      yourframe.setBackground(new Color(0, 0, 0, 180));
      yourframe.addComponentListener(new ComponentAdapter() {
                     @Override
                      public void componentResized(ComponentEvent e) {
                          setShape(new RoundRectangle2D.Double(0, 0, getWidth(), getHeight(), 80, 80));
                      }
                  });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-13
        • 2012-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-01
        • 2010-09-17
        • 1970-01-01
        相关资源
        最近更新 更多