JavaFx之整合JFoenix

JFoenix是JavaFx流行的UI框架之一
github:https://github.com/sshahine/JFoenix 整合Maven

<!--https://github.com/sshahine/JFoenix-->
<dependency>
    <groupId>com.jfoenix</groupId>
    <artifactId>jfoenix</artifactId>
    <version>8.0.10</version>
</dependency>
<!--图标-->
<dependency>
    <groupId>de.jensd</groupId>
    <artifactId>fontawesomefx</artifactId>
    <version>8.9</version>
</dependency>

一、代码中使用

按钮和图片按钮

import com.jfoenix.controls.JFXButton;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;

/**
 * @author lingkang
 */
public class JfTest01 extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        AnchorPane anchorPane=new AnchorPane();
        anchorPane.setPrefHeight(100);
        anchorPane.setPrefWidth(100);

        JFXButton jfxButton=new JFXButton("按钮");
        jfxButton.setLayoutX(10);
        jfxButton.setLayoutY(0);
        jfxButton.setStyle("-fx-background-color: #409eff");// 背景颜色

        // 限制图片宽高
        ImageView imageView = new ImageView("/assets/茶壶.png");
        imageView.setFitWidth(16);
        imageView.setFitHeight(16);
        JFXButton button=new JFXButton("图片按钮",imageView);
        button.setLayoutX(10);
        button.setLayoutY(40);

        anchorPane.getChildren().addAll(jfxButton,button);
        primaryStage.setScene(new Scene(anchorPane));
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

javafx是什么 javafx+jfoenix_xml

二、XML中使用:

按钮和图标按钮,,,将上面的代码改为:

// 加载 xml
URL resource = getClass().getResource("/fxml/test/but.fxml");
AnchorPane load = FXMLLoader.load(resource);

primaryStage.setScene(new Scene(load));
primaryStage.show();

fxml内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<?import com.jfoenix.controls.JFXButton?>
<?import de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.text.Font?>
<AnchorPane xmlns="http://javafx.com/javafx"
            xmlns:fx="http://javafx.com/fxml"
            prefHeight="100.0" prefWidth="100.0">
    <JFXButton mnemonicParsing="false" prefHeight="33.0" fx:id="createDownloadTask"
               style="-fx-background-color: #409eff;" text="创建JFX任务">
        <font>
            <Font size="14.0"/>
        </font>
        <HBox.margin>
            <Insets left="100.0" top="12.0"/>
        </HBox.margin>
        <!--添加图标-->
        <graphic>
            <FontAwesomeIconView fill="WHITE" glyphName="PLUS" size="14.0"/>
        </graphic>
    </JFXButton>
    <JFXButton layoutX="10" layoutY="60" text="jfx按钮">
    </JFXButton>
</AnchorPane>

javafx是什么 javafx+jfoenix_javafx是什么_02

三、我提供编译好的JFoenix-demo

还有很多模块就不一一展示了,下面提供我编译好的:我用阿里云盘分享了「demo-0.0.0-SNAPSHOT」,你可以不限速下载🚀
复制这段内容打开「阿里云盘」App 即可获取
链接:https://www.aliyundrive.com/s/uxtrJtX837P
下载所有文件,在安装了jdk8的环境运行bin/demo.bat

javafx是什么 javafx+jfoenix_xml_03


各个模块的使用方式也非常简单,你只需要进入到源码的fxml中,直接加载使用,例如Checkbox.fxml

// 加载 xml
        URL resource = getClass().getResource("/fxml/test/Checkbox.fxml");
        StackPane load = FXMLLoader.load(resource);

        primaryStage.setScene(new Scene(load));
        primaryStage.show();

javafx是什么 javafx+jfoenix_javafx是什么_04


javafx是什么 javafx+jfoenix_javafx是什么_05