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类,您需要更改首选项设置,否则访问受限类可能会出错。 要更改设置,请执行以下操作:
参考: harryjoy博客上的JCG合作伙伴 Harsh Raval 使JFrame透明 。
翻译自: https://www.javacodegeeks.com/2012/09/make-jframe-transparent.html
jframe透明
总结
以上是生活随笔为你收集整理的jframe透明_使JFrame透明的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: linux命令压缩文件夹(linux命令
- 下一篇: mockito 使用_用Mockito回