本文适合有 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-exportsjavafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix--add-exportsjavafx.controls/com.sun.javafx.scene.control=com.jfoenix--add-exportsjavafx.base/com.sun.javafx.binding=com.jfoenix--add-exportsjavafx.graphics/com.sun.javafx.stage=com.jfoenix--add-exportsjavafx.base/com.sun.javafx.event=com.jfoenix--add-exportsjavafx.graphics/com.sun.javafx.scene=org.controlsfx.controls,--add-exportsjavafx.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() {            @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 版音乐播放器了。编程是不是也特别有意思呢?手痒痒了那就赶紧安装这款音乐播放器吧,对源码感兴趣的朋友可以开始学习项目源码了~

参考资料

[1]《讲解开源项目》: https://github.com/HelloGitHub-Team/Article

[2]解下载地址: https://xr3player.netlify.com/

[3]openjfx.io: https://openjfx.io/

[4]jxbrowser-win64 下载地址: https://jxbrowser.support.teamdev.com/support/discussions/topics/9000054587

[5]官方文档: https://openjfx.io/openjfx-docs/

[6]入门教程: https://www.yiibai.com/javafx/javafx-tutorial-for-beginners.html

关注公众号加入交流群

『讲解开源项目系列』——让对开源项目感兴趣的人不再畏惧、让开源项目的发起者不再孤单。跟着我们的文章,你会发现编程的乐趣、使用和发现参与开源项目如此简单。欢迎联系我(微信:xueweihan,备注:讲解)加入我们,让更多人爱上开源、贡献开源~

获取更多信息、“在看”让本文被更多人看到、“赞赏”支持我们。

java程序能转变为javafx_躁!DJ 风格 Java 桌面音乐播放器相关推荐

  1. 躁!DJ 风格 Java 桌面音乐播放器

    本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 版桌面 DJ 音乐播放器. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列 ...

  2. dj java实现_躁!DJ 风格 Java 桌面音乐播放器

    本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 版桌面 DJ 音乐播放器. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列 ...

  3. Java和vue实现音乐播放器_躁!DJ 风格 Java 桌面音乐播放器

    本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 版桌面 DJ 音乐播放器. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列 ...

  4. dj java实现_OpenJFX DJ 风格 Java 桌面音乐播放器

    本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 版桌面 DJ 音乐播放器. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列 ...

  5. 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器

    我的微信开发者工具 开篇语 好不容易,终于把所有的基础课程全部看完了!昨天,我很高兴地开始了看别人做的项目进行深度的学习.其实也说不上是项目吧,更多的像是一种给新手看的示例代码.然后我在这些代码上面进 ...

  6. java程序能转变为javafx_如何将intellij中的普通Java项目转换为JavaFx项目

    小编典典 没有什么可以转换的. 我认为"正常" Java项目和JavaFX项目之间在Idea中没有任何区别. 当然,在Idea 12.x +中,可以使用向导创建新的JavaFX项目 ...

  7. java基于微信小程序音乐播放器分享系统 uniapp 小程序

    音乐播放器小程序的设计主要是对系统所要实现的功能进行详细考虑,确定所要实现的功能后进行界面的设计,在这中间还要考虑如何可以更好的将功能及页面进行很好的结合,方便用户可以很容易明了的找到自己所需要的信息 ...

  8. 基于微信小程序音乐播放器

    随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,音乐播放器小程序被用户普遍使用,为方便用户能够可以随时 ...

  9. Android音乐播放器的开发实例(2021新版-Java版)

    Android音乐播放器的开发实例 介绍 该项目旨在引导喜爱 Android 开发爱好者入门教程实例,可以一步一步的跟着来完成属于自己的项目开发过程. 此项目为基于 Java 语言开发,使用 Recy ...

最新文章

  1. 物体掉落速度_重3吨的巨型“手环”掉落高速路,车辆纷纷刹车躲避
  2. ZYNQ UARTLite接收不定长数据
  3. OpenCV特征检测Feature Detection
  4. oracle 取消exp权限,oracle 复制账号权限oracle11gexp导出问题:部分表导不出来
  5. Java 1.1.4 检测字符串是否相等
  6. 在线IP地址查询工具
  7. fastclick.js插件使用简单说明
  8. Spring Boot 中使用WebJars
  9. 微软服务器系统版本有几个,windows系统有几个版本
  10. Ubuntu20.04 设置虚拟内存
  11. b站python up主_python爬取B站up主全部视频封面
  12. 如何选择合适的字体:宋体篇
  13. Excel表格转换为Word表格,并且保留Excel表格中公式不发生变化
  14. 如何在小方框上打对号 小方框内打对勾 word 方框打对勾
  15. 在线成语接龙答题有奖微信小程序源码V1.5.1
  16. 使用Java在图片中添加文字
  17. 内存取证常见例题思路方法-volatility (没有最全 只有更全)
  18. 对偶理论说明(深入理解)
  19. eclipse“随变”,随机变换eclipse启动界面
  20. 被吐槽我该保持怎样的心态 | 趣闻探讨 |

热门文章

  1. #C语言#重定义问题
  2. #pragma once和#ifndef
  3. Unable to find vcvarsall.bat
  4. node下使用jquery
  5. 理解sklearn.feature.text中的CountVectorizer和TfidfVectorizer
  6. 完美解决 IDEA plugins 插件搜索不出结果
  7. python参数注解
  8. mongodb数据库恢复 mongo数据库无法启动恢复 mongodb数据库断电数据恢复
  9. dubbo 学习笔记 -- provider端
  10. LNMP环境搭建笔记