制作Java告白exe应用程序(跑马灯+MusicPlayer)超简单

java超级小白,大佬勿喷

本文章适用于java小小白

一、制作准备

jdk1.8、IntelliJ IDEA 、java运行环境、以及创作所需要的jar包(百度网盘 请输入提取码)提取码:1123;

废话不多说,上干货

二、模块制作

1、准备好你的idea

2、创建一个新项目

3、随便取一个项目名

4、在src目录下创建一个包,再在包下面创建java class类

5、idea中src涉及的全部类

附代码

Barrage的代码,34-41行引号中可写出想对ta说的话

package HeartRain;

import java.awt.*;
import java.util.Random;

public class Barrage extends Frame
{
    public void mbarrage()throws InterruptedException
    {

        Random rnumber=new Random();
        int Ycoordinates=rnumber.nextInt(1080);
        int speed=rnumber.nextInt(10);
        this.setSize(800,200);
        this.setLocation(0,-400);
        this.setAlwaysOnTop(true);
        this.setUndecorated(true);
        Color color =new Color(0,0,0,0);
        this.setBackground(color);
        this.setVisible(true);
        int Xcoordinates=-800;
        while (true){
            this.setLocation(Xcoordinates,Ycoordinates);
            Xcoordinates = Xcoordinates - speed;
            Thread.sleep(10);
            if (Xcoordinates<-400){
                Xcoordinates=1920;
            }
        }
    }
    @Override
    public void paint(Graphics g) {
        String[] discourse = new String[8];
        discourse[0] = "0";
        discourse[1] = "1";
        discourse[2] = "2";
        discourse[3] = "3";
        discourse[4] = "4";
        discourse[5] = "5";
        discourse[6] = "6";
        discourse[7] = "7";
        Random suiji=new Random();
        int i=suiji.nextInt(8);
        Font sz =new Font(Font.DIALOG,Font.BOLD,50);
        g.setFont(sz);
        Color color=new Color(255, 55, 80,255);
        g.setColor(color);
        g.drawString(discourse[i],50,50);

    }
}

 BarragThread的代码

package HeartRain;

public class BarrageThread extends Thread {

        @Override
        public void run() {
        Barrage barrage=new Barrage();
        try {
            barrage.mbarrage();
        } catch (InterruptedException e)
        {
            e.printStackTrace();
        }
    }
    }


 Heart的代码,46-53行可添加照片,由于要进行jar包的操作所以这里我选择了用反射的操作进行地址的选择(格式如photo[7]所示)

package HeartRain;

import image.Photo;

import javax.imageio.ImageIO;

import java.awt.*;

import java.awt.image.BufferedImage;

import java.io.*;
import java.util.Random;
public class Heart extends Frame
{
    public void mheart() throws InterruptedException
    {
        Random rnumber=new Random();
        int Xcoordinates=rnumber.nextInt(1920);
        int speed=rnumber.nextInt(10);
        this.setSize(200,200);
        this.setLocation(-400,-400);
        this.setAlwaysOnTop(true);
        this.setUndecorated(true);
        Color color =new Color(0,0,0,0);
        this.setBackground(color);
        this.setVisible(true);
        int Ycoordinates=-200;
        while (true)
        {
            this.setLocation(Xcoordinates,Ycoordinates);
            Ycoordinates = Ycoordinates + speed;
                Thread.sleep(10);
                if (Ycoordinates > 1080)
                {
                    Ycoordinates = -200;

                }
            }
        }

    @Override
    public void paint(Graphics g)
    {
        try {
            String[] photo = new String[8];
            photo[0] = "0";
            photo[1] = "1";
            photo[2] = "2";
            photo[3] = "3";
            photo[4] = "4";
            photo[5] = "5";
            photo[6] = "6";
            photo[7] = "mmexport1639900654117.jpg";
            Random suiji=new Random();
            int i=suiji.nextInt(8);
          Random rnumber = new Random();
           int size = rnumber.nextInt(200);
            InputStream resourceAsStream = Photo.class.getResourceAsStream(photo[i]);
            BufferedImage pt =ImageIO.read(resourceAsStream);
            g.drawImage(pt, 0, 0, size, size, null);
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

 HeartThread的代码

package HeartRain;

public class HeartThread extends Thread
{
    @Override
    public void run() {
        Heart Lheart=new Heart();
    try {
        Lheart.mheart();
    } catch (InterruptedException e)
    {
        e.printStackTrace();
    }
    }
}

MusicThread的代码我用与 Heart相同的方法

package HeartRain;



import com.leilei.MusicPlayer;
import javazoom.jl.player.Player;
import music.mus;

import java.io.FileInputStream;
import java.io.InputStream;

public class MusicThread extends Thread{
    @Override
    public void run(){
        try {
            InputStream resourceAsStream =  mus.class.getResourceAsStream("CMJ - 告白之夜(纯音乐).mp3");
            Player player = new Player(resourceAsStream);
            player.play();
        }
        catch (Exception e) {
            e.printStackTrace();
        }

    }

}

最后是Test代码

package HeartRain;

import java.io.FileNotFoundException;

public class Test {
    public static void main(String[] args) throws InterruptedException , FileNotFoundException {
        MusicThread music =new MusicThread();
        music.start();
        for (int i=0;i<50;i++)
        { BarrageThread barrage=new BarrageThread();
        barrage.start();}
        for (int i=0;i<50;i++){
        HeartThread thread=new HeartThread();
        thread.start();
         }
    }
}

 图片与音乐就如图所示这样创建就行(注意与图片/音乐的同级下要创建一个类)

 

好啦我们的准备工作完成了

现在运行

 部分效果如图所示照片从上往下循环随机以不同的速度下落,弹幕从左往有也是循环随机以不同的速度移动

 三、Jar包以及将jar包转换成exe文件可参考((35条消息) 教你如何idea的Java项目打包成exe文件_写代码赚钱买包包的博客-CSDN博客_idea打包exe

 这样我们一个简单的小玩具就做成啦!!!!

 

 

  

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Java简单表白小程序可以按照以下步骤进行实现: 1. 创建一个Java类作为程序的入口点。 2. 在该类中引入JavaFX库来实现图形化界面。 3. 创建一个窗口并设置其大小、标题等属性。 4. 在窗口中添加文本框、按钮等组件,用于输入表白的内容和触发发送表白的操作。 5. 设置按钮的监听事件,在按钮被点击时执行相应的操作。 6. 在事件处理方法中获取文本框中输入的表白内容。 7. 利用Java的Socket编程功能,将表白内容发送给指定的接收方。 8. 将发送成功的消息显示在界面上。 具体实现的过程如下: ```java import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.TextField; import javafx.scene.layout.VBox; import javafx.stage.Stage; import java.io.IOException; import java.io.OutputStream; import java.net.Socket; import java.nio.charset.StandardCharsets; public class LoveProgram extends Application { private TextField textField; private Button sendButton; @Override public void start(Stage primaryStage) { textField = new TextField(); sendButton = new Button("发送"); sendButton.setOnAction(event -> sendLove()); VBox vbox = new VBox(10, textField, sendButton); Scene scene = new Scene(vbox, 300, 200); primaryStage.setTitle("表白小程序"); primaryStage.setScene(scene); primaryStage.show(); } private void sendLove() { String loveContent = textField.getText(); try { Socket socket = new Socket("接收方IP", 8888); OutputStream outputStream = socket.getOutputStream(); outputStream.write(loveContent.getBytes(StandardCharsets.UTF_8)); outputStream.flush(); outputStream.close(); textField.setText("发送成功!"); } catch (IOException e) { e.printStackTrace(); textField.setText("发送失败!"); } } public static void main(String[] args) { launch(args); } } ``` 这样,我们就实现了一个简单Java表白小程序。当点击发送按钮时,程序会将文本框中的内容发送给指定的接收方IP(需根据实际情况更改),并在界面上显示发送结果。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值