1. 基础环境准备
在Debian系统上进行Java图形界面开发前,需完成以下核心配置:
apt包管理器安装OpenJDK(推荐11及以上版本,覆盖大多数Java应用需求):sudo apt update
sudo apt install openjdk-17-jdk # 或default-jdk(自动安装最新版本)
安装完成后,通过java -version验证安装是否成功(需显示Java版本信息)。sudo apt install ubuntu-gnome-desktop # 安装GNOME桌面
sudo dpkg-reconfigure gdm3 # 切换默认显示管理器(登录界面选择GNOME)
/etc/environment文件,添加JDK路径(以实际安装路径为准):JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
export PATH="$JAVA_HOME/bin:$PATH"
保存后运行source /etc/environment使配置生效,通过echo $JAVA_HOME验证变量是否正确。2. 选择GUI框架
Java提供两种主流GUI框架,需根据需求选择:
import javax.swing.*;
public class SwingExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Swing Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
JLabel label = new JLabel("Hello, Swing!");
frame.add(label);
frame.setVisible(true);
}
}
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class JavaFXExample extends Application {
@Override
public void start(Stage primaryStage) {
Label label = new Label("Hello, JavaFX!");
StackPane root = new StackPane();
root.getChildren().add(label);
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("JavaFX Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
注意:JDK 11及以上版本不再内置JavaFX,需从Gluon官网下载SDK,然后在IDE(如IntelliJ IDEA)中配置:
Project Structure→Libraries,添加JavaFX SDK的lib目录;--module-path /path/to/javafx-sdk/lib --add-modules javafx.controls,javafx.fxml。3. 开发与调试工具
bin/idea.sh启动安装程序;pom.xml可添加Swing/JavaFX依赖(部分框架需手动配置)。4. 编译与运行
javac编译Java源代码,java运行编译后的类文件。例如:
javac SwingExample.java && java SwingExample;javac --module-path /path/to/javafx-sdk/lib --add-modules javafx.controls JavaFXExample.java && java --module-path /path/to/javafx-sdk/lib --add-modules javafx.controls JavaFXExample。5. 常见问题解决
sudo apt install ttf-mscorefonts-installer # 安装微软雅黑、Arial等字体
sudo fc-cache -f -v # 刷新字体缓存
也可在代码中显式指定字体(以Swing为例):label.setFont(new Font("Arial", Font.PLAIN, 14));
--module-path指向正确的JavaFX SDK lib目录,--add-modules包含所需模块(如javafx.controls、javafx.fxml)。