【问题标题】:Transparent JFrame background透明 JFrame 背景
【发布时间】:2011-02-01 18:47:03
【问题描述】:

是否可以制作一个具有透明背景的 JFrame 并在其上绘制图像,这样只有图像可见,没有边框或背景?

【问题讨论】:

    标签: java transparency jframe background-image


    【解决方案1】:

    是的,可以通过多种方式实现。这是其中之一:

    setUndecorated(true);
    setBackground(new Color(1.0f,1.0f,1.0f,0.5f));
    

    Color 构造函数中的第 4 个浮点数(我设置为 0.5f)是 alpha 通道。它可以是 0.0f - 1.0f 取决于您想要的透明度。

    【讨论】:

    • 一旦我将0.5f 替换为0.0f,这对我有用。很好的答案。
    【解决方案2】:

    参见 Kirill Grouchnikov 的 Translucent and Shaped Swing Windows

    【讨论】:

    【解决方案3】:

    您也应该使内容窗格透明。

    frame.setUndecorated(true);
    frame.getContentPane().setBackground(new Color(1.0f,1.0f,1.0f,0.0f));
    frame.setBackground(new Color(1.0f,1.0f,1.0f,0.0f));
    

    【讨论】:

      【解决方案4】:

      有可能。

      如果您的 JFrame 是局部变量或字段:

      myJFrame.setUndecorated(true);
      

      如果你的类扩展了 JFrame:

      setUndecorated(true);
      

      【讨论】:

      • 真的,从 jdk7 开始,透明度只支持未装饰的框架。但是,如何调用方法应该是基本知识:-)
      【解决方案5】:

      对于 Mac OS X 示例,请参阅 Re-paint problem on translucent frame/panel/component

      【讨论】:

        【解决方案6】:

        setOpacity(0.50f);//50% 不透明

        【讨论】:

          猜你喜欢
          • 2012-07-27
          • 2014-05-28
          • 1970-01-01
          • 2013-06-05
          • 2016-08-26
          • 2013-04-08
          • 1970-01-01
          • 1970-01-01
          • 2015-12-11
          相关资源
          最近更新 更多