欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

jframe透明_使JFrame透明

发布时间:2023/12/3 编程问答 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 jframe透明_使JFrame透明 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

jframe透明

首先创建一个带有滑块的框架,该滑块将用于设置透明度量。 import javax.swing.JFrame; import javax.swing.JSlider;public class TransparentFrame extends JFrame {public TransparentFrame() {setTitle('Transparent Frame');setSize(400,400);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JSlider slider = new JSlider(JSlider.HORIZONTAL);add(slider);setVisible(true);}public static void main(String[] args) {new TransparentFrame();} }

其输出将是:

现在将更改侦听器添加到滑块,以便我们可以对其进行监视。

slider.addChangeListener(new ChangeListener() {@Overridepublic void stateChanged(ChangeEvent e) {} });

现在,我们将用这种方法编写透明性逻辑,但是在执行此操作之前,首先让我们看一下如何使JFrame透明。

为了使JFrame透明,java具有一个内置的实用程序类AWTUtilities 。 通过使用此类提供的方法,我们可以使JFrame透明。 以下是该代码:

AWTUtilities.setWindowOpacity(window, floatOpacity);

参数:

窗口–您的框架/窗口对象。

floatOpactity –在0到1之间。1表示没有不透明度,0表示完全透明。

因此,现在我们知道必须将此逻辑添加到滑块更改事件,并将滑块值指定为floatOpacity值。 因此,对于以下状态更改stateChanged()方法:

@Override public void stateChanged(ChangeEvent e) {JSlider slider = (JSlider) e.getSource();if(!slider.getValueIsAdjusting()){AWTUtilities.setWindowOpacity(TransparentFrame.this, slider.getValue());} }

认为已经完成。 不,我们仍然必须确保不透明度值不超过其0.0f到1.0f的限制。 因此,我们必须将滑块限制为这些值。 由于滑块不支持点值,因此我们将以10的倍数取值,然后将它们除以100得到所需的值。 为此,我们将更改JSlider声明和stateChanged,如下所示:

JSlider slider = new JSlider(JSlider.HORIZONTAL, 10, 100, 100);

在stateChanged方法中更改以下行:

AWTUtilities.setWindowOpacity(TransparentFrame.this, slider.getValue()/100f);

所以现在当我们运行该程序时,我们看到一个带有滑块的框架,该滑块设置为结束。 当我们更改滑块时,框架会相应地更改其透明度。

输出:

注意:

要在Eclipse中使用AWTUtilities类,您需要更改首选项设置,否则访问受限类可能会出错。 要更改设置,请执行以下操作:

  • 右键单击您的项目。 选择属性。
  • 选择Java编译器并将其展开。
  • 选择错误/警告。
  • 启用项目特定的设置。
  • 在“不建议使用和限制的API”中,您将找到“禁止引用”(访问规则)。将其更改为“警告”或“忽略”
  • 参考: harryjoy博客上的JCG合作伙伴 Harsh Raval 使JFrame透明 。


    翻译自: https://www.javacodegeeks.com/2012/09/make-jframe-transparent.html

    jframe透明

    总结

    以上是生活随笔为你收集整理的jframe透明_使JFrame透明的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。