先下载相关工具和游戏程序看效果,所需资源已提供在程序安装包内
Maven 是一个开源的项目管理工具,用于构建、发布和管理 Java 项目。它通过定义项目对象模型(POM)来管理项目的构建、依赖和文档等方面的配置,提供了一种统一的项目结构和构建生命周期,简化了项目的管理和维护。Maven 通过中央仓库管理依赖,支持自动化构建、测试和部署,使项目开发更加规范和可维护
每一个开发工具(IDE)都有自己不同的项目结构,它们互相之间不通用。我在 Eclipse 中创建的目录,无法在 IDEA 中进行使用,这就造成了很大的不方便。Maven 提供了一套标准化的项目结构,所有的 IDE 使用 Maven 构建的项目完全一样,所以 IDE 创建的 Maven 项目可以通用

├─src # 源代码和测试代码
│ ├─main # 源代码
│ │ ├─java # 源代码 Java
│ │ ├─resources # 源代码 配置文件
│ │ └─webapp # Web 项目代码
│ └─test # 测试代码
│ ├─java # 测试代码 Java
│ └─resources # 测试代码 配置文件
├─pom.xml # 项目核心配置文件
我们开发了一套系统,代码需要进行编译、测试、打包、发布,这些操作如果需要反复进行就显得特别麻烦,而 Maven 提供了一套简单的命令来完成项目构建
解压缩到没有中文、特殊字符的路径下
比如D:\apache-maven-3.9.12

目录结构如下
bin: 包含 Maven 命令行工具的可执行文件,如 mvn
conf: 存放 Maven 的全局配置文件,如 settings.xml
lib: 包含 Maven 运行所需的 JAR 文件,包括 Maven 核心模块和插件
repository: 本地仓库,用于存储项目依赖的 JAR 文件
boot: 包含用于启动 Maven 的 JAR 文件
logs: 存放 Maven 执行时生成的日志文件
在系统变量处新建一个变量 MAVEN_HOME
MAVEN_HOME
D:\apache-maven-3.9.12

配置 PATH 变量
%MAVEN_HOME%\bin

打开命令提示符进行验证,输入 mvn -v
修改 conf/settings.xml 中的 <localRepository> 为一个指定目录作为本地仓库,用来存储 jar 包

注意:替换为对应的下载版本
<localRepository>D:\apache-maven-3.9.12\repo</localRepository>中央仓库在国外,所以下载 jar 包速度可能比较慢,而阿里公司提供了一个远程仓库,里面基本也都有开源项目的 jar 包。修改 conf/settings.xml 中的 <mirrors> 标签,为其添加如下子标签:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>compile :编译
clean:清理
test:测试
package:打包
install:安装
IDEA 中,点击 文件 - 设置 - 搜索 Maven

注意: 开发基于 JDK17 版本
熟悉 Java 语法和基础概念(如类、对象、继承、多态、接口等)
理解异常处理、泛型、集合框架(如 List、Set、Map 等)
熟悉常用的 Java 标准类库(如 java.lang、java.util、java.io 等)
理解输入输出流的基本概念
理解面向对象编程的基本原则(如封装、继承、多态、抽象)
能够设计和实现基于类和对象的程序
理解事件处理机制,能够编写事件处理器
熟悉观察者模式,因为 JavaFX 的事件处理机制与其类似
基本了解 CSS 的语法和使用方法,因为 JavaFX 支持使用 CSS 来进行界面样式的定制
理解 Java 中的多线程编程,尤其是在 UI 应用中如何处理耗时任务以避免阻塞主线程
熟悉集成开发环境(IDE)如 IntelliJ IDEA
会使用构建工具如 Maven 来管理项目依赖
对于需要实现复杂图形效果的应用,理解基本的图形学概念会有帮助,如坐标系、颜色模型等
JavaFX 是一个用于创建桌面应用和富互联网应用(RIA)的 Java 框架。它提供了强大的 GUI 控件和媒体功能,支持 2D 和 3D 图形以及动画
JavaFX 包含以下几个核心组件:
Stage:应用程序的主窗口
Scene:包含应用程序界面的容器,可以将其设置到 Stage 上
Nodes:构成用户界面的基本元素,如按钮、标签、文本框等
Application
每个 JavaFX 应用程序都必须继承自 javafx.application.Application 类,并实现 start(Stage primaryStage) 方法
launch(args) 方法用于启动 JavaFX 应用
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;
public class HelloWorld extends Application {
@Override
public void start(Stage primaryStage) {
Label label = new Label("Hello, JavaFX!");
Scene scene = new Scene(label, 400, 200);
primaryStage.setScene(scene);
primaryStage.setTitle("Hello World");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}Stage 和 Scene
Stage:主窗口或对话框,可以是主舞台(primary stage)或辅助舞台(secondary stage)
Scene:包含用户界面的容器,可以包含多个节点
Nodes
所有 UI 控件和布局管理器都是 Node 的子类
常见控件包括 Button、Label、TextField 等
布局管理器(如 HBox、VBox、StackPane)用于安排节点的位置
事件处理
JavaFX 使用事件驱动模型来处理用户交互
可以为节点添加事件处理器,如点击按钮时执行某个操作
Button btn = new Button("Click Me");
btn.setOnAction(event -> System.out.println("Button clicked!"));Java 9 引入了模块系统(Project Jigsaw),模块化系统旨在帮助开发者更好地组织代码,提高应用程序的可维护性和安全性
基本概念
模块是包含一组相关包和资源的单元。每个模块都有一个唯一的名称
模块可以包含代码(类、接口等)、数据(配置文件、资源文件等)和其他模块的依赖关系
module-info.java
每个模块必须包含一个 module-info.java 文件,这是模块的声明文件
module-info.java 文件位于模块的根目录,用于定义模块的名称、依赖关系和对外暴露的包
module com.example.myapp {
requires java.sql;
exports com.example.myapp.api;
}构建和运行
# 编译
javac -d build --module-source-path src $(find src -name "*.java")
# 运行
java --module-path build -m com.example.myapp/com.example.myapp.MainClass