package front;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.concurrent.Worker;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.DirectoryChooser;
import javafx.stage.Stage;

import java.io.File;

public class JavaWebView extends Application {
    private File selectedFolder1;
    private File selectedFolder2;

    @Override
    public void start(Stage stage) {
        String javaVersion = System.getProperty('java.version');
        String javafxVersion = System.getProperty('javafx.version');

        // 创建文件夹选择器和确定按钮
        DirectoryChooser directoryChooser1 = new DirectoryChooser();
        TextField folderTextField1 = new TextField();
        folderTextField1.setEditable(false);
        Button folderButton1 = new Button('选择文件夹1');
        folderButton1.setOnAction(e -> {
            selectedFolder1 = directoryChooser1.showDialog(stage);
            if (selectedFolder1 != null) {
                folderTextField1.setText(selectedFolder1.getAbsolutePath());
            }
        });

        DirectoryChooser directoryChooser2 = new DirectoryChooser();
        TextField folderTextField2 = new TextField();
        folderTextField2.setEditable(false);
        Button folderButton2 = new Button('选择文件夹2');
        folderButton2.setOnAction(e -> {
            selectedFolder2 = directoryChooser2.showDialog(stage);
            if (selectedFolder2 != null) {
                folderTextField2.setText(selectedFolder2.getAbsolutePath());
            }
        });

        Button confirmButton = new Button('确定');
        confirmButton.setOnAction(e -> {
            // 执行确定按钮的逻辑,例如处理文件夹和生成图表
        });

        // 创建上方的输入框和按钮布局
        HBox inputBox = new HBox(10);
        inputBox.setAlignment(Pos.CENTER);
        inputBox.setPadding(new Insets(10));
        inputBox.getChildren().addAll(folderTextField1, folderButton1, folderTextField2, folderButton2, confirmButton);

        // 创建左侧列表
        ListView<String> leftList = new ListView<>();
        // 添加左侧列表的数据

        // 创建右侧列表
        ListView<String> rightList = new ListView<>();
        // 添加右侧列表的数据

        // 创建底部的图表视图
        WebView webView = new WebView();
        WebEngine webEngine = webView.getEngine();
        webEngine.load(JavaWebView.class.getResource('chart.html').toExternalForm());

        // 创建图表视图和列表的布局
        VBox chartBox = new VBox(webView);
        VBox.setVgrow(webView, Priority.ALWAYS);

        // 创建主布局
        BorderPane root = new BorderPane();
        root.setTop(inputBox);
        root.setLeft(leftList);
        root.setRight(rightList);
        root.setCenter(chartBox);

        Scene scene = new Scene(root, 1200, 600, Color.web('lightgray'));
        stage.setScene(scene);

        webEngine.getLoadWorker().stateProperty().addListener((ObservableValue<? extends Worker.State> ov, Worker.State oldState, Worker.State newState) -> {
            if (newState == Worker.State.SUCCEEDED) {
                stage.show();
            }
        });
    }

    public static void main(String[] args) {
        launch(args);
    }
}
JavaFX 文件夹比较工具 - 使用 WebView 展示图表

原文地址: https://www.cveoy.top/t/topic/cjAd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录