上一篇
javafx包怎么使用
- 后端开发
- 2025-08-07
- 4
vaFX是用于创建桌面应用程序的图形工具包,要使用它,首先确保已安装JavaFX库,然后在项目中导入相关包,通过编写FXML或Java代码来设计用户界面,并使用`Application.
vaFX 是一个用于构建富客户端应用程序的图形和媒体工具包,它提供了一组统一的 API,可以用来创建和管理复杂的用户界面,以下是关于如何使用 JavaFX 包的详细指南:
环境准备
安装 JDK
确保你的系统上已经安装了 JDK(Java Development Kit),可以从 Oracle 官方网站或 OpenJDK 项目下载并安装最新版本的 JDK。
设置开发环境
你可以使用任意支持 Java 的集成开发环境(IDE),如 IntelliJ IDEA、Eclipse 或 NetBeans,以下以 IntelliJ IDEA 为例:
-
创建新项目:
- 打开 IntelliJ IDEA,选择
File
>New
>Project
。 - 在左侧选择
Java
,然后点击Next
。 - 输入项目名称和位置,然后点击
Finish
。
- 打开 IntelliJ IDEA,选择
-
添加 JavaFX 库:
- 右键点击项目名称,选择
Open Module Settings
。 - 在左侧选择
Libraries
,然后点击右侧的 按钮。 - 选择
Java
,然后导航到 JDK 安装目录下的lib
文件夹,选择lib/ext/jfxrt.jar
文件并点击OK
。
- 右键点击项目名称,选择
创建基本的 JavaFX 应用
编写第一个 JavaFX 程序
下面是一个简单的 JavaFX 应用程序示例,该程序显示一个窗口,并在窗口中显示 “Hello, JavaFX!”。
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.stage.Stage; public class HelloJavaFX extends Application { @Override public void start(Stage primaryStage) { // 创建一个标签并设置文本 Label label = new Label("Hello, JavaFX!"); // 创建一个场景,并将标签添加到场景中 Scene scene = new Scene(label, 400, 200); // 设置舞台的标题 primaryStage.setTitle("Hello JavaFX"); // 将场景设置到舞台上 primaryStage.setScene(scene); // 显示舞台 primaryStage.show(); } public static void main(String[] args) { launch(args); } }
运行程序
在 IDE 中运行上述代码,你将看到一个包含 “Hello, JavaFX!” 文本的窗口。
JavaFX 主要组件
JavaFX 提供了许多 UI 组件,可以用于构建复杂的用户界面,以下是一些常用的组件及其用法:
组件 | 描述 | 示例代码 |
---|---|---|
Button |
按钮 | Button button = new Button("Click Me"); |
Label |
Label label = new Label("Text"); |
|
TextField |
单行文本输入框 | TextField textField = new TextField(); |
TextArea |
多行文本输入框 | TextArea textArea = new TextArea(); |
CheckBox |
复选框 | CheckBox checkBox = new CheckBox(); |
RadioButton |
单选按钮 | RadioButton radioButton = new RadioButton(); |
ComboBox |
下拉列表 | ComboBox<String> comboBox = new ComboBox<>(); |
TableView |
表格视图 | TableView<Person> tableView = new TableView<>(); |
ListView |
列表视图 | ListView<String> listView = new ListView<>(); |
ImageView |
图像视图 | ImageView imageView = new ImageView(); |
Slider |
滑块 | Slider slider = new Slider(); |
ProgressBar |
进度条 | ProgressBar progressBar = new ProgressBar(); |
MenuBar |
菜单栏 | MenuBar menuBar = new MenuBar(); |
ContextMenu |
上下文菜单 | ContextMenu contextMenu = new ContextMenu(); |
Alert |
对话框 | Alert alert = new Alert(Alert.AlertType.INFORMATION); |
Dialog |
对话框 | Dialog<String> dialog = new Dialog<>(); |
WebView |
网页视图 | WebView webView = new WebView(); |
MediaPlayer |
媒体播放器 | MediaPlayer mediaPlayer = new MediaPlayer(new Media(new File("video.mp4").toURI().toString())); |
MediaView |
媒体视图 | MediaView mediaView = new MediaView(mediaPlayer); |
Animation |
动画 | TranslateTransition transition = new TranslateTransition(); |
Timeline |
时间轴动画 | Timeline timeline = new Timeline(); |
Effect |
特效 | DropShadow dropShadow = new DropShadow(); |
Blend |
混合效果 | Blend blend = new Blend(); |
ColorAdjust |
颜色调整 | ColorAdjust colorAdjust = new ColorAdjust(); |
Glow |
发光效果 | Glow glow = new Glow(); |
PerspectiveTransform |
透视变换 | PerspectiveTransform perspectiveTransform = new PerspectiveTransform(); |
Rotate |
旋转变换 | Rotate rotate = new Rotate(); |
Scale |
缩放变换 | Scale scale = new Scale(); |
Shear |
错切变换 | Shear shear = new Shear(); |
Translate |
平移变换 | Translate translate = new Translate(); |
Accordion |
折叠面板 | Accordion accordion = new Accordion(); |
FlowPane |
流式布局 | FlowPane flowPane = new FlowPane(); |
GridPane |
网格布局 | GridPane gridPane = new GridPane(); |
HBox |
水平盒子布局 | HBox hbox = new HBox(); |
VBox |
垂直盒子布局 | VBox vbox = new VBox(); |
BorderPane |
边框布局 | BorderPane borderPane = new BorderPane(); |
StackPane |
堆叠布局 | StackPane stackPane = new StackPane(); |
TilePane |
瓦片布局 | TilePane tilePane = new TilePane(); |
AnchorPane |
锚点布局 | AnchorPane anchorPane = new AnchorPane(); |
Background |
背景 | Background background = new Background(new BackgroundFill(Color.WHITE, CornerRadii.EMPTY, Insets.EMPTY)); |
Border |
边框 | Border border = new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, BorderWidths.DEFAULT)); |
Padding |
内边距 | Padding padding = new Padding(10); |
Margin |
外边距 | Margin margin = new Margin(10); |
Alignment |
对齐方式 | Pos.CENTER |
Orientation |
方向 | Orientation.HORIZONTAL |
Spacing |
间距 | HBox.setSpacing(hbox, 10); |
Padding |
内边距 | VBox.setMargin(vbox, new Insets(10)); |
Margin |
外边距 | GridPane.setMargin(gridPane, new Insets(10)); |
Constraints |
约束 | GridPane.setConstraints(gridPane, new GridPane.Constraints(0, 0)); |
Priority |
优先级 | HBox.setHgrow(hbox, Priority.ALWAYS); |
FillWidth |
填充宽度 | Region.setMaxWidth(region, Double.MAX_VALUE); |
FillHeight |
填充高度 | Region.setMaxHeight(region, Double.MAX_VALUE); |
BaselineOffset |
基线偏移量 | Label.setGraphicTextGap(label, 10); |
LineSpacing |
行间距 | Text.setLineSpacing(text, 10); |
WrapText |
自动换行 | Text.setWrappingWidth(text, 100); |
Font |
字体 | Text.setFont(text, new Font("Arial", 12)); |
Strikethrough |
删除线 | Text.setStrikethrough(text, true); |
Underline |
下划线 | Text.setUnderline(text, true); |
Italic |
斜体 | Text.setStyle(text, "-fx-font-style: italic;"); |
Bold |
粗体 | Text.setStyle(text, "-fx-font-weight: bold;"); |
Subscript |
下标 | Text.setUnderline(text, true); |
Superscript |
上标 | Text.setUnderline(text, true); |
TextAlignment |
文本对齐方式 | Text.setTextAlignment(text, TextAlignment.CENTER); |
WrappingWidth |
自动换行宽度 | Text.setWrappingWidth(text, 100); |
Effect |
特效 | Text.setEffect(text, new DropShadow()); |
BlendMode |
混合模式 | Text.setBlendMode(text, BlendMode.MULTIPLY); |
Opacity |
不透明度 | Text.setOpacity(text, 0.5); |
Rotate |
旋转角度 | Text.setRotate(text, 45); |
ScaleX |
X轴缩放比例 | Text.setScaleX(text, 1.5); |
ScaleY |
Y轴缩放比例 | Text.setScaleY(text, 1.5); |
ShearX |
X轴错切角度 | Text.setShearX(text, 10); |
ShearY |
Y轴错切角度 | Text.setShearY(text, 10); |
TranslateX |
X轴平移距离 | Text.setTranslateX(text, 10); |
TranslateY |
Y轴平移距离 | Text.setTranslateY(text, 10); |
Effect |
特效 | Text.setEffect(text, new Glow()); |
BlendMode |
混合模式 | Text.setBlendMode(text, BlendMode.ADD); |
Opacity |
不透明度 | Text.setOpacity(text, 0.5); |
Rotate |
旋转角度 | Text.setRotate(text, 45); |
ScaleX |
X轴缩放比例 | Text.setScaleX(text, 1.5); |
ScaleY |
Y轴缩放比例 | Text.setScaleY(text, 1.5); |
ShearX |
X轴错切角度 | Text.setShearX(text, 10); |
ShearY |
Y轴错切角度 | Text.setShearY(text, 10); |
TranslateX |
X轴平移距离 | `Text. |