首頁 > 軟體

Java+swing實現抖音上的表白程式詳解

2022-06-24 22:02:18

帶你手把手,用 java swing實現抖音上的表白程式

1.準備工作

a.需要下載一個帶著swing外掛的eclipse

b.需要設定好JDK

c.建立一個JFrame的專案(如下圖所示的步驟)

d.把資原始檔放入與src所在的那個目錄

步驟如下:

1.先複製資原始檔

2.貼上檔案

3.把jar檔案放入Referenced Libraries資料夾下

​ 這第3步的具體操作如何所示

那麼如何判斷新增是否成功呢?

解答:看Referenced Libraries下面是否出現了剛剛build path的

兩個檔案,若出現了,則代表新增成功(成功的檢視如下所示:)

e.design介面和source介面主要是幹嘛的?

source介面用於寫原始碼,主要是用於寫觸發按鍵某一事件,需要進行簡單的邏輯判斷

design介面是通過視覺化介面來幫我們進行介面的基本設計,直接拖拽即可,不用書寫那些定義、基本屬性的賦值這類的java程式碼了

2.介面表單的設計與實現

整體的按鈕的佈局應該如下圖所示

實現過程如下:

​ 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介面對"好的"按鈕新增滑鼠點選事件

3.1.2 跳轉到resource介面後,對滑鼠點選事件加上具體操作

//滑鼠點選後就會彈出提示
FrameUtil.msg("好的,老婆我就知道你會同意的");
//結束程式
System.exit(0);

3.2 對"滾"這個按鈕加上滑鼠進入事件

3.2.1 在design介面對"滾"按鈕新增滑鼠進入事件

3.2.2 跳轉到resource介面後,對滑鼠進入事件加上具體操作

//彈出資訊框,不斷的挽留,不允許它退出程式
FrameUtil.msg("老婆大人,原諒我好嗎?");
FrameUtil.msg("我錯了,再也不敢把錢不上交了");

3.3 對"滾"這個按鈕加上滑鼠點選事件(點中隨機位置了)

3.3.1 在design介面對"滾"按鈕新增滑鼠點選事件

3.3.2 跳轉到resource介面後,對滑鼠點選事件加上具體操作

//當用戶點選到滾按鈕的隨機位置時,也要進行一波挽留操作,不允許拒絕
//彈窗彈出挽留語句
FrameUtil.msg("老婆大人,原諒我好嗎?");
FrameUtil.msg("我錯了,再也不敢把錢不上交了");

4.設定滾按鈕的層級為最上面

無論怎麼移動,都是最上層

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("u9ED1u51E4u68A8");
		//設定表單關閉模式 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("u5C0Fu59D0u59D0u6211u559Cu6B22u4F60u5F88u4E45u4E86");
		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("u505Au6211u5973u670Bu53CBu597Du5417?");
		label.setForeground(Color.RED);
		label.setFont(new Font("微軟雅黑", Font.BOLD, 20));
		label.setBounds(269, 167, 219, 73);
		contentPane.add(label);
		
		JButton btnNewButton = new JButton("u597Du7684");
		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表白程式的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com