搜尋
首頁Javajava教程怎麼用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實作抖音上的表白程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?Mar 17, 2025 pm 05:46 PM

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?如何使用適當的版本控制和依賴項管理創建和使用自定義Java庫(JAR文件)?Mar 17, 2025 pm 05:45 PM

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?Mar 17, 2025 pm 05:44 PM

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?如何將JPA(Java持久性API)用於具有高級功能(例如緩存和懶惰加載)的對象相關映射?Mar 17, 2025 pm 05:43 PM

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?Mar 17, 2025 pm 05:35 PM

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中