Java透明窗體的設置方法
若將JDK版本升級到最新版本,Java窗體就可以簡單實現窗體的透明效果,用戶可以通過拉動滑塊(Slider)調整窗體透明度,實現窗體不同透明程度的切換。下面讓我簡單實現窗體透明效果,用戶可以做些擴展。
步驟(STEPS)
打開Java開發(fā)工具Eclipse軟件,依次選擇“文件”、“新建”、“項目”,在“新建項目”窗口中選擇“Java項目”,然后點擊“下一步”按鈕。
在出現的窗體中的“項目名稱”后自定義輸入項目名,然后點擊“完成”按鈕完成項目的創(chuàng)建。
右擊創(chuàng)建的項目,在右鍵列表中依次選擇“新建”、“類”,在“新建類”窗體中輸入自定義類名,勾選相應復選框,點擊“完成”按鈕完成類的創(chuàng)建。
首先,做一些初始化窗體的工作,導入javax.swing.JFrame類,實現JFrame的繼承,初始化構造方法頭并在main方法內實例化此類以便做測試。
下面,在構造方法中創(chuàng)建窗體,導入javax.swing.JButton類,在窗體內加入按鈕,保持按鈕默認的布局方式,最后設置窗體顯示,運行程序查看初始效果。
運行Java程序后,將出現如下圖所示的初始化窗體界面,用戶需關閉窗體做下一步代碼的編寫。
添加按鈕BTN的ActionListenr()單擊事件,在出現的錯誤中點擊錯誤處,然后自動導入ActionListener類,但是仍然出現錯誤,用戶需再次點擊錯誤處以添加必要的方法實現。
當用戶解決兩次錯誤后,系統(tǒng)自動導入了所需包和加入了所需單擊事件的必要方法,直至此步,按鈕單機事件的代碼如下圖所示。
新建setOpacity()方法并在按鈕的單擊事件中調用此方法,然后在此類中作為屬性成員加入JSlider滑塊控件。
在新建的setOpacity()方法中添加如下代碼,設置dialog窗體的大小、位置、大小不可改變等屬性,用戶可自定義設置屬性。
創(chuàng)建JLabel,添加slider滑塊的滑動事件,并在事件中加入方法slider(),當然此方法需要新建,待會再新建,讓我們先把setOpacity()方法中的代碼添加完成。
繼續(xù)在setOpacity()方法中添加代碼,在窗體dialog中加入panel控件,再將lable和slider加入到panel中。
在方法slider()中添加代碼,獲取slider的值以改變透明度值,設置鼠標移入滑塊時的鼠標指針樣式。
運行Java程序,并點擊按鈕,然后出現調整透明度的窗體,用戶就可以設置窗體透明度,show出你的個性。
注意事項(ATTENTIONS)由于滑塊的值必須為整數,并且透明度是0.0-1.0,所以滑塊這樣設置:JSlider slider=new JSlider(0,9,0),滑塊的值除以10.0:double value=slider.getValue()/10.0,透明度設置:com.sun.awt.AWTUtilities.setWindowOpacity(this, (float)(1- value))。由于滑塊的值必須為整數,并且透明度是0.0-1.0,所以滑塊這樣設置:JSlider slider=new JSlider(0,9,0),滑塊的值除以10.0:double value=slider.getValue()/10.0,透明度設置:com.sun.awt.AWTUtilities.setWindowOpacity(this, (float)(1- value))。
JSlider(0,9,0):JSlider(最小值,最大值,初始值)。JSlider(0,9,0):JSlider(最小值,最大值,初始值)。
com.sun.awt.AWTUtilities.setWindowOpacity(this, (float)(1- value)):com.sun.awt.AWTUtilities.setWindowOpacity(當前窗體, 不透明度值),不透明度值越小窗體越透明,當value值越大時,(float)(1- value)值越小,船體越透明。com.sun.awt.AWTUtilities.setWindowOpacity(this, (float)(1- value)):com.sun.awt.AWTUtilities.setWindowOpacity(當前窗體, 不透明度值),不透明度值越小窗體越透明,當value值越大時,(float)(1- value)值越小,船體越透明。
用戶在導入包時,可以簡化包的導入,import java.awt.*、import java.awt.event.*分別表示導入awt及awt.event下的所有類。用戶在導入包時,可以簡化包的導入,import java.awt.*、import java.awt.event.*分別表示導入awt及awt.event下的所有類。
相關文章
SpringBoot中使用@ControllerAdvice注解詳解
這篇文章主要介紹了SpringBoot中使用@ControllerAdvice注解詳解,@ControllerAdvice,是Spring3.2提供的新注解,它是一個Controller增強器,可對controller中被 @RequestMapping注解的方法加一些邏輯處理,需要的朋友可以參考下2023-10-10mybatis plus條件構造器queryWrapper、updateWrapper
這篇文章主要介紹了mybatis plus條件構造器queryWrapper、updateWrapper,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09idea中MavenWeb項目不能創(chuàng)建Servlet的解決方案
這篇文章主要介紹了idea中MavenWeb項目不能創(chuàng)建Servlet的解決方案,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02Spring的編程式事務TransactionTemplate的用法詳解
TransactionTemplate提供了一種在代碼中進行編程式事務管理的方式,使開發(fā)人員能夠在方法級別定義事務的開始和結束點,本文介紹了Spring框架中TransactionTemplate的用法,感興趣的朋友跟隨小編一起看看吧2023-07-07Spring中ApplicationEvent事件機制源碼詳解
這篇文章主要介紹了Spring中ApplicationEvent事件機制源碼詳解,Spring中與事件有關的接口和類主要包括ApplicationEvent、ApplicationListener,下面來看一下Spring中事件的具體應用,需要的朋友可以參考下2023-09-09