javaFX,scene Builder入门

 

介绍:

  java开发桌面程序

前言:

  jdk1.8

  开发软件:idea

  maven项目

一、环境准备

 1、下载安装scene builder

  官网: JavaFX中文官方网站 (openjfx.cn)

 

  根据实际情况下载对应版本的

 

 

 2、idea配置scene builder

  

我这里scene builder 默认目录:C:\Program Files (x86)\Oracle\JavaFX Scene Builder 2.0\JavaFX Scene Builder 2.0.exe

根据自己的安装目录进行配置

 

 二、创建一个Maven项目

idea创建简单maven项目java - hehehenhen - 博客园 (cnblogs.com)

文件最终目录结构:

 

1、导入依赖:

复制代码
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>17.0.1</version>
        </dependency>

        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>17.0.1</version>
        </dependency>
复制代码

 

2、新建页面:fxml

文件目录结构:

 

 

 

 

 

 

 

3、新建控制器:

DemoController
复制代码
package com.sample;

import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TextField;

import java.net.URL;
import java.util.ResourceBundle;

/**
 * @author lanpengbiao
 * @version 1.0
 * @Description Demo
 * @date Created in 2023-5-6 15:53
 * @since jdk1.7
 */

public class DemoController implements Initializable {

    public void initialize(URL location, ResourceBundle resources) {
    }

}
复制代码

4、控制器与页面关联

 

复制代码
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.*?>


<AnchorPane  prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.sample.DemoController">
   <children>

   </children>
</AnchorPane>
复制代码

 

5、编辑页面:

 右击fxml文件在sceneBuilder中打开

拖动控件构建页面:

填报lable

 

添加文本框 textfield :

 

 声明 fx:id ,对应控制器中的属性

 

5、编辑控制器:

创建页面属性:

 优化页面属性:

将属性私有化,并加注解@FXML:

没有注解页面无法与控制器绑定

 

 

 

复制代码
package com.sample;

import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TextField;

import java.net.URL;
import java.util.ResourceBundle;

/**
 * @version 1.0
 * @Description Demo
 * @date Created in 2023-5-6 15:53
 * @since jdk1.7
 */

public class DemoController implements Initializable {
    @FXML
    private TextField userName;
    @FXML
    private TextField age;

    public void initialize(URL location, ResourceBundle resources) {
        //在初始化方法中对页面元素进行初始化
        age.setText("23");
    }

}
复制代码

 

6、编写启动类

复制代码
package com.sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

/**
 * @version 1.0
 * @Description DemoTest
 * @date Created in 2023-5-6 16:05
 * @since jdk1.8
 */
public class DemoTest extends Application {

    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("/view/sample/Demo.fxml"));
        primaryStage.setTitle("Hello World");
        primaryStage.setScene(new Scene(root, 300, 275));
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(DemoTest.class);
    }
}
复制代码

运行效果:

 

 

 

7、打包

java程序jar包打包成exe文件 - hehehenhen - 博客园 (cnblogs.com)

 

posted @   hehehenhen  阅读(2428)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示