基于java實(shí)現(xiàn)顏色拾色器并打包成exe
我們先來(lái)看看效果
1.源碼
廢話(huà)不多說(shuō),直接上代碼:
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class ColorPicker extends JFrame { private JButton colorButton; private JPanel colorPanel; public ColorPicker() { setTitle("顏色拾色器"); setSize(400, 200); setDefaultCloseOperation(JFrame.*EXIT_ON_CLOSE*); // 設(shè)置支持中文字符集的字體 Font chineseFont = new Font("微軟雅黑", Font.*PLAIN*, 16); colorButton = new JButton("選擇顏色"); colorButton.setFont(chineseFont); // 使用中文支持的字體 colorPanel = new JPanel(); colorPanel.setPreferredSize(new Dimension(200, 100)); colorPanel.setBorder(BorderFactory.*createEtchedBorder*()); colorButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Color selectedColor = JColorChooser.*showDialog*(null, "選擇顏色", colorPanel.getBackground()); if (selectedColor != null) { colorPanel.setBackground(selectedColor); } } }); setLayout(new BorderLayout()); JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new FlowLayout(FlowLayout.*CENTER*)); buttonPanel.add(colorButton); JPanel mainPanel = new JPanel(); mainPanel.setLayout(new BorderLayout()); mainPanel.add(buttonPanel, BorderLayout.*NORTH*); mainPanel.add(colorPanel, BorderLayout.*CENTER*); add(mainPanel, BorderLayout.*CENTER*); } public static void main(String[] args) { SwingUtilities.*invokeLater*(new Runnable() { @Override public void run() { ColorPicker colorPicker = new ColorPicker(); colorPicker.setVisible(true); colorPicker.setLocationRelativeTo(null); // 屏幕中央顯示 } }); } }
代碼解讀如下:
import javax.swing.*; // 導(dǎo)入Swing包,這是Java用于創(chuàng)建圖形用戶(hù)界面(GUI)的庫(kù) import java.awt.*; // 導(dǎo)入AWT包,它包含構(gòu)建和繪制用戶(hù)界面所需的類(lèi)和方法 import java.awt.event.ActionEvent; // 導(dǎo)入ActionEvent類(lèi),它是Java中事件處理的一種類(lèi),用于處理用戶(hù)界面事件 import java.awt.event.ActionListener; // 導(dǎo)入ActionListener接口,它包含處理用戶(hù)界面事件的方法 public class ColorPicker extends JFrame { // 定義一個(gè)名為ColorPicker的類(lèi),該類(lèi)繼承自JFrame類(lèi)(Java的窗口類(lèi)) private JButton colorButton; // 定義一個(gè)私有的JButton對(duì)象,用于創(chuàng)建一個(gè)顯示“選擇顏色”的按鈕 private JPanel colorPanel; // 定義一個(gè)私有的JPanel對(duì)象,用于顯示所選擇的顏色 public ColorPicker() { // 定義ColorPicker類(lèi)的構(gòu)造函數(shù) setTitle("顏色拾色器"); // 設(shè)置窗口的標(biāo)題為“顏色拾色器” setSize(400, 200); // 設(shè)置窗口的大小為400x200像素 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 設(shè)置窗口關(guān)閉時(shí)的默認(rèn)操作為退出程序 // 設(shè)置支持中文字符集的字體 Font chineseFont = new Font("微軟雅黑", Font.PLAIN, 16); // 創(chuàng)建一個(gè)字體對(duì)象,使用“微軟雅黑”字體、普通樣式(沒(méi)有粗體、斜體等效果),大小為16 colorButton = new JButton("選擇顏色"); // 創(chuàng)建一個(gè)新的JButton對(duì)象,顯示文本為“選擇顏色” colorButton.setFont(chineseFont); // 為這個(gè)按鈕設(shè)置上述定義的字體 colorPanel = new JPanel(); // 創(chuàng)建一個(gè)新的JPanel對(duì)象,用于顯示所選擇的顏色 colorPanel.setPreferredSize(new Dimension(200, 100)); // 設(shè)置這個(gè)面板的首選大小為200x100像素 colorPanel.setBorder(BorderFactory.createEtchedBorder()); // 為這個(gè)面板設(shè)置一個(gè)邊框效果,樣式為刻蝕樣式的邊框 colorButton.addActionListener(new ActionListener() { // 為這個(gè)按鈕添加一個(gè)動(dòng)作監(jiān)聽(tīng)器,當(dāng)按鈕被點(diǎn)擊時(shí)觸發(fā)相應(yīng)的事件處理方法 @Override public void actionPerformed(ActionEvent e) { // 這是事件處理方法,當(dāng)按鈕被點(diǎn)擊時(shí)會(huì)被調(diào)用 Color selectedColor = JColorChooser.showDialog(null, "選擇顏色", colorPanel.getBackground()); // 使用JColorChooser類(lèi)顯示一個(gè)對(duì)話(huà)框,讓用戶(hù)選擇顏色,選擇的顏色將被返回(selectedColor) if (selectedColor != null) { // 如果用戶(hù)選擇了顏色(即selectedColor不為null) colorPanel.setBackground(selectedColor); // 將這個(gè)面板的背景色設(shè)置為所選擇的顏色 } } }); setLayout(new BorderLayout()); // 為窗口設(shè)置布局,這里使用的是BorderLayout布局,可以將組件放在北、南、東、西和中心位置 JPanel buttonPanel = new JPanel(); // 創(chuàng)建一個(gè)新的JPanel對(duì)象,用于放置“選擇顏色”按鈕 buttonPanel.setLayout(new FlowLayout(FlowLayout.CENTER)); // 為這個(gè)按鈕面板設(shè)置布局,這里使用的是FlowLayout布局,按鈕會(huì)水平排列在中心位置(居中) buttonPanel.add(colorButton); // 將“選擇顏色”按鈕添加到這個(gè)按鈕面板中 JPanel mainPanel = new JPanel(); // 創(chuàng)建一個(gè)新的JPanel對(duì)象,作為主要的面板 mainPanel.setLayout(new BorderLayout()); // 為這個(gè)主要面板設(shè)置布局,這里使用的是BorderLayout布局 mainPanel.add(but
運(yùn)行ColorPicker即可,效果如下
2.將jar打包成exe
1.首先將ColorPicker打包成jar包,直接通過(guò)idea編輯器packge即可打包成功。
2.下載安裝JSmooth
JSmooth是一款開(kāi)源的Java應(yīng)用程序,主要用于為Java應(yīng)用程序創(chuàng)建本機(jī)Windows啟動(dòng)器。它可以將Java應(yīng)用程序打包成一個(gè)獨(dú)立的可執(zhí)行文件(.exe),使得用戶(hù)無(wú)需事先安裝Java虛擬機(jī)(JVM)即可直接運(yùn)行Java應(yīng)用程序。JSmooth的優(yōu)點(diǎn)在于它能夠自動(dòng)識(shí)別和利用已安裝的JVM,即使在沒(méi)有安裝JVM的計(jì)算機(jī)上,也可以通過(guò)JSmooth打包的exe文件運(yùn)行Java應(yīng)用程序。此外,JSmooth還可以對(duì)Java應(yīng)用程序進(jìn)行優(yōu)化,以提高其運(yùn)行效率,包括壓縮應(yīng)用程序大小、提高啟動(dòng)速度等。除了上述功能,JSmooth還具有一些其他的特點(diǎn)。例如,它支持自定義應(yīng)用程序圖標(biāo)、版本信息等,使得打包后的應(yīng)用程序更加美觀和易用。此外,JSmooth還提供了日志記錄和錯(cuò)誤報(bào)告等功能,方便開(kāi)發(fā)人員進(jìn)行調(diào)試和故障排除。總之,JSmooth是一個(gè)非常實(shí)用的工具,它可以幫助開(kāi)發(fā)人員將Java應(yīng)用程序更加便捷地部署到Windows操作系統(tǒng)中,同時(shí)也提供了許多額外的功能來(lái)優(yōu)化和監(jiān)控Java應(yīng)用程序的運(yùn)行狀態(tài)。
3.雙擊打開(kāi)JSmooth
4.點(diǎn)擊骨架,我從骨架中選擇Windows Wrapper(根據(jù)自己程序需要選擇
5.點(diǎn)擊可執(zhí)行文件,填寫(xiě)生成EXE文件的文件名(路徑)和圖標(biāo)
6.選擇主類(lèi)的類(lèi)型和jar的路徑
7.點(diǎn)擊小齒輪即可生成exe文件
以上就是基于java實(shí)現(xiàn)顏色拾色器并打包成exe的詳細(xì)內(nèi)容,更多關(guān)于java顏色拾色器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Scala數(shù)據(jù)庫(kù)連接池的簡(jiǎn)單實(shí)現(xiàn)
本文主要介紹了Scala數(shù)據(jù)庫(kù)連接池的簡(jiǎn)單實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02一款不可錯(cuò)過(guò)的Java應(yīng)用診斷利器Arthas
Arthas是一款由阿里巴巴開(kāi)源的Java應(yīng)用診斷利器,它可以幫助開(kāi)發(fā)人員在運(yùn)行時(shí)對(duì)Java應(yīng)用進(jìn)行調(diào)試和診斷,解決線(xiàn)上問(wèn)題,本文將簡(jiǎn)單的描述一下該工具的用法和常用命令,以勾起大家對(duì)此工具應(yīng)用的興趣2023-06-06高可用架構(gòu)etcd選主故障主備秒級(jí)切換實(shí)現(xiàn)
這篇文章主要為大家介紹了高可用架構(gòu)etcd選主故障主備秒級(jí)切換的實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-02-02Java應(yīng)用啟動(dòng)停止重啟Shell腳本模板server.sh
這篇文章主要為大家介紹了Java應(yīng)用啟動(dòng)、停止、重啟Shell腳本模板server.sh,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Java代碼執(zhí)行順序——類(lèi)的初始化場(chǎng)景
這篇文章主要為大家介紹了Java代碼執(zhí)行順序類(lèi)的初始化場(chǎng)景實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Idea代理設(shè)置與Java程序的代理設(shè)置方式
文章總結(jié):學(xué)習(xí)WebService時(shí),使用Fiddler抓取包數(shù)據(jù),發(fā)現(xiàn)Idea代理設(shè)置與Java程序代理設(shè)置不同,Java程序需要在發(fā)送請(qǐng)求前設(shè)置代理,代碼如下2025-01-01

十大常見(jiàn)Java String問(wèn)題_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理