java实现颜色拾色器并打包成exe文件

2023-10-25 13:44

本文主要是介绍java实现颜色拾色器并打包成exe文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们先来看看效果

一.源码

废话不多说,直接上代码:

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);// 设置支持中文字符集的字体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() {@Overridepublic 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() {@Overridepublic void run() {ColorPicker colorPicker = new ColorPicker();colorPicker.setVisible(true);colorPicker.setLocationRelativeTo(null); // 屏幕中央显示}});}
}

代码解读如下:

import javax.swing.*; // 导入Swing包,这是Java用于创建图形用户界面(GUI)的库import java.awt.*; // 导入AWT包,它包含构建和绘制用户界面所需的类和方法import java.awt.event.ActionEvent; // 导入ActionEvent类,它是Java中事件处理的一种类,用于处理用户界面事件import java.awt.event.ActionListener; // 导入ActionListener接口,它包含处理用户界面事件的方法public class ColorPicker extends JFrame { // 定义一个名为ColorPicker的类,该类继承自JFrame类(Java的窗口类)private JButton colorButton; // 定义一个私有的JButton对象,用于创建一个显示“选择颜色”的按钮private JPanel colorPanel; // 定义一个私有的JPanel对象,用于显示所选择的颜色public ColorPicker() { // 定义ColorPicker类的构造函数setTitle("颜色拾色器"); // 设置窗口的标题为“颜色拾色器”setSize(400, 200); // 设置窗口的大小为400x200像素setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗口关闭时的默认操作为退出程序// 设置支持中文字符集的字体Font chineseFont = new Font("微软雅黑", Font.PLAIN, 16); // 创建一个字体对象,使用“微软雅黑”字体、普通样式(没有粗体、斜体等效果),大小为16colorButton = new JButton("选择颜色"); // 创建一个新的JButton对象,显示文本为“选择颜色”colorButton.setFont(chineseFont); // 为这个按钮设置上述定义的字体colorPanel = new JPanel(); // 创建一个新的JPanel对象,用于显示所选择的颜色colorPanel.setPreferredSize(new Dimension(200, 100)); // 设置这个面板的首选大小为200x100像素colorPanel.setBorder(BorderFactory.createEtchedBorder()); // 为这个面板设置一个边框效果,样式为刻蚀样式的边框colorButton.addActionListener(new ActionListener() { // 为这个按钮添加一个动作监听器,当按钮被点击时触发相应的事件处理方法@Overridepublic void actionPerformed(ActionEvent e) { // 这是事件处理方法,当按钮被点击时会被调用Color selectedColor = JColorChooser.showDialog(null, "选择颜色", colorPanel.getBackground()); // 使用JColorChooser类显示一个对话框,让用户选择颜色,选择的颜色将被返回(selectedColor)if (selectedColor != null) { // 如果用户选择了颜色(即selectedColor不为null)colorPanel.setBackground(selectedColor); // 将这个面板的背景色设置为所选择的颜色}}});setLayout(new BorderLayout()); // 为窗口设置布局,这里使用的是BorderLayout布局,可以将组件放在北、南、东、西和中心位置JPanel buttonPanel = new JPanel(); // 创建一个新的JPanel对象,用于放置“选择颜色”按钮buttonPanel.setLayout(new FlowLayout(FlowLayout.CENTER)); // 为这个按钮面板设置布局,这里使用的是FlowLayout布局,按钮会水平排列在中心位置(居中)buttonPanel.add(colorButton); // 将“选择颜色”按钮添加到这个按钮面板中JPanel mainPanel = new JPanel(); // 创建一个新的JPanel对象,作为主要的面板mainPanel.setLayout(new BorderLayout()); // 为这个主要面板设置布局,这里使用的是BorderLayout布局

运行ColorPicker即可,效果如下

二、将jar打包成exe

1.首先将ColorPicker打包成jar包,直接通过idea编辑器packge即可打包成功。

2.下载安装JSmooth

JSmooth是一款开源的Java应用程序,主要用于为Java应用程序创建本机Windows启动器。它可以将Java应用程序打包成一个独立的可执行文件(.exe),使得用户无需事先安装Java虚拟机(JVM)即可直接运行Java应用程序。JSmooth的优点在于它能够自动识别和利用已安装的JVM,即使在没有安装JVM的计算机上,也可以通过JSmooth打包的exe文件运行Java应用程序。此外,JSmooth还可以对Java应用程序进行优化,以提高其运行效率,包括压缩应用程序大小、提高启动速度等。除了上述功能,JSmooth还具有一些其他的特点。例如,它支持自定义应用程序图标、版本信息等,使得打包后的应用程序更加美观和易用。此外,JSmooth还提供了日志记录和错误报告等功能,方便开发人员进行调试和故障排除。总之,JSmooth是一个非常实用的工具,它可以帮助开发人员将Java应用程序更加便捷地部署到Windows操作系统中,同时也提供了许多额外的功能来优化和监控Java应用程序的运行状态。

 3.双击打开JSmooth

4.点击骨架,我从骨架中选择Windows Wrapper(根据自己程序需要选择

5.点击可执行文件,填写生成EXE文件的文件名(路径)和图标

 6.选择主类的类型和jar的路径

7.点击小齿轮即可生成exe文件

关注“一码当先”,回复“jsmooth”即可获取

获取JSmooth安装包和拾色器

这篇关于java实现颜色拾色器并打包成exe文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/282965

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听