本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 版桌面 DJ 音乐播放器。

本文作者:HelloGitHub-秦人

HelloGitHub 推出的《讲解开源项目》系列,今天给大家带来一款开源 Java 版桌面 DJ 音乐播放器项目——XR3Player,它强大的功能和炫酷的展示效果,你肯定会喜欢上它的!

项目源码地址:https://github.com/goxr3plus/XR3Player

一、项目介绍

OpenJFX 是一个开源的下一代客户端应用程序平台,适用于基于 Java 构建的桌面、移动和嵌入式系统。

本篇我们就重点讲一下一款 Java 版桌面 DJ 音乐播放器,先看运行效果吧!

也可以直接下载音乐播放器安装包:下载地址,更多 Java 桌面程序可以从这里获取:openjfx.io

二、运行项目

2.1 前提

  • 安装 JDK11.2 或者更高版本,全称 Java Development Kit,它是 Java 的库函数,是编译、运行 Java 程序的工具包。
  • 安装 Maven3 环境,进行项目构建和项目依赖包管理。
  • 本地安装开发工具 IntelliJ IDEA。
  • 本地安装 GitBash 工具,主要用于下载项目。

2.2 下载项目

下载项目到本地,使用 GitBash 工具,执行如下命令:

git clone https://github.com/goxr3plus/XR3Player.git

将项目导入 Idea,Maven 会自动下载所需的依赖。等待几分钟后项目依赖包都可以下载下来。使用 Idea 自带的 Maven 构建工具,就可以将项目轻松打包。如下图:

注意

项目有一个依赖 jxbrowser-win64 可能会下载失败,这个 jar 竟然有 40Mb,建议手动下载后导入项目依赖。jxbrowser-win64 下载地址

2.3 运行项目

创建入口类

打开 Run/Debug Configurations 创建一个 Application ,并选择入口类,如下图:

VM options 设置

VM options 添加下面配置参数,然后点击保存即可。

--add-exports
javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix
--add-exports
javafx.controls/com.sun.javafx.scene.control=com.jfoenix
--add-exports
javafx.base/com.sun.javafx.binding=com.jfoenix
--add-exports
javafx.graphics/com.sun.javafx.stage=com.jfoenix
--add-exports
javafx.base/com.sun.javafx.event=com.jfoenix
--add-exports
javafx.graphics/com.sun.javafx.scene=org.controlsfx.controls,
--add-exports
javafx.graphics/com.sun.javafx.scene.traversal=org.controlsfx.controls

然后点击 Run MainDebug Main 就可以本地运行项目了。如下图:

三、音乐播放器使用

项目运行起来长这样子,如下图:

1、需要创建一个用户,点击登录就可以进入音乐播放器管理页面。

2、进入音乐播放器,需要创建自己的音乐播放列表,并导入本地音乐。

3、导入本地音乐后可选择,选择需要播放的音乐,这里直接拖动你想播放的音乐。

4、DJ 版播放器可以同步播放两首歌曲,并可以分别控制音量和播放速度。

5、音乐播放器内嵌了浏览器,和在线音乐的功能。

6、其他的功能期待你的发掘,如果你也喜欢这款音乐播放器的话。

四、JavaFx 工作原理

JavaFX 的原理是这样的(如下图):舞台(Stage),场景(Scene),容器(Container),布局(Layout)和控件(Controls)之间的关系:

在 JavaFX 中,Stage 是应用程序窗口,其中包含称为 Scene 的空间。Scene 包含界面的组件,如 UI 空间(按钮,输入框,复选框),容器等。

创建 JavaFx 项目

打开 Idea 开发工具,File -> New -> Project... -> Java Fx 创建项目,如下图:

Idea 会自动生成代码,这里我做了一些改动,代码如下:

public class Main extends Application {

