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命令
- 下一篇: 安卓手机备份软件(安卓手机数据备份软件)