xizi110 / bootfx

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

简单快速整合spring boot和javafx

新建一个类继承JavaFXApplication,覆盖Start()方法。调用SpringApplication.run()即可。

@SpringBootApplication
public class App extends JavaFXApplication {

    public static void main(String[] args) throws InterruptedException {
        SpringApplication.run(App.class, args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {

        Label label = new Label("Hello JavaFX");
        label.setFont(Font.font(30));
        StackPane pane = new StackPane(label);
        primaryStage.setScene(new Scene(pane));
        primaryStage.setWidth(600);
        primaryStage.setHeight(400);
        primaryStage.show();
    }
}

如果提示模块错误等信息,可以使用模块化开发也可以新建普通类,调用App类

public class AppLauncher {
    public static void main(String[] args) throws InterruptedException {
        SpringApplication.run(App.class, args);
    }
}

可以自定义视图继承View类,使用spring注解@Component快速创建视图。

@Slf4j
@Component
public class LoginView extends View {

    @FXML
    private Button btn;
    @FXML
    private TextField account;
    @FXML
    private TextField password;

    @FXML
    private void login(ActionEvent event) {
        if (account.getText().equals("admin")) {
            log.info("login success");
        } else {
            log.info("login failed:" + account.getText());
        }
    }
}

所以我们的App类可以简化为

@SpringBootApplication
public class App extends JavaFXApplication {

    @Autowired
    LoginView loginView;

    @Override
    public void start() throws Exception {
        loginView.show();
    }
}

可以clone项目到本地,执行mvn install之后,自己项目引入

<dependency>
    <groupId>xyz.yuelai</groupId>
    <artifactId>bootfx</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

也可以下载bootfx-1.0-SNAPSHOT.jar jar包引入

<dependency>
    <groupId>xyz.yuelai</groupId>
    <artifactId>bootfx</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--本机路径-->
    <systemPath>xxx/xxx/bootfx-1.0-SNAPSHOT.jar</systemPath>
</dependency>

About


Languages

Language:Java 100.0%