当前位置:

首页 > 编程开发 > 怎么用Java+swing实现抖音上的表白程序

怎么用Java+swing实现抖音上的表白程序

1.准备工作a.需要下载一个带着swing插件的eclipseb.需要配置好JDKc.创建一个JFrame的项目(如下图所示的步骤)d.把资源文件放入与src所在的那个目录步骤如下:1.先复制资源文件2.粘贴文件3.把jar文件放入ReferencedLibraries文件夹下这第3步的具体操作如何所示那么如何判断添加是否成功呢?解答:看ReferencedLibraries下面是否出现了刚刚buildpath的两个文件,若出现了,则代表添加成功(成功的视图如下所示:)e.design界面和source界

本文目录

    1.准备工作

    a.需要下载一个带着swing插件的eclipse

    b.需要配置好JDK

    c.创建一个JFrame的项目(如下图所示的步骤)

    怎么用Java+swing实现抖音上的表白程序

    怎么用Java+swing实现抖音上的表白程序

    怎么用Java+swing实现抖音上的表白程序

    d.把资源文件放入与src所在的那个目录

    步骤如下:

    1.先复制资源文件

    2.粘贴文件

    3.把jar文件放入Referenced Libraries文件夹下

    这第3步的具体操作如何所示

    怎么用Java+swing实现抖音上的表白程序

    那么如何判断添加是否成功呢?

    解答:看Referenced Libraries下面是否出现了刚刚build path的

    两个文件,若出现了,则代表添加成功(成功的视图如下所示:)

    怎么用Java+swing实现抖音上的表白程序

    e.design界面和source界面主要是干嘛的?

    source界面用于写源代码,主要是用于写触发按键某一事件,需要进行简单的逻辑判断

    design界面是通过可视化界面来帮我们进行界面的基本设计,直接拖拽即可,不用书写那些定义、基本属性的赋值这类的java代码了

    2.界面窗体的设计与实现

    整体的按钮的布局应该如下图所示

    怎么用Java+swing实现抖音上的表白程序

    实现过程如下:

    a.对窗体进行操作

    //设置窗体关闭模式 exit-退出程序 do_nothing退出没有任何操作
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //设置窗体的大小和坐标 x y  宽度 高度
    setBounds(100, 100, 584, 439);
    //居中显示
    setLocationRelativeTo(null);
    //设置窗体不可拖拽
    setResizable(false);
    //设置窗体的图标
    setIconImage(new ImageIcon("love.png").getImage());

    b.在design界面.根据刚刚的布局分布图,把按键移动到合适位置

    c.把gif图片设置为相应为相应按钮的图标

    lblNewLabel.setIcon(newImageIcon("E:\\Ueclipseworkspace\\love\\gfriend.gif"));

    d.对剩下的组件进行颜色的设置

    //以button按钮为例,进行颜色的设置
    //setforeground是设置控件里面的字体颜色
    btnNewButton.setForeground(Color.WHITE);
    //setbackground是设置控件里面的背景颜色
    btnNewButton.setBackground(Color.PINK);
    //setforeground是设置控件里面字体类型以及字体大小
    btnNewButton.setFont(new Font("微软雅黑", Font.BOLD, 15));

    3.对按钮加上监听事件

    3.1 对"好的"这个按钮加上鼠标点击事件

    3.1.1 在design界面对"好的"按钮添加鼠标点击事件

    怎么用Java+swing实现抖音上的表白程序

    3.1.2 跳转到resource界面后,对鼠标点击事件加上具体操作

    //鼠标点击后就会弹出提示
    FrameUtil.msg("好的,老婆我就知道你会同意的");
    //结束程序
    System.exit(0);

    3.2 对"滚"这个按钮加上鼠标进入事件

    3.2.1 在design界面对"滚"按钮添加鼠标进入事件

    怎么用Java+swing实现抖音上的表白程序

    3.2.2 跳转到resource界面后,对鼠标进入事件加上具体操作

    //弹出信息框,不断的挽留,不允许它退出程序
    FrameUtil.msg("老婆大人,原谅我好吗?");
    FrameUtil.msg("我错了,再也不敢把钱不上交了");

    3.3 对"滚"这个按钮加上鼠标点击事件(点中随机位置了)

    3.3.1 在design界面对"滚"按钮添加鼠标点击事件

    怎么用Java+swing实现抖音上的表白程序

    3.3.2 跳转到resource界面后,对鼠标点击事件加上具体操作

    //当用户点击到滚按钮的随机位置时,也要进行一波挽留操作,不允许拒绝
    //弹窗弹出挽留语句
    FrameUtil.msg("老婆大人,原谅我好吗?");
    FrameUtil.msg("我错了,再也不敢把钱不上交了");

    4.设置滚按钮的层级为最上面

    无论怎么移动,都是最上层

    怎么用Java+swing实现抖音上的表白程序

    5.为界面添加一首背景音乐

    //前提:需要把他人写好的资源包build path到自己的项目中
    //需要在窗体可见之前进行设置
    FrameUtil.playMusic("嫁给我.mp3");
    //当这首歌的路径和src文件夹同级别时,这样写就可以了
    //这个放的位置在方法体外面

    6.源代码

    package demo;
    
    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    
    import com.frame.util.FrameUtil;
    
    import javax.swing.JLabel;
    import javax.swing.ImageIcon;
    import java.awt.Color;
    import java.awt.Font;
    import javax.swing.JButton;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.util.Random;
    
    public class Love extends JFrame {
    
    	private JPanel contentPane;
    
    	/**
    	 * Launch the application.
    	 */
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					Love frame = new Love();
    					//设置窗体不可见
    					
    //					FrameUtil.playMusic("嫁给我.mp3");
    					frame.setVisible(true);
    					
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    		
    		FrameUtil.playMusic("嫁给我.mp3");
    	}
    
    	/**
    	 * Create the frame.
    	 */
    	public Love() {
    		//设置窗体的大小
    		setTitle("\u9ED1\u51E4\u68A8");
    		//设置窗体关闭模式 exit-退出程序 do_nothing退出没有任何操作
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		//设置窗体的大小和坐标 x y  宽度 高度
    		setBounds(100, 100, 584, 439);
    		//剧中显示
    		setLocationRelativeTo(null);
    		//设置窗体不可拖拽
    		setResizable(false);
    		//设置窗体的图标
    		setIconImage(new ImageIcon("love.png").getImage());
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(null);
    		
    		JButton button = new JButton("\u6EDA");
    		
    			button.setForeground(Color.WHITE);
    			button.setFont(new Font("微软雅黑", Font.BOLD, 15));
    			button.setBackground(Color.PINK);
    			button.setBounds(396, 273, 113, 27);
    			button.addMouseListener(new MouseAdapter() {
    				@Override
    				public void mouseEntered(MouseEvent arg0) {
    					Random random=new Random();
    					int x=random.nextInt(480);
    					int y=random.nextInt(380);
    					button.setBounds(x, y, 113, 27);
    				}
    				@Override
    				public void mouseClicked(MouseEvent e) {
    					FrameUtil.msg("老婆大人,原谅我好吗?");
    					FrameUtil.msg("我错了,再也不敢把钱不上交了");
    				}
    			});
    			contentPane.add(button);
    		
    		JLabel lblNewLabel = new JLabel("New label");
    		lblNewLabel.setIcon(new ImageIcon("E:\\Ueclipse-workspace\\love\\gfriend.gif"));
    		lblNewLabel.setBounds(14, 40, 200, 200);
    		contentPane.add(lblNewLabel);
    		
    		JLabel lblNewLabel_1 = new JLabel("\u5C0F\u59D0\u59D0\u6211\u559C\u6B22\u4F60\u5F88\u4E45\u4E86");
    		lblNewLabel_1.setFont(new Font("微软雅黑", Font.BOLD, 20));
    		lblNewLabel_1.setForeground(Color.PINK);
    		lblNewLabel_1.setBounds(269, 57, 219, 73);
    		contentPane.add(lblNewLabel_1);
    		
    		JLabel label = new JLabel("\u505A\u6211\u5973\u670B\u53CB\u597D\u5417?");
    		label.setForeground(Color.RED);
    		label.setFont(new Font("微软雅黑", Font.BOLD, 20));
    		label.setBounds(269, 167, 219, 73);
    		contentPane.add(label);
    		
    		JButton btnNewButton = new JButton("\u597D\u7684");
    		btnNewButton.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent arg0) {
    				//JOptionPane.showMessageDialog(null,"我的");
    				FrameUtil.msg("好的,老婆我就知道你会同意的");
    				System.exit(0);
    			}
    		});
    		btnNewButton.setForeground(Color.WHITE);
    		btnNewButton.setBackground(Color.PINK);
    		btnNewButton.setFont(new Font("微软雅黑", Font.BOLD, 15));
    		btnNewButton.setBounds(254, 272, 113, 27);
    		contentPane.add(btnNewButton);
    	}
    }
    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Java
    相关文章 更多
    Java单元测试入门:使用JUnit 5编写第一个测试用例
    Java单元测试入门:使用JUnit 5编写第一个测试用例

    面向初学者的JUnit 5实用入门指南。从测试概念、Maven依赖配置,到手把手编写首个单元测试用例及断言验证,助你掌握Java单元测试的核心流程。

    Java变量未初始化报错解析:局部变量与成员变量默认值差异
    Java变量未初始化报错解析:局部变量与成员变量默认值差异

    深入解析Java中局部变量未初始化编译报错与成员变量自动赋予默认值的机制差异,涵盖JVM内存分配、编译期确定性赋值检查与实际排查修复方案。

    Java获取当前时间并格式化输出:DateTimeFormatter与SimpleDateFormat
    Java获取当前时间并格式化输出:DateTimeFormatter与SimpleDateFormat

    详细讲解在Java中获取当前系统时间并进行格式化输出的两种核心方案:基于Java 8全新日期时间API的DateTimeFormatter与传统遗留的SimpleDateFormat,包含完整代码示例、线程安全机制对比及生产选型建议。

    Java中final与static final常量的定义及初始化规则
    Java中final与static final常量的定义及初始化规则

    深入解析Java中final变量与static final常量的定义、内存语义、初始化时机及合法赋值路径,涵盖编译期常量优化与实战避坑指南。

    Java抽象方法与接口方法的区别及选型建议
    Java抽象方法与接口方法的区别及选型建议

    深入对比Java中抽象类抽象方法与接口方法的语法演进、设计意图及运行期差异,并提供清晰的架构选型决策流程与实战范例。

    Java实现HTTP请求与JSON解析的完整代码示例
    Java实现HTTP请求与JSON解析的完整代码示例

    本文提供Java标准库HttpClient发起HTTP GET/POST请求并结合Jackson进行JSON数据反序列化与序列化的完整代码示例与工程实践指南。

    Java递归出现StackOverflowError的原因分析及栈空间优化方案
    Java递归出现StackOverflowError的原因分析及栈空间优化方案

    详细分析Java递归调用出现StackOverflowError的原因,结合代码说明线程栈、栈帧和递归深度之间的关系,并介绍终止条件排查、迭代改写、减少栈帧开销以及通过-Xss调整JVM栈空间的方法。

    Java空指针异常(NPE)的代码排查与修复实例
    Java空指针异常(NPE)的代码排查与修复实例

    针对Java中常见的NullPointerException(NPE),本文从堆栈日志定位、典型代码触发场景、具体修复代码对比到防御体系进行系统讲解,提供实用且易上手的排查与修复方案。

    selenium上传文件教程本地文件路径设置方法
    selenium上传文件教程本地文件路径设置方法

    深入解析Selenium处理文件上传的技术细节,涵盖标准HTML控件的路径直接注入法与非标准控件的系统级模拟方案,提供Windows与Linux环境下的路径设置最佳实践及常见异常排查。

    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景
    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景

    针对大数据工程场景,系统对比Java、Scala与Python在执行性能、生态结合、开发效率和维护成本上的核心差异,给出清晰的架构选型依据与落地方案。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。