    @Override
public void start(Stage primaryStage) throws Exception{
primaryStage.setTitle("JavaFX 登录");
//创建网格面板
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setHgap(10);
grid.setVgap(8);
grid.setPadding(new Insets(20, 20, 20, 20)); //设置背景色
Paint backgroundColor = new Color(0.32,0.6,0.32,1);
grid.setBackground(new Background(new BackgroundFill(backgroundColor,null,null)));
Text sceneTitle = new Text("欢迎进入系统");
sceneTitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 20));
grid.add(sceneTitle, 0, 0, 2, 1); //创建用户名标签
Label userName = new Label("用户名:");
grid.add(userName, 0, 1); //创建用户名输入框
TextField userTextField = new TextField();
grid.add(userTextField, 1, 1); //创建密码标签
Label pwLabel = new Label("密码:");
grid.add(pwLabel, 0, 2); //创建密码输入框
PasswordField passwordField = new PasswordField();
grid.add(passwordField, 1, 2); //创建提交按钮
Button commitBtn = new Button("登录");
HBox hbBtn = new HBox(10);
hbBtn.setAlignment(Pos.BOTTOM_RIGHT);
hbBtn.getChildren().add(commitBtn);
grid.add(hbBtn, 1, 4); final Text actionTarget = new Text();
grid.add(actionTarget, 1, 6); commitBtn.setOnAction(new EventHandler<ActionEvent>() { @Override
public void handle(ActionEvent e) {
actionTarget.setFill(Color.FIREBRICK);
actionTarget.setText("已发送请求到后台!");
}
}); Scene scene = new Scene(grid, 300, 275);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}

代码运行效果如下图:

了解 Java Swing 的伙伴应该很熟悉,两者的原理很相似。上面代码的意思是:创建一个面板,然后在面板上添加标签,输入框和按钮,并对按钮添加绑定事件,然后把这个面板添加到场景中,这个窗口就完成了。

五、最后

Java 桌面 DJ 音乐播放器是真的香!不知道你对这款音乐播放器有什么感受,欢迎在评论区说说自己的想法。人们都喜欢美的好的事物,而今天的这个项目是通过 Java 代码撸出来的,难道你还不会不喜欢 Java 这门编程语言吗? 有了成品的直观呈现,才能在视觉上产生更强的冲击,可能会更加能激发你的学习动力! 如果通过我的内容分享,能让你对编程产生兴趣,我是真的开心。如果渐渐喜欢上开源项目,平时也喜欢 coding,并且愿意分享你的经验和成果,那就更完美了,编程使我快乐,内容分享让我们认识更多伙伴!

教程至此,你应该也能快速运行 DJ 版音乐播放器了。编程是不是也特别有意思呢?手痒痒了那就赶紧安装这款音乐播放器吧,对源码感兴趣的朋友可以开始学习项目源码了~

六、参考资料



关注公众号加入交流群

躁!DJ 风格 Java 桌面音乐播放器的更多相关文章

  1. java swing 音乐播放器-乐乐音乐

    乐乐音乐1.0(本地版) 乐乐音乐是基于musique 开源播放器开发的java swing音乐播放器,实现了mp3.flac.ape.wav等多种音频格式的播放和ksc歌词的解析.制作和显示. 完成 ...

  2. Java模拟音乐播放器 暂停与重新播放——线程如何控制另外一个线程的状态

    package com.example.Thread; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEve ...

  3. NABCD分析java音乐播放器

    程设计题目:java音乐播放器 一.课程设计目的 1.编程设计音乐播放软件,使之实现音乐播放的功能. 2.培养学生用程序解决实际问题的能力和兴趣. 3.加深java中对多媒体编程的应用. 二.课程设计 ...

  4. 团队项目 NABCD分析java音乐播放器

    NABCD分析java音乐播放器 程设计题目:java音乐播放器 一.课程设计目的 1.编程设计音乐播放软件,使之实现音乐播放的功能. 2.培养学生用程序解决实际问题的能力和兴趣. 3.加深java中 ...

  5. Android(java)学习笔记234: 服务(service)之音乐播放器

    1.我们播放音乐,希望在后台长期运行,不希望因为内存不足等等原因,从而导致被gc回收,音乐播放终止,所以我们这里使用服务Service创建一个音乐播放器. 2.创建一个音乐播放器项目(使用服务) (1 ...

  6. Android(java)学习笔记177: 服务(service)之音乐播放器

    1.我们播放音乐,希望在后台长期运行,不希望因为内存不足等等原因,从而导致被gc回收,音乐播放终止,所以我们这里使用服务Service创建一个音乐播放器. 2.创建一个音乐播放器项目(使用服务) (1 ...

  7. android 音乐播放器

    本章以音乐播放器为载体,介绍android开发中,通知模式Notification应用.主要涉及知识点Notification,seekbar,service. 1.功能需求 完善音乐播放器 有播放列 ...

  8. android本地音乐播放器

    乐乐音乐播放器更新到2.0版本了,之前1.0版本更多的是试验性实践,这次更新的2.0版本,更多的是将1.0的功能移植到2.0,在界面和皮肤风格上,参考了 天天动听 界面,在歌词显示方面 与 1.0 版 ...

  9. Andriod小项目——在线音乐播放器

    转载自: http://blog.csdn.net/sunkes/article/details/51189189 Andriod小项目——在线音乐播放器 Android在线音乐播放器 从大一开始就已 ...

随机推荐

  1. Echart饼形图和折线图的循环展示及选择展示

    需求:根据不同的入参调同一接口,循环展示一组饼形图或折线图: 主要问题:在于给定的数据格式不符合图表的配置项格式,需要拆分组装数据:首先默认展示几个图表,当选中一个类别,需要展示其中一个的时候,页面中 ...

  2. 今天开dev的时候,config update一下别人的,但是忘了自己改过目录了,导致光看ip,想了半天,为什么接口不对

    今天开dev的时候,config update一下别人的,但是忘了自己改过目录了,导致光看ip,想了半天,为什么接口不对 baseUrl: {     //     // dev: 'http://1 ...

  3. LeetCode42题,单调栈、构造法、two pointers,这道Hard题的解法这么多?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题的第23篇文章. 今天来看一道很有意思的题,它的难度是Hard,并且有许多种解法. 首先我们来看题面,说是我们有若 ...

  4. JDK14的新特性-Switch新功能

    2020年3月17日,Oracle正式发布了JDK14版本,共新增了16项新特性 本文重点写一下关于switch的新功能: switch 表达式扩展了 switch 语句,使其不仅可以作为语句(sta ...

  5. 1.如何运行一个Vue项目

    如何运行一个Vue项目 需要的环境: node.js环境(npm包管理器) vue-cli 脚手架构建工具 cnpm npm的淘宝镜像 1. 安装node.js 从node.js官网下载并安装node ...

  6. 强化学习之一:从TensorFlow开始(Start from TensorFlow)

    本文是对Tensorflow官方教程的个人(tomqianmaple@outlook.com)中文翻译,供大家学习参考. 官方教程链接 tf的扬帆起航Getting Started With Tens ...

  7. 如何定时备份Mysql数据库

    1.创建备份数据库存储目录 cd data/db mkdir backup #创建存储目录 2.添加备份脚本 vim backupdb.sh #创建脚本文件 脚本内容如下: #!/bin/sh db_ ...

  8. 使用VS开始一个新项目配置外部库的新手总结

    在使用VS做一个项目的时候,往往会需要使用各种各样的库,一般一个标准的外部库目录大体结构为: VS在配置这些库的时候有多种可行方法,但是不同的方法对于项目后续的管理和移植有不同的影响,我使用过以下三种 ...

  9. 近期 github 机器学习热门项目top5

    磐创智能-专注机器学习深度学习的教程网站 http://panchuang.net/ 磐创AI-智能客服,聊天机器人,推荐系统 http://panchuangai.com/ [导读]:Github是 ...

  10. HDU - 1962 二分图最大匹配模板(扑克牌得分最大)

    题意: 直接说数据,第一行给定几组数据,每一组数据的第一行是两个人扑克牌分别的数量,第一行是亚当的扑克牌,第二行是夏娃的扑克牌,每一个扑克牌的大小用两个字符来表示,第一个表示是几号扑克牌,第二个表示扑 ...