Java+swing实现抖音上的表白程序详解


Posted in Java/Android onJune 25, 2022

带你手把手,用 java swing实现抖音上的表白程序

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);
	}
}

以上就是Java+swing实现抖音上的表白程序详解的详细内容,更多关于Java swing表白程序的资料请关注三水点靠木其它相关文章!


Tags in this post...

Java/Android 相关文章推荐
教你用Java在个人电脑上实现微信扫码支付
Jun 13 Java/Android
详解JAVA中的OPTIONAL
Jun 14 Java/Android
详解Java实现设计模式之责任链模式
Jun 23 Java/Android
详解Java实现数据结构之并查集
Jun 23 Java/Android
实体类或对象序列化时,忽略为空属性的操作
Jun 30 Java/Android
MyBatis-Plus 批量插入数据的操作方法
Sep 25 Java/Android
Java 在生活中的 10 大应用
Nov 02 Java/Android
Android自定义scrollview实现回弹效果
Apr 01 Java/Android
Java 数据结构七大排序使用分析
Apr 02 Java/Android
Dubbo+zookeeper搭配分布式服务的过程详解
Apr 03 Java/Android
Android在Sqlite3中的应用及多线程使用数据库的建议
Apr 24 Java/Android
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
Jun 21 Java/Android
Java Spring Boot请求方式与请求映射过程分析
Jun 25 #Java/Android
Spring Cloud OAuth2实现自定义token返回格式
Jun 25 #Java/Android
Spring Cloud OpenFeign模版化客户端
Jun 25 #Java/Android
Java服务调用RestTemplate与HttpClient的使用详解
Jun 21 #Java/Android
springboot创建的web项目整合Quartz框架的项目实践
Jun 21 #Java/Android
springboot读取resources下文件的方式详解
Jun 21 #Java/Android
java实现自定义时钟并实现走时功能
Jun 21 #Java/Android
You might like
php采集文章中的图片获取替换到本地(实现代码)
2013/07/08 PHP
Joomla简单判断用户是否登录的方法
2016/05/04 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
javascript 动态生成私有变量访问器
2009/12/06 Javascript
前台js对象在后台转化java对象的问题探讨
2013/12/20 Javascript
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
Javascript 实现全屏滚动实例代码
2016/12/31 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
Js实现复选框的全选、全不选反选功能代码实例
2020/02/28 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
决策树的python实现方法
2014/11/18 Python
python实现比较两段文本不同之处的方法
2015/05/30 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
python逐行读写txt文件的实例讲解
2018/04/03 Python
python爬虫自动创建文件夹的功能
2018/08/01 Python
python将.ppm格式图片转换成.jpg格式文件的方法
2018/10/27 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
django创建css文件夹的具体方法
2020/07/31 Python
浅谈CSS3 动画卡顿解决方案
2019/01/02 HTML / CSS
html5配合css3实现带提示文字的输入框(摆脱js)
2013/03/08 HTML / CSS
自主招生自荐信范文
2013/12/04 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
企业趣味活动方案
2014/08/21 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
2015年大学班长个人工作总结
2015/04/24 职场文书
婚礼迎宾词大全
2015/08/10 职场文书
重阳节主题班会
2015/08/17 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
某药房的新员工入职告知书!
2019/07/15 职场文书