使JFrame透明
其輸出將是:
現在將更改偵聽器添加到滑塊,以便我們可以對其進行監視。
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
總結
- 上一篇: 电脑没网怎么设置路由器没路由器如何外网设
- 下一篇: 电脑win键卡住(电脑卡住win键没反应