From 1ee1c1ec7f545fc170b0d470fc010fab786a89f7 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Sat, 3 Feb 2024 22:33:01 +0800 Subject: [PATCH 01/27] =?UTF-8?q?1.=E5=8D=87=E7=BA=A7=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E5=8C=85=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- debugTools/x-KafkaTool/build.gradle | 4 +- debugTools/x-RedisTool/build.gradle | 2 +- .../RedisToolDataViewController.java | 2 +- .../redisTool/RedisToolDataTableService.java | 2 +- .../xwintop/xJavaFxTool/utils/AlertUtil.java | 216 ------------------ debugTools/x-ScriptEngineTool/build.gradle | 3 +- .../debugTools/ScriptEngineToolService.java | 1 - 7 files changed, 7 insertions(+), 223 deletions(-) delete mode 100644 debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/utils/AlertUtil.java diff --git a/debugTools/x-KafkaTool/build.gradle b/debugTools/x-KafkaTool/build.gradle index 393e266e..6f195e01 100644 --- a/debugTools/x-KafkaTool/build.gradle +++ b/debugTools/x-KafkaTool/build.gradle @@ -1,8 +1,8 @@ dependencies { // implementation 'com.xwintop:xcore:0.0.6' api project(':xcore') - implementation 'org.springframework.boot:spring-boot-starter-activemq:2.1.3.RELEASE' - implementation 'org.springframework.kafka:spring-kafka:2.2.4.RELEASE' + implementation 'org.springframework.boot:spring-boot-starter-activemq:2.7.18' + implementation 'org.springframework.kafka:spring-kafka:2.7.18' } group = 'com.xwintop' diff --git a/debugTools/x-RedisTool/build.gradle b/debugTools/x-RedisTool/build.gradle index faba83fe..50e3508c 100644 --- a/debugTools/x-RedisTool/build.gradle +++ b/debugTools/x-RedisTool/build.gradle @@ -1,7 +1,7 @@ dependencies { // implementation 'com.xwintop:xcore:0.0.6' api project(':xcore') - implementation 'redis.clients:jedis:3.0.1' + implementation 'redis.clients:jedis:3.10.0' } group = 'com.xwintop' diff --git a/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/redisTool/RedisToolDataViewController.java b/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/redisTool/RedisToolDataViewController.java index 7fce9173..48de7bde 100644 --- a/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/redisTool/RedisToolDataViewController.java +++ b/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/redisTool/RedisToolDataViewController.java @@ -1,10 +1,10 @@ package com.xwintop.xJavaFxTool.controller.debugTools.redisTool; import com.xwintop.xJavaFxTool.services.debugTools.redisTool.RedisToolDataViewService; -import com.xwintop.xJavaFxTool.utils.AlertUtil; import com.xwintop.xJavaFxTool.utils.RedisUtil; import com.xwintop.xJavaFxTool.view.debugTools.redisTool.RedisToolDataViewView; +import com.xwintop.xcore.util.javafx.AlertUtil; import com.xwintop.xcore.util.javafx.JavaFxViewUtil; import org.apache.commons.lang3.StringUtils; diff --git a/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/redisTool/RedisToolDataTableService.java b/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/redisTool/RedisToolDataTableService.java index 30e1f739..27612746 100644 --- a/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/redisTool/RedisToolDataTableService.java +++ b/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/redisTool/RedisToolDataTableService.java @@ -4,8 +4,8 @@ import com.xwintop.xJavaFxTool.controller.debugTools.redisTool.RedisToolDataTabl import com.xwintop.xJavaFxTool.controller.debugTools.redisTool.RedisToolDataViewController; import com.xwintop.xJavaFxTool.controller.debugTools.redisTool.RedisToolDialogController; import com.xwintop.xJavaFxTool.model.RedisToolDataTableBean; -import com.xwintop.xJavaFxTool.utils.AlertUtil; import com.xwintop.xJavaFxTool.utils.RedisUtil; +import com.xwintop.xcore.util.javafx.AlertUtil; import javafx.event.Event; import javafx.event.EventHandler; import javafx.fxml.FXMLLoader; diff --git a/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/utils/AlertUtil.java b/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/utils/AlertUtil.java deleted file mode 100644 index e32c9128..00000000 --- a/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/utils/AlertUtil.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.xwintop.xJavaFxTool.utils; - -import com.xwintop.xcore.javafx.FxApp; -import com.xwintop.xcore.javafx.dialog.FxDialog; -import com.xwintop.xcore.javafx.helper.LayoutHelper; -import com.xwintop.xcore.util.javafx.JavaFxViewUtil; -import javafx.geometry.Insets; -import javafx.geometry.Pos; -import javafx.scene.control.*; -import javafx.scene.layout.GridPane; -import javafx.scene.layout.Priority; -import javafx.scene.layout.VBox; -import javafx.scene.text.Font; -import javafx.stage.Modality; -import javafx.stage.Stage; - -import java.util.Optional; -import java.util.concurrent.atomic.AtomicBoolean; - -import static com.xwintop.xcore.javafx.helper.LayoutHelper.label; -import static com.xwintop.xcore.javafx.helper.LayoutHelper.vbox; - -@Deprecated -public class AlertUtil { - - public static final int LABEL_MAX_WIDTH = 300; - - /** - * 信息提示框 - * @deprecated 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} - */ - public static void showInfoAlert(String message) { - showInfoAlert("提示", message); - } - - /** - * 信息提示框 - * @deprecated 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} - */ - public static void showInfoAlert(String title, String message) { - new FxDialog<>() - .setOwner(FxApp.primaryStage) - .setTitle(title) - .setBody(vbox(20, 0, Pos.CENTER, label(message, LABEL_MAX_WIDTH))) - .setButtonTypes(ButtonType.OK) - .setButtonHandler(ButtonType.OK, (actionEvent, stage) -> stage.close()) - .showAndWait(); - } - - /** - * 确定提示框 - * @deprecated 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} - */ - public static boolean confirmYesNo(String title, String message) { - return confirm(title, message, ButtonType.YES, ButtonType.NO) == ButtonType.YES; - } - - /** - * 确定提示框 - * @deprecated 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} - */ - public static boolean confirmOkCancel(String title, String message) { - return confirm(title, message, ButtonType.OK, ButtonType.CANCEL) == ButtonType.OK; - } - - /** - * 确定提示框 - * @deprecated 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} - */ - public static ButtonType confirmYesNoCancel(String title, String message) { - return confirm(title, message, ButtonType.YES, ButtonType.NO, ButtonType.CANCEL); - } - - /** - * 确定提示框 - * @deprecated 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} - */ - public static ButtonType confirm( - String title, String message, ButtonType positiveButtonType, ButtonType... negativeButtonTypes - ) { - - // 构造 buttonTypes - ButtonType[] buttonTypes = new ButtonType[ - (negativeButtonTypes == null ? 1 : negativeButtonTypes.length) + 1]; - - buttonTypes[0] = positiveButtonType; - - if (negativeButtonTypes != null) { - System.arraycopy(negativeButtonTypes, 0, buttonTypes, 1, negativeButtonTypes.length); - } - - // 构造对话框 - FxDialog dialog = new FxDialog<>() - .setTitle(title) - .setButtonTypes(buttonTypes) - .setOwner(FxApp.primaryStage) - .setBody(vbox(10, 0, label(message))); - - ButtonType[] result = new ButtonType[]{ButtonType.CANCEL}; - - dialog.setButtonHandler(positiveButtonType, (actionEvent, stage) -> { - result[0] = positiveButtonType; - stage.close(); - }); - - if (negativeButtonTypes != null) { - for (ButtonType negativeButtonType : negativeButtonTypes) { - dialog.setButtonHandler(negativeButtonType, (actionEvent, stage) -> { - result[0] = negativeButtonType; - stage.close(); - }); - } - } - - // 显示对话框 - dialog.showAndWait(); - return result[0]; - } - - /** - * 输入提示框,如果点击确定则返回文本框内容,点击取消或关闭则返回 null - */ - public static String showInputAlertDefaultValue(String message, String defaultValue) { - String[] result = new String[]{null}; - - TextField textField = LayoutHelper.textField(defaultValue, 200); - VBox body = vbox(10, 10, label(message, LABEL_MAX_WIDTH), textField); - - new FxDialog<>() - .setOwner(FxApp.primaryStage) - .setBody(body) - .setTitle("提示") - .setButtonTypes(ButtonType.OK, ButtonType.CANCEL) - .setButtonHandler(ButtonType.OK, (actionEvent, stage) -> { - result[0] = textField.getText(); - stage.close(); - }) - .setButtonHandler(ButtonType.CANCEL, (actionEvent, stage) -> stage.close()) - .showAndWait(); - - return result[0]; - } - - ////////////////////////////////////////////////////////////// - - /** - * @deprecated 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} - */ - public static boolean showConfirmAlert(String message) { - VBox vBox = new VBox(15); - vBox.setAlignment(Pos.CENTER); - vBox.setPadding(new Insets(15, 15, 15, 15)); - Label textArea = new Label(message); - textArea.setFont(Font.font(18)); - vBox.getChildren().add(textArea); - Button button = new Button("确定"); - button.setFont(new Font(16)); - vBox.getChildren().add(button); - Stage newStage = JavaFxViewUtil.getNewStageNull("提示", null, vBox, -1, -1, false, false, false); - newStage.initModality(Modality.APPLICATION_MODAL); - AtomicBoolean isOk = new AtomicBoolean(false); - button.setOnMouseClicked(event -> { - isOk.set(true); - newStage.close(); - }); - newStage.showAndWait(); - return isOk.get(); - } - - @Deprecated - public static String showInputAlert(String message) { - return showInputAlertDefaultValue(message, null); - } - - public static String[] showInputAlert(String message, String... names) { - return showInputAlertMore(message, names); - } - - public static String[] showInputAlertMore(String message, String... names) { - return showInputAlertMore(message, names, new String[names.length]); - } - - public static String[] showInputAlertMore(String message, String[] names, String[] defaultValue) { - GridPane page1Grid = new GridPane(); - page1Grid.setVgap(10); - page1Grid.setHgap(10); - - TextField[] textFields = new TextField[names.length]; - for (int i = 0; i < names.length; i++) { - TextField textField = new TextField(); - textField.setText(defaultValue[i]); - textField.setMinWidth(100); - textField.prefColumnCountProperty().bind(textField.textProperty().length()); - GridPane.setHgrow(textField, Priority.ALWAYS); - page1Grid.add(new Label(names[i]), 0, i); - page1Grid.add(textField, 1, i); - textFields[i] = textField; - } - - Alert alert = new Alert(Alert.AlertType.NONE, null, new ButtonType("取消", ButtonBar.ButtonData.NO), - new ButtonType("确定", ButtonBar.ButtonData.YES)); - alert.setTitle(message); - alert.setGraphic(page1Grid); - alert.setWidth(200); - Optional _buttonType = alert.showAndWait(); - // 根据点击结果返回 - if (_buttonType.get().getButtonData().equals(ButtonBar.ButtonData.YES)) { - String[] stringS = new String[names.length]; - for (int i = 0; i < textFields.length; i++) { - stringS[i] = textFields[i].getText(); - } - return stringS; - } - return null; - } -} diff --git a/debugTools/x-ScriptEngineTool/build.gradle b/debugTools/x-ScriptEngineTool/build.gradle index f0ab76fb..4e22f731 100644 --- a/debugTools/x-ScriptEngineTool/build.gradle +++ b/debugTools/x-ScriptEngineTool/build.gradle @@ -1,7 +1,8 @@ dependencies { // implementation 'com.xwintop:xcore:0.0.6' api project(':xcore') - implementation 'org.codehaus.groovy:groovy-all:2.4.16' + implementation 'org.apache.groovy:groovy-all:4.0.18' + implementation 'org.python:jython:2.5.3' implementation 'org.luaj:luaj-jse:3.0.1' } diff --git a/debugTools/x-ScriptEngineTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ScriptEngineToolService.java b/debugTools/x-ScriptEngineTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ScriptEngineToolService.java index 530e9ea3..4341e6c4 100644 --- a/debugTools/x-ScriptEngineTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ScriptEngineToolService.java +++ b/debugTools/x-ScriptEngineTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ScriptEngineToolService.java @@ -19,7 +19,6 @@ import org.apache.commons.lang3.StringUtils; import java.io.File; import java.util.Map; -import java.util.function.Consumer; /** * @ClassName: ScriptEngineToolService -- Gitee From 2593fdcbbdb38b525f4fd86541b61695430b5609 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Sat, 3 Feb 2024 22:47:49 +0800 Subject: [PATCH 02/27] =?UTF-8?q?1.=E5=8D=87=E7=BA=A7=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E5=8C=85=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- debugTools/x-SocketTool/build.gradle | 2 +- .../controller/debugTools/SocketToolController.java | 2 +- javaFxTools/x-ShowSystemInfo/build.gradle | 2 +- .../services/javaFxTools/ShowSystemInfoService.java | 3 ++- xJavaFxTool/build.gradle | 1 - 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/debugTools/x-SocketTool/build.gradle b/debugTools/x-SocketTool/build.gradle index d272ebca..1ee285de 100644 --- a/debugTools/x-SocketTool/build.gradle +++ b/debugTools/x-SocketTool/build.gradle @@ -2,7 +2,7 @@ dependencies { // implementation 'com.xwintop:xcore:0.0.6' api project(':xcore') implementation 'org.apache.mina:mina-core:2.2.3' - implementation 'com.github.oshi:oshi-core:3.14.0' + implementation 'com.github.oshi:oshi-core:6.4.11' } group = 'com.xwintop' diff --git a/debugTools/x-SocketTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/SocketToolController.java b/debugTools/x-SocketTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/SocketToolController.java index 2d446f5a..7ff29c71 100644 --- a/debugTools/x-SocketTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/SocketToolController.java +++ b/debugTools/x-SocketTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/SocketToolController.java @@ -57,7 +57,7 @@ public class SocketToolController extends SocketToolView { clientUrlComboBox.getItems().add("127.0.0.1"); SystemInfo si = new SystemInfo(); HardwareAbstractionLayer hal = si.getHardware(); - NetworkIF[] networkIFs = hal.getNetworkIFs(); + NetworkIF[] networkIFs = hal.getNetworkIFs().toArray(new NetworkIF[0]); for (NetworkIF networkIF : networkIFs) { if (ArrayUtils.getLength(networkIF.getIPv4addr()) > 0) { String address = networkIF.getIPv4addr()[0]; diff --git a/javaFxTools/x-ShowSystemInfo/build.gradle b/javaFxTools/x-ShowSystemInfo/build.gradle index f4e5f709..2c43183d 100644 --- a/javaFxTools/x-ShowSystemInfo/build.gradle +++ b/javaFxTools/x-ShowSystemInfo/build.gradle @@ -1,7 +1,7 @@ dependencies { // implementation 'com.xwintop:xcore:0.0.6' api project(':xcore') - implementation 'com.github.oshi:oshi-core:5.7.0' + implementation 'com.github.oshi:oshi-core:6.4.11' } group = 'com.xwintop' diff --git a/javaFxTools/x-ShowSystemInfo/src/main/java/com/xwintop/xJavaFxTool/services/javaFxTools/ShowSystemInfoService.java b/javaFxTools/x-ShowSystemInfo/src/main/java/com/xwintop/xJavaFxTool/services/javaFxTools/ShowSystemInfoService.java index bd5cfe0d..7db5c761 100644 --- a/javaFxTools/x-ShowSystemInfo/src/main/java/com/xwintop/xJavaFxTool/services/javaFxTools/ShowSystemInfoService.java +++ b/javaFxTools/x-ShowSystemInfo/src/main/java/com/xwintop/xJavaFxTool/services/javaFxTools/ShowSystemInfoService.java @@ -419,7 +419,8 @@ public class ShowSystemInfoService { StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("\nProcesses: " + os.getProcessCount() + ", Threads: " + os.getThreadCount()); // Sort by highest CPU - List procs = os.getProcesses(5, OperatingSystem.ProcessSort.CPU); +// List procs = os.getProcesses(5, OperatingSystem.ProcessSort.CPU); + List procs = os.getProcesses(OperatingSystem.ProcessFiltering.NO_PARENT,OperatingSystem.ProcessSorting.CPU_DESC,5); stringBuffer.append("\n PID %CPU %MEM VSZ RSS Name"); for (int i = 0; i < procs.size() && i < 5; i++) { diff --git a/xJavaFxTool/build.gradle b/xJavaFxTool/build.gradle index 16e8aecd..b282aed0 100644 --- a/xJavaFxTool/build.gradle +++ b/xJavaFxTool/build.gradle @@ -8,7 +8,6 @@ dependencies { // api project(':littleTools:x-EncryptAndDecrypt') // implementation 'io.github.classgraph:classgraph:4.8.100' // implementation 'com.gitee.xwintop:xcore:0.0.6-jdk17' -// implementation 'com.github.oshi:oshi-core:5.7.5' } group = 'com.xwintop' -- Gitee From bbb8053349354dfb41188cc9fcc952fe25a113b2 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Mon, 5 Feb 2024 18:44:07 +0800 Subject: [PATCH 03/27] =?UTF-8?q?1.=E5=8D=87=E7=BA=A7=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E5=8C=85=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../developTools/AsciiPicToolService.java | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/developTools/x-AsciiPicTool/src/main/java/com/xwintop/xJavaFxTool/services/developTools/AsciiPicToolService.java b/developTools/x-AsciiPicTool/src/main/java/com/xwintop/xJavaFxTool/services/developTools/AsciiPicToolService.java index b434d465..42a0ccab 100644 --- a/developTools/x-AsciiPicTool/src/main/java/com/xwintop/xJavaFxTool/services/developTools/AsciiPicToolService.java +++ b/developTools/x-AsciiPicTool/src/main/java/com/xwintop/xJavaFxTool/services/developTools/AsciiPicToolService.java @@ -4,20 +4,6 @@ import com.xwintop.xJavaFxTool.controller.developTools.AsciiPicToolController; import com.xwintop.xJavaFxTool.utils.ImageUtil; import com.xwintop.xcore.util.javafx.FileChooserUtil; import com.xwintop.xcore.util.javafx.TooltipUtil; - -import java.awt.Color; -import java.awt.image.BufferedImage; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.SynchronousQueue; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - import javafx.scene.image.Image; import lombok.Getter; import lombok.Setter; @@ -32,6 +18,15 @@ import org.apache.poi.xssf.usermodel.XSSFColor; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.concurrent.*; + /** * @ClassName: AsciiPicToolService * @Description: 图片转ascii -- Gitee From 4667e4e16a8d524b46e13717cb9eba66133914ba Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Mon, 12 Feb 2024 22:46:57 +0800 Subject: [PATCH 04/27] =?UTF-8?q?1.=E5=8D=87=E7=BA=A7=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E5=8C=85=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeTools/x-WebSourcesTool/build.gradle | 1 + .../xJavaFxTool/services/littleTools/FileBuildToolService.java | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/codeTools/x-WebSourcesTool/build.gradle b/codeTools/x-WebSourcesTool/build.gradle index 6f00fc4f..59fd89ad 100644 --- a/codeTools/x-WebSourcesTool/build.gradle +++ b/codeTools/x-WebSourcesTool/build.gradle @@ -1,6 +1,7 @@ dependencies { // implementation 'com.xwintop:xcore:0.0.6' api project(':xcore') + implementation 'com.squareup.okhttp3:okhttp:4.12.0' } group = 'com.xwintop' diff --git a/littleTools/x-FileBuildTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileBuildToolService.java b/littleTools/x-FileBuildTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileBuildToolService.java index 2098b1f2..0be84cf8 100644 --- a/littleTools/x-FileBuildTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileBuildToolService.java +++ b/littleTools/x-FileBuildTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileBuildToolService.java @@ -1,6 +1,5 @@ package com.xwintop.xJavaFxTool.services.littleTools; -import cn.hutool.core.lang.UUID; import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; -- Gitee From 4680b4536a24a7c80a94d07686a8839b62f3525c Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Thu, 15 Feb 2024 22:02:15 +0800 Subject: [PATCH 05/27] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=8A=A0=E8=A7=A3?= =?UTF-8?q?=E5=AF=86=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/littleTools/EncryptAndDecryptController.java | 5 +++-- .../main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java | 2 -- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/EncryptAndDecryptController.java b/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/EncryptAndDecryptController.java index 54e3d898..8d1c9670 100644 --- a/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/EncryptAndDecryptController.java +++ b/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/EncryptAndDecryptController.java @@ -5,6 +5,7 @@ import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.SmUtil; import cn.hutool.crypto.asymmetric.KeyType; import cn.hutool.crypto.asymmetric.SM2; +import cn.hutool.crypto.digest.DigestAlgorithm; import cn.hutool.crypto.symmetric.AES; import cn.hutool.crypto.symmetric.DES; import cn.hutool.crypto.symmetric.SymmetricCrypto; @@ -50,7 +51,7 @@ public class EncryptAndDecryptController extends EncryptAndDecryptView { * 加密算法. 空""用于填充一个空位. */ private String[] cryptos = new String[]{GuiUtils.CRYPTO_ASCII, GuiUtils.CRYPTO_HEX, GuiUtils.CRYPTO_BASE64, - GuiUtils.CRYPTO_BASE32, GuiUtils.CRYPTO_URL, "", "", "", "", GuiUtils.CRYPTO_MD5, GuiUtils.CRYPTO_SHA, + GuiUtils.CRYPTO_BASE32, GuiUtils.CRYPTO_URL, "", "", "", "", DigestAlgorithm.MD5.name(), GuiUtils.CRYPTO_SHA, GuiUtils.CRYPTO_SHA256, GuiUtils.CRYPTO_SHA384, GuiUtils.CRYPTO_SHA512, "", "", "", "", "Aes", "Des", "Sm2", "Sm3", "Sm4", "", "文件加密MD5", "文件加密SHA1", "摩斯密码", "Druid加密"}; @Override @@ -105,7 +106,7 @@ public class EncryptAndDecryptController extends EncryptAndDecryptView { decrptyTextArea.setText(new String(base32.encode(string.getBytes(charSet)))); } else if (GuiUtils.CRYPTO_URL.equals(curCrypto)) { decrptyTextArea.setText(new String(URLCodec.encodeUrl(null, string.getBytes(charSet)), charSet)); - } else if (GuiUtils.CRYPTO_MD5.equals(curCrypto)) { + } else if (DigestAlgorithm.MD5.name().equals(curCrypto)) { String md5Val = DigestUtils.md5Hex(string.getBytes(charSet)); decrptyTextArea.setText("16Bit:" + md5Val.substring(8, 24) + "\n32Bit:" + md5Val); } else if (GuiUtils.CRYPTO_SHA.equals(curCrypto)) { diff --git a/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java b/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java index 85e84d94..0a106f82 100644 --- a/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java +++ b/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java @@ -14,8 +14,6 @@ public class GuiUtils { public static String CRYPTO_URL = "URL"; // 不可解密算法 - public static String CRYPTO_MD5 = "MD5"; - public static String CRYPTO_SHA = "SHA"; public static String CRYPTO_SHA256 = "SHA256"; -- Gitee From e8652dc9f9efc081da49d863cc185d999dbf7404 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Fri, 16 Feb 2024 22:48:50 +0800 Subject: [PATCH 06/27] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=8A=A0=E8=A7=A3?= =?UTF-8?q?=E5=AF=86=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EncryptAndDecryptController.java | 22 ++++++++++--------- .../xwintop/xJavaFxTool/utils/GuiUtils.java | 9 -------- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/EncryptAndDecryptController.java b/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/EncryptAndDecryptController.java index 8d1c9670..78cc52d0 100644 --- a/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/EncryptAndDecryptController.java +++ b/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/EncryptAndDecryptController.java @@ -8,6 +8,7 @@ import cn.hutool.crypto.asymmetric.SM2; import cn.hutool.crypto.digest.DigestAlgorithm; import cn.hutool.crypto.symmetric.AES; import cn.hutool.crypto.symmetric.DES; +import cn.hutool.crypto.symmetric.SymmetricAlgorithm; import cn.hutool.crypto.symmetric.SymmetricCrypto; import com.xwintop.xJavaFxTool.utils.DruidConfigTools; import com.xwintop.xJavaFxTool.utils.GuiUtils; @@ -51,8 +52,9 @@ public class EncryptAndDecryptController extends EncryptAndDecryptView { * 加密算法. 空""用于填充一个空位. */ private String[] cryptos = new String[]{GuiUtils.CRYPTO_ASCII, GuiUtils.CRYPTO_HEX, GuiUtils.CRYPTO_BASE64, - GuiUtils.CRYPTO_BASE32, GuiUtils.CRYPTO_URL, "", "", "", "", DigestAlgorithm.MD5.name(), GuiUtils.CRYPTO_SHA, - GuiUtils.CRYPTO_SHA256, GuiUtils.CRYPTO_SHA384, GuiUtils.CRYPTO_SHA512, "", "", "", "", "Aes", "Des", "Sm2", "Sm3", "Sm4", "", "文件加密MD5", "文件加密SHA1", "摩斯密码", "Druid加密"}; + GuiUtils.CRYPTO_BASE32, GuiUtils.CRYPTO_URL, DigestAlgorithm.MD5.name(), DigestAlgorithm.SHA1.name(), + DigestAlgorithm.SHA256.name(), DigestAlgorithm.SHA384.name(), DigestAlgorithm.SHA512.name(), + SymmetricAlgorithm.AES.name(), SymmetricAlgorithm.DES.name(), "Sm2", "Sm3", "Sm4", "文件加密MD5", "文件加密SHA1", "摩斯密码", "Druid加密"}; @Override public void initialize(URL location, ResourceBundle resources) { @@ -109,19 +111,19 @@ public class EncryptAndDecryptController extends EncryptAndDecryptView { } else if (DigestAlgorithm.MD5.name().equals(curCrypto)) { String md5Val = DigestUtils.md5Hex(string.getBytes(charSet)); decrptyTextArea.setText("16Bit:" + md5Val.substring(8, 24) + "\n32Bit:" + md5Val); - } else if (GuiUtils.CRYPTO_SHA.equals(curCrypto)) { + } else if (DigestAlgorithm.SHA1.name().equals(curCrypto)) { decrptyTextArea.setText(DigestUtils.sha1Hex(string.getBytes(charSet))); - } else if (GuiUtils.CRYPTO_SHA256.equals(curCrypto)) { + } else if (DigestAlgorithm.SHA256.name().equals(curCrypto)) { decrptyTextArea.setText(DigestUtils.sha256Hex(string.getBytes(charSet))); - } else if (GuiUtils.CRYPTO_SHA384.equals(curCrypto)) { + } else if (DigestAlgorithm.SHA384.name().equals(curCrypto)) { decrptyTextArea.setText(DigestUtils.sha384Hex(string.getBytes(charSet))); - } else if (GuiUtils.CRYPTO_SHA512.equals(curCrypto)) { + } else if (DigestAlgorithm.SHA512.name().equals(curCrypto)) { decrptyTextArea.setText(DigestUtils.sha512Hex(string.getBytes(charSet))); - } else if ("Aes".equals(curCrypto)) { + } else if (SymmetricAlgorithm.AES.name().equals(curCrypto)) { String key = keyTextField.getText(); AES aes = SecureUtil.aes(key.getBytes(charSet)); decrptyTextArea.setText(aes.encryptHex(string, charSet)); - } else if ("Des".equals(curCrypto)) { + } else if (SymmetricAlgorithm.DES.name().equals(curCrypto)) { String key = keyTextField.getText(); DES des = SecureUtil.des(key.getBytes()); decrptyTextArea.setText(des.encryptHex(string, charSet)); @@ -176,11 +178,11 @@ public class EncryptAndDecryptController extends EncryptAndDecryptView { encrptyTextArea.setText(new String(base32.decode(string.getBytes(charSet)), charSet)); } else if (GuiUtils.CRYPTO_URL.equals(curCrypto)) { encrptyTextArea.setText(new String(URLCodec.decodeUrl(string.getBytes(charSet)), charSet)); - } else if ("Aes".equals(curCrypto)) { + } else if (SymmetricAlgorithm.AES.name().equals(curCrypto)) { String key = keyTextField.getText(); AES aes = SecureUtil.aes(key.getBytes(charSet)); encrptyTextArea.setText(aes.decryptStr(string, Charset.forName(charSet))); - } else if ("Des".equals(curCrypto)) { + } else if (SymmetricAlgorithm.DES.name().equals(curCrypto)) { String key = keyTextField.getText(); DES des = SecureUtil.des(key.getBytes()); encrptyTextArea.setText(des.decryptStr(string, Charset.forName(charSet))); diff --git a/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java b/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java index 0a106f82..c9060270 100644 --- a/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java +++ b/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java @@ -13,15 +13,6 @@ public class GuiUtils { public static String CRYPTO_URL = "URL"; - // 不可解密算法 - public static String CRYPTO_SHA = "SHA"; - - public static String CRYPTO_SHA256 = "SHA256"; - - public static String CRYPTO_SHA384 = "SHA384"; - - public static String CRYPTO_SHA512 = "SHA512"; - /**************************** 文件大小单位 ****************************/ public static String FileSize_PB = "PB"; -- Gitee From d9eca10f66a3c8a4d39a979142ccc1c84efe4746 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Sun, 18 Feb 2024 09:42:08 +0800 Subject: [PATCH 07/27] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=B1=BB=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CharacterConverterController.java | 2 +- .../xwintop/xJavaFxTool/utils/GuiUtils.java | 14 ----- .../EncryptAndDecryptController.java | 25 ++++---- .../xwintop/xJavaFxTool/utils/GuiUtils.java | 60 ------------------- 4 files changed, 13 insertions(+), 88 deletions(-) delete mode 100644 littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java diff --git a/littleTools/x-CharacterConverter/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/CharacterConverterController.java b/littleTools/x-CharacterConverter/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/CharacterConverterController.java index a1cd0e36..4307c2b3 100644 --- a/littleTools/x-CharacterConverter/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/CharacterConverterController.java +++ b/littleTools/x-CharacterConverter/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/CharacterConverterController.java @@ -45,7 +45,7 @@ public class CharacterConverterController extends CharacterConverterView { */ private String[] charsets = new String[]{GuiUtils.CHARSET_UTF_16BE, GuiUtils.CHARSET_UTF_16LE, GuiUtils.CHARSET_UTF_8, GuiUtils.CHARSET_UTF_16, GuiUtils.CHARSET_GB2312, GuiUtils.CHARSET_GBK, - GuiUtils.CHARSET_GB18030, GuiUtils.CHARSET_Big5, GuiUtils.CHARSET_ISO_8859_1, ""}; + GuiUtils.CHARSET_GB18030, GuiUtils.CHARSET_Big5, GuiUtils.CHARSET_ISO_8859_1}; private TextField customCharsetField; private TextField[] fields = new TextField[charsets.length]; diff --git a/littleTools/x-CharacterConverter/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java b/littleTools/x-CharacterConverter/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java index 599cdc1b..a9075271 100644 --- a/littleTools/x-CharacterConverter/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java +++ b/littleTools/x-CharacterConverter/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java @@ -33,20 +33,6 @@ public class GuiUtils { public static String CHARSET_Big5 = "Big5"; - /**************************** 算法 ****************************/ - // 可解密/解码算法 - public static String CRYPTO_ASCII = "Ascii"; - public static String CRYPTO_HEX = "Hex"; - public static String CRYPTO_BASE32 = "Base32"; - public static String CRYPTO_BASE64 = "Base64"; - public static String CRYPTO_URL = "URL"; - // 不可解密算法 - public static String CRYPTO_MD5 = "MD5"; - public static String CRYPTO_SHA = "SHA"; - public static String CRYPTO_SHA256 = "SHA256"; - public static String CRYPTO_SHA384 = "SHA384"; - public static String CRYPTO_SHA512 = "SHA512"; - /**************************** 字体 ****************************/ /** diff --git a/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/EncryptAndDecryptController.java b/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/EncryptAndDecryptController.java index 78cc52d0..46d984d6 100644 --- a/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/EncryptAndDecryptController.java +++ b/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/EncryptAndDecryptController.java @@ -11,7 +11,6 @@ import cn.hutool.crypto.symmetric.DES; import cn.hutool.crypto.symmetric.SymmetricAlgorithm; import cn.hutool.crypto.symmetric.SymmetricCrypto; import com.xwintop.xJavaFxTool.utils.DruidConfigTools; -import com.xwintop.xJavaFxTool.utils.GuiUtils; import com.xwintop.xJavaFxTool.view.littleTools.EncryptAndDecryptView; import com.xwintop.xcore.util.javafx.JavaFxViewUtil; import javafx.event.ActionEvent; @@ -51,8 +50,8 @@ public class EncryptAndDecryptController extends EncryptAndDecryptView { /** * 加密算法. 空""用于填充一个空位. */ - private String[] cryptos = new String[]{GuiUtils.CRYPTO_ASCII, GuiUtils.CRYPTO_HEX, GuiUtils.CRYPTO_BASE64, - GuiUtils.CRYPTO_BASE32, GuiUtils.CRYPTO_URL, DigestAlgorithm.MD5.name(), DigestAlgorithm.SHA1.name(), + private String[] cryptos = new String[]{"Ascii", "Hex", "Base64", + "Base32", "URL", DigestAlgorithm.MD5.name(), DigestAlgorithm.SHA1.name(), DigestAlgorithm.SHA256.name(), DigestAlgorithm.SHA384.name(), DigestAlgorithm.SHA512.name(), SymmetricAlgorithm.AES.name(), SymmetricAlgorithm.DES.name(), "Sm2", "Sm3", "Sm4", "文件加密MD5", "文件加密SHA1", "摩斯密码", "Druid加密"}; @@ -97,16 +96,16 @@ public class EncryptAndDecryptController extends EncryptAndDecryptView { return; } try { - if (GuiUtils.CRYPTO_ASCII.equals(curCrypto)) { + if ("Ascii".equals(curCrypto)) { decrptyTextArea.setText(BinaryCodec.toAsciiString(string.getBytes(charSet))); - } else if (GuiUtils.CRYPTO_HEX.equals(curCrypto)) { + } else if ("Hex".equals(curCrypto)) { decrptyTextArea.setText(Hex.encodeHexString(string.getBytes(charSet))); - } else if (GuiUtils.CRYPTO_BASE64.equals(curCrypto)) { + } else if ("Base64".equals(curCrypto)) { decrptyTextArea.setText(new String(Base64.encodeBase64(string.getBytes(charSet)))); - } else if (GuiUtils.CRYPTO_BASE32.equals(curCrypto)) { + } else if ("Base32".equals(curCrypto)) { Base32 base32 = new Base32(); decrptyTextArea.setText(new String(base32.encode(string.getBytes(charSet)))); - } else if (GuiUtils.CRYPTO_URL.equals(curCrypto)) { + } else if ("URL".equals(curCrypto)) { decrptyTextArea.setText(new String(URLCodec.encodeUrl(null, string.getBytes(charSet)), charSet)); } else if (DigestAlgorithm.MD5.name().equals(curCrypto)) { String md5Val = DigestUtils.md5Hex(string.getBytes(charSet)); @@ -167,16 +166,16 @@ public class EncryptAndDecryptController extends EncryptAndDecryptView { return; } try { - if (GuiUtils.CRYPTO_ASCII.equals(curCrypto)) { + if ("Ascii".equals(curCrypto)) { encrptyTextArea.setText(new String(BinaryCodec.fromAscii(string.toCharArray()), charSet)); - } else if (GuiUtils.CRYPTO_HEX.equals(curCrypto)) { + } else if ("Hex".equals(curCrypto)) { encrptyTextArea.setText(new String(Hex.decodeHex(string.toCharArray()), charSet)); - } else if (GuiUtils.CRYPTO_BASE64.equals(curCrypto)) { + } else if ("Base64".equals(curCrypto)) { encrptyTextArea.setText(new String(Base64.decodeBase64(string.getBytes(charSet)), charSet)); - } else if (GuiUtils.CRYPTO_BASE32.equals(curCrypto)) { + } else if ("Base32".equals(curCrypto)) { Base32 base32 = new Base32(); encrptyTextArea.setText(new String(base32.decode(string.getBytes(charSet)), charSet)); - } else if (GuiUtils.CRYPTO_URL.equals(curCrypto)) { + } else if ("URL".equals(curCrypto)) { encrptyTextArea.setText(new String(URLCodec.decodeUrl(string.getBytes(charSet)), charSet)); } else if (SymmetricAlgorithm.AES.name().equals(curCrypto)) { String key = keyTextField.getText(); diff --git a/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java b/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java deleted file mode 100644 index c9060270..00000000 --- a/littleTools/x-EncryptAndDecrypt/src/main/java/com/xwintop/xJavaFxTool/utils/GuiUtils.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.xwintop.xJavaFxTool.utils; - -public class GuiUtils { - /**************************** 算法 ****************************/ - // 可解密/解码算法 - public static String CRYPTO_ASCII = "Ascii"; - - public static String CRYPTO_HEX = "Hex"; - - public static String CRYPTO_BASE32 = "Base32"; - - public static String CRYPTO_BASE64 = "Base64"; - - public static String CRYPTO_URL = "URL"; - - /**************************** 文件大小单位 ****************************/ - public static String FileSize_PB = "PB"; - - public static String FileSize_TB = "TB"; - - public static String FileSize_G = "G"; - - public static String FileSize_M = "M"; - - public static String FileSize_KB = "KB"; - - public static String FileSize_Byte = "Byte"; - - /** - * 计算文件(单位)大小,单位为字节Byte. - */ - public static Double getCountFileSizeUnit(String size, String unit) { - return getCountFileSizeUnit(size.length() == 0 ? null : Double.parseDouble(size), unit); - } - - /** - * 计算文件(单位)大小,单位为字节Byte. - */ - public static Double getCountFileSizeUnit(Double size, String unit) { - if (size == null) { - return null; - } - Double bSize = null; - int cas = 1024; - if (unit.equals(FileSize_Byte)) { - bSize = size; - } else if (unit.equals(FileSize_KB)) { - bSize = size * cas; - } else if (unit.equals(FileSize_M)) { - bSize = size * cas * cas; - } else if (unit.equals(FileSize_G)) { - bSize = size * cas * cas * cas; - } else if (unit.equals(FileSize_TB)) { - bSize = size * cas * cas * cas * cas; - } else if (unit.equals(FileSize_PB)) { - bSize = size * cas * cas * cas * cas * cas; - } - return bSize; - } -} -- Gitee From 53e6ed714d55b12a867affee055ea586ccfcfa26 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Sun, 18 Feb 2024 20:53:16 +0800 Subject: [PATCH 08/27] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E6=8E=A8=E5=B9=BF=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IndexController.java | 2 +- .../xJavaFxTool/services/IndexService.java | 30 +++++++++---------- .../xwintop/xJavaFxTool/fxmlView/Index.fxml | 4 +-- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java index 7c017efc..2e71d59e 100644 --- a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java +++ b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java @@ -83,7 +83,7 @@ public class IndexController extends IndexView { addNodepadAction(null); } this.indexService.addWebView(XJavaFxToolApplication.RESOURCE_BUNDLE.getString("feedback"), QQ_URL, null); -// this.tongjiWebView.getEngine().load(STATISTICS_URL); + this.tongjiWebView.getEngine().load(STATISTICS_URL); this.tabPaneMain.getSelectionModel().select(0); } diff --git a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/services/IndexService.java b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/services/IndexService.java index c7d7c47b..176d386a 100644 --- a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/services/IndexService.java +++ b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/services/IndexService.java @@ -24,13 +24,13 @@ import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.BorderPane; import javafx.scene.layout.Region; +import javafx.scene.web.WebEngine; +import javafx.scene.web.WebView; import javafx.stage.Stage; import lombok.Data; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; -import java.io.IOException; import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -196,30 +196,30 @@ public class IndexService { } public static Tab loadWebViewAsTab(PluginJarInfo plugin, TabPane tabPane, boolean singleWindowBoot) { -// WebView browser = new WebView(); -// WebEngine webEngine = browser.getEngine(); + WebView browser = new WebView(); + WebEngine webEngine = browser.getEngine(); String url = plugin.getPagePath(); String title = plugin.getTitle(); // HTMLView browser = null; -// if (url.startsWith("http")) { -//// webEngine.load(url); + if (url.startsWith("http")) { + webEngine.load(url); // String contentIframe2 = ""; // browser = new HTMLView(contentIframe2); -// } else { -// PluginContainer pluginContainer = new PluginContainer(plugin); -//// webEngine.load(pluginContainer.getResource(url).toExternalForm()); + } else { + PluginContainer pluginContainer = new PluginContainer(plugin); + webEngine.load(pluginContainer.getResource(url).toExternalForm()); // try { // browser = new HTMLView(IOUtils.toString(pluginContainer.getResource(url).openStream(), "utf-8")); // } catch (IOException e) { // throw new RuntimeException(e); // } -// } + } -// if (singleWindowBoot) { -// JavaFxViewUtil.getNewStage(title, plugin.getIconPath(), new BorderPane(browser)); -// return null; -// } + if (singleWindowBoot) { + JavaFxViewUtil.getNewStage(title, plugin.getIconPath(), new BorderPane(browser)); + return null; + } Tab tab = new Tab(title); if (plugin.getIconImage() == null) { if (StringUtils.isNotEmpty(plugin.getIconPath())) { @@ -234,7 +234,7 @@ public class IndexService { imageView.setFitWidth(18); tab.setGraphic(imageView); } -// tab.setContent(browser); + tab.setContent(browser); tabPane.getTabs().add(tab); tabPane.getSelectionModel().select(tab); return tab; diff --git a/xJavaFxTool/src/main/resources/com/xwintop/xJavaFxTool/fxmlView/Index.fxml b/xJavaFxTool/src/main/resources/com/xwintop/xJavaFxTool/fxmlView/Index.fxml index cd07f5cb..38887617 100644 --- a/xJavaFxTool/src/main/resources/com/xwintop/xJavaFxTool/fxmlView/Index.fxml +++ b/xJavaFxTool/src/main/resources/com/xwintop/xJavaFxTool/fxmlView/Index.fxml @@ -3,7 +3,7 @@ - + @@ -69,7 +69,7 @@ - + -- Gitee From 1db90da306eaa6bb1c3d8627c78c1d52fb88e729 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Mon, 19 Feb 2024 11:16:10 +0800 Subject: [PATCH 09/27] =?UTF-8?q?1.=E5=8D=87=E7=BA=A7=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E5=8C=85=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- xcore/build.gradle | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index b4960c4d..064c4b36 100644 --- a/build.gradle +++ b/build.gradle @@ -46,7 +46,7 @@ allprojects { // version = '0.0.0.1' [compileJava, compileTestJava, javadoc]*.options*.encoding = "UTF-8" dependencies { - testImplementation 'org.junit.jupiter:junit-jupiter:5.10.1' + testImplementation 'org.junit.jupiter:junit-jupiter:5.10.2' compileOnly('org.projectlombok:lombok:1.18.30') annotationProcessor 'org.projectlombok:lombok:1.18.30' testCompileOnly 'org.projectlombok:lombok:1.18.30' diff --git a/xcore/build.gradle b/xcore/build.gradle index 1bd6ec6b..a0901819 100644 --- a/xcore/build.gradle +++ b/xcore/build.gradle @@ -12,8 +12,8 @@ dependencies { api 'org.apache.commons:commons-text:1.11.0' // api 'commons-beanutils:commons-beanutils:1.9.4' // api 'org.apache.commons:commons-imaging:1.0-alpha3' - api 'cn.hutool:hutool-all:5.8.24' - api 'com.alibaba.fastjson2:fastjson2:2.0.45' + api 'cn.hutool:hutool-all:5.8.26' + api 'com.alibaba.fastjson2:fastjson2:2.0.46' api 'org.yaml:snakeyaml:1.30' } -- Gitee From 8efd9268ac61eea935557230d08423ff33b2a8c6 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Mon, 19 Feb 2024 11:27:15 +0800 Subject: [PATCH 10/27] =?UTF-8?q?1.=E4=BC=98=E5=8C=96mac=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E4=B8=8Bdock=E6=A0=8F=E5=9B=BE=E6=A0=87=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xJavaFxTool/XJavaFxToolApplication.java | 25 +++++++----- .../controller/IndexController.java | 2 +- .../xwintop/xcore/util/SystemInfoUtil.java | 40 ------------------- 3 files changed, 15 insertions(+), 52 deletions(-) delete mode 100644 xcore/src/main/java/com/xwintop/xcore/util/SystemInfoUtil.java diff --git a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/XJavaFxToolApplication.java b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/XJavaFxToolApplication.java index 1a1c1a56..13eb1886 100644 --- a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/XJavaFxToolApplication.java +++ b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/XJavaFxToolApplication.java @@ -1,15 +1,16 @@ /** - * Copyright (c) [2019] [xufeng] - * [xJavaFxTool] is licensed under Mulan PSL v2. - * You can use this software according to the terms and conditions of the Mulan PSL v2. - * You may obtain a copy of Mulan PSL v2 at: - * http://license.coscl.org.cn/MulanPSL2 - * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. - * See the Mulan PSL v2 for more details. + * Copyright (c) [2019] [xufeng] + * [xJavaFxTool] is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * http://license.coscl.org.cn/MulanPSL2 + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. */ package com.xwintop.xJavaFxTool; +import cn.hutool.system.SystemUtil; import com.xwintop.xJavaFxTool.controller.IndexController; import com.xwintop.xJavaFxTool.utils.Config; import com.xwintop.xJavaFxTool.utils.Config.Keys; @@ -27,6 +28,8 @@ import javafx.scene.Scene; import javafx.stage.Stage; import lombok.extern.slf4j.Slf4j; +import javax.imageio.ImageIO; +import java.awt.*; import java.io.IOException; import java.util.ResourceBundle; @@ -51,10 +54,10 @@ public class XJavaFxToolApplication extends Application { FxApp.init(primaryStage, LOGO_PATH); FxApp.styleSheets.add(XJavaFxToolApplication.class.getClassLoader().getResource("css/jfoenix-main.css").toExternalForm()); -// if (SystemUtil.getOsInfo().isMac()) { - //Mac下设置dock栏图标 -// Taskbar.getTaskbar().setIconImage(ImageIO.read(XJavaFxToolApplication.class.getResourceAsStream(LOGO_PATH))); -// } + if (SystemUtil.getOsInfo().isMac()) { + // Mac下设置dock栏图标 + Taskbar.getTaskbar().setIconImage(ImageIO.read(XJavaFxToolApplication.class.getClassLoader().getResourceAsStream(LOGO_PATH))); + } primaryStage.setResizable(true); primaryStage.setTitle(RESOURCE_BUNDLE.getString("Title") + Config.xJavaFxToolVersions); diff --git a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java index 2e71d59e..3ebc89a8 100644 --- a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java +++ b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java @@ -282,6 +282,6 @@ public class IndexController extends IndexView { @FXML private void userSupportAction() throws Exception { - HttpClientUtil.openBrowseURLThrowsException("https://support.qq.com/product/127577"); + HttpClientUtil.openBrowseURLThrowsException(QQ_URL); } } diff --git a/xcore/src/main/java/com/xwintop/xcore/util/SystemInfoUtil.java b/xcore/src/main/java/com/xwintop/xcore/util/SystemInfoUtil.java deleted file mode 100644 index 9bbfba4d..00000000 --- a/xcore/src/main/java/com/xwintop/xcore/util/SystemInfoUtil.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.xwintop.xcore.util; - -import lombok.extern.slf4j.Slf4j; - -/** - * @ClassName: SystemInfoUtil - * @Description: 获取系统信息工具类 - * @author: xufeng - * @date: 2018/1/31 15:09 - */ - -@Deprecated -@Slf4j -public class SystemInfoUtil { - /** - * 获取Hosts文件路径 - */ - public static String getHostsFilePath(){ - String fileName = null; - // 判断系统 - if ("linux".equalsIgnoreCase(System.getProperty("os.name"))) { - fileName = "/etc/hosts"; - } else { - fileName = "C://WINDOWS//system32//drivers//etc//hosts"; - } -// log.info("获取hosts文件路径:"+fileName); - return fileName; - } - - /** - * 判断系统是否为windows - */ - public static boolean getIsWindows(){ - String os = System.getProperty("os.name"); - if(os.toLowerCase().startsWith("win")){ - return true; - } - return false; - } -} -- Gitee From 90378d92190a2e4606519117b86275f12aada47e Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Tue, 20 Feb 2024 10:12:39 +0800 Subject: [PATCH 11/27] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E5=8C=85=E7=89=88=E6=9C=AC=EF=BC=9B2.=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E4=B8=AD=E4=BD=BF=E7=94=A8=E7=9A=84=E8=BF=87?= =?UTF-8?q?=E6=97=B6=E7=9A=84=E5=B7=A5=E5=85=B7=E7=B1=BB=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- debugTools/x-KafkaTool/build.gradle | 2 +- .../debugTools/ZookeeperToolController.java | 4 +- .../java/us/deathmarine/luyten/LuytenOsx.java | 5 -- .../java/us/deathmarine/luyten/Model.java | 4 +- .../littleTools/HdfsToolController.java | 31 ++++---- .../services/littleTools/HdfsToolService.java | 13 ++-- .../services/littleTools/SmsToolService.java | 43 ++++++----- xJavaFxTool/build.gradle | 76 ++++++++++++++++++- xJavaFxTool/src/main/java/module-info.java | 3 + xcore/build.gradle | 2 +- 10 files changed, 132 insertions(+), 51 deletions(-) diff --git a/debugTools/x-KafkaTool/build.gradle b/debugTools/x-KafkaTool/build.gradle index 6f195e01..16ba12fe 100644 --- a/debugTools/x-KafkaTool/build.gradle +++ b/debugTools/x-KafkaTool/build.gradle @@ -2,7 +2,7 @@ dependencies { // implementation 'com.xwintop:xcore:0.0.6' api project(':xcore') implementation 'org.springframework.boot:spring-boot-starter-activemq:2.7.18' - implementation 'org.springframework.kafka:spring-kafka:2.7.18' + implementation 'org.springframework.kafka:spring-kafka:2.8.11' } group = 'com.xwintop' diff --git a/debugTools/x-ZookeeperTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/ZookeeperToolController.java b/debugTools/x-ZookeeperTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/ZookeeperToolController.java index 23e02e86..a8ada036 100644 --- a/debugTools/x-ZookeeperTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/ZookeeperToolController.java +++ b/debugTools/x-ZookeeperTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/ZookeeperToolController.java @@ -1,5 +1,6 @@ package com.xwintop.xJavaFxTool.controller.debugTools; +import cn.hutool.core.collection.CollectionUtil; import com.xwintop.xJavaFxTool.services.debugTools.ZookeeperToolService; import com.xwintop.xJavaFxTool.view.debugTools.ZookeeperToolView; import com.xwintop.xcore.util.ConfigureUtil; @@ -14,7 +15,6 @@ import javafx.scene.input.MouseButton; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections.CollectionUtils; import java.net.URL; import java.util.ResourceBundle; @@ -41,7 +41,7 @@ public class ZookeeperToolController extends ZookeeperToolView { } private void initView() { - if (CollectionUtils.isNotEmpty(textFieldInputHistoryDialog.getTableData())) { + if (CollectionUtil.isNotEmpty(textFieldInputHistoryDialog.getTableData())) { zkServersTextField.setText(textFieldInputHistoryDialog.getTableData().get(0).get("zkServers")); } JavaFxViewUtil.setSpinnerValueFactory(connectionTimeoutSpinner, 0, Integer.MAX_VALUE, 5000); diff --git a/developTools/x-LuytenTool/src/main/java/us/deathmarine/luyten/LuytenOsx.java b/developTools/x-LuytenTool/src/main/java/us/deathmarine/luyten/LuytenOsx.java index 5f4c0a33..f1219599 100644 --- a/developTools/x-LuytenTool/src/main/java/us/deathmarine/luyten/LuytenOsx.java +++ b/developTools/x-LuytenTool/src/main/java/us/deathmarine/luyten/LuytenOsx.java @@ -1,10 +1,5 @@ package us.deathmarine.luyten; -import java.io.File; -import com.apple.eawt.Application; -import com.apple.eawt.ApplicationAdapter; -import com.apple.eawt.ApplicationEvent; - /** * An OS X-specific initialization method for dragging/dropping */ diff --git a/developTools/x-LuytenTool/src/main/java/us/deathmarine/luyten/Model.java b/developTools/x-LuytenTool/src/main/java/us/deathmarine/luyten/Model.java index 2d0b802f..72dec7eb 100644 --- a/developTools/x-LuytenTool/src/main/java/us/deathmarine/luyten/Model.java +++ b/developTools/x-LuytenTool/src/main/java/us/deathmarine/luyten/Model.java @@ -655,9 +655,9 @@ public class Model extends JSplitPane { @SuppressWarnings("unchecked") public DefaultMutableTreeNode getChild(DefaultMutableTreeNode node, TreeNodeUserObject name) { - Enumeration entry = node.children(); + Enumeration entry = node.children(); while (entry.hasMoreElements()) { - DefaultMutableTreeNode nods = entry.nextElement(); + DefaultMutableTreeNode nods = (DefaultMutableTreeNode) entry.nextElement(); if (((TreeNodeUserObject) nods.getUserObject()).getOriginalName().equals(name.getOriginalName())) { return nods; } diff --git a/littleTools/x-HdfsTool/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/HdfsToolController.java b/littleTools/x-HdfsTool/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/HdfsToolController.java index 0bcefd7c..d93c6e8a 100644 --- a/littleTools/x-HdfsTool/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/HdfsToolController.java +++ b/littleTools/x-HdfsTool/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/HdfsToolController.java @@ -1,5 +1,6 @@ package com.xwintop.xJavaFxTool.controller.littleTools; +import cn.hutool.core.bean.BeanUtil; import com.xwintop.xJavaFxTool.services.littleTools.HdfsToolService; import com.xwintop.xJavaFxTool.view.littleTools.HdfsToolView; import com.xwintop.xcore.javafx.helper.DropContentHelper; @@ -16,7 +17,6 @@ import javafx.util.Callback; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.beanutils.BeanUtils; import javax.swing.filechooser.FileSystemView; import java.io.File; @@ -29,10 +29,15 @@ import java.util.ResourceBundle; @Slf4j public class HdfsToolController extends HdfsToolView { private HdfsToolService hdfsToolService = new HdfsToolService(this); + private ObservableList> searchResultTableData = FXCollections.observableArrayList(); + private ObservableList> hadoopConfTableData = FXCollections.observableArrayList(); + private ObservableList> systemConfTableData = FXCollections.observableArrayList(); + Node directorySvgGlyph = null; + Node fileSvgGlyph = null; @Override @@ -63,7 +68,7 @@ public class HdfsToolController extends HdfsToolView { JavaFxViewUtil.setSpinnerValueFactory(fileSizeFromSpinner, 0, Integer.MAX_VALUE, 0); JavaFxViewUtil.setSpinnerValueFactory(fileSizeToSpinner, 0, Integer.MAX_VALUE, 0); try { - hdfsListTreeView.setRoot(new TreeItem<>(HdfsToolService.getTreeItemMap("/"), (Node) BeanUtils.cloneBean(directorySvgGlyph))); + hdfsListTreeView.setRoot(new TreeItem<>(HdfsToolService.getTreeItemMap("/"), BeanUtil.toBean(directorySvgGlyph, Node.class))); } catch (Exception e) { log.error("设置图标失败", e); } @@ -81,9 +86,9 @@ public class HdfsToolController extends HdfsToolView { if (item != null) { try { if ("true".equals(searchResultTableData.get(this.getIndex()).get("isDirectory"))) { - this.setGraphic((Node) BeanUtils.cloneBean(directorySvgGlyph)); + this.setGraphic(BeanUtil.toBean(directorySvgGlyph, Node.class)); } else { - this.setGraphic((Node) BeanUtils.cloneBean(fileSvgGlyph)); + this.setGraphic(BeanUtil.toBean(fileSvgGlyph, Node.class)); } } catch (Exception e) { log.warn("设置图标失败:" + item, e); @@ -153,17 +158,17 @@ public class HdfsToolController extends HdfsToolView { }); JavaFxViewUtil.addTableViewOnMouseRightClickMenu(searchResultTableView); DropContentHelper.accept(hdfsListTreeView, - dragboard -> dragboard.hasFiles(), - (__, dragboard) -> { - TreeItem> selectedItem = hdfsListTreeView.getSelectionModel().getSelectedItem(); - hdfsToolService.addFileOnAction(dragboard.getFiles(), selectedItem); - } + dragboard -> dragboard.hasFiles(), + (__, dragboard) -> { + TreeItem> selectedItem = hdfsListTreeView.getSelectionModel().getSelectedItem(); + hdfsToolService.addFileOnAction(dragboard.getFiles(), selectedItem); + } ); DropContentHelper.accept(searchResultTableView, - dragboard -> dragboard.hasFiles(), - (__, dragboard) -> { - hdfsToolService.addFileOnAction(dragboard.getFiles()); - } + dragboard -> dragboard.hasFiles(), + (__, dragboard) -> { + hdfsToolService.addFileOnAction(dragboard.getFiles()); + } ); searchResultTableView.setOnDragDetected(event -> { hdfsToolService.dragDownloadFile(); diff --git a/littleTools/x-HdfsTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/HdfsToolService.java b/littleTools/x-HdfsTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/HdfsToolService.java index 9dac4caf..066c2c2e 100644 --- a/littleTools/x-HdfsTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/HdfsToolService.java +++ b/littleTools/x-HdfsTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/HdfsToolService.java @@ -1,5 +1,6 @@ package com.xwintop.xJavaFxTool.services.littleTools; +import cn.hutool.core.bean.BeanUtil; import com.xwintop.xJavaFxTool.controller.littleTools.HdfsToolController; import com.xwintop.xJavaFxTool.utils.HdfsUtil; import com.xwintop.xcore.util.javafx.AlertUtil; @@ -16,7 +17,6 @@ import javafx.scene.input.TransferMode; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; @@ -32,6 +32,7 @@ import java.util.*; @Slf4j public class HdfsToolService { private HdfsToolController hdfsToolController; + private HdfsUtil hdfsUtil; public HdfsToolService(HdfsToolController hdfsToolController) { @@ -104,9 +105,9 @@ public class HdfsToolService { String fileName = f.getPath().getName(); TreeItem> treeItem2 = new TreeItem<>(getTreeItemMap(fileName)); if (f.isDirectory()) { - treeItem2.setGraphic((Node) BeanUtils.cloneBean(hdfsToolController.getDirectorySvgGlyph())); + treeItem2.setGraphic(BeanUtil.toBean(hdfsToolController.getDirectorySvgGlyph(), Node.class)); } else { - treeItem2.setGraphic((Node) BeanUtils.cloneBean(hdfsToolController.getFileSvgGlyph())); + treeItem2.setGraphic(BeanUtil.toBean(hdfsToolController.getFileSvgGlyph(), Node.class)); } treeItem2.getValue().put("fileSize", f.getLen()); treeItem.getChildren().add(treeItem2); @@ -350,9 +351,9 @@ public class HdfsToolService { public static ImageView getFileIconImage(File file) { Icon icon = FileSystemView.getFileSystemView().getSystemIcon(file); BufferedImage bufferedImage = new BufferedImage( - icon.getIconWidth(), - icon.getIconHeight(), - BufferedImage.TYPE_INT_ARGB + icon.getIconWidth(), + icon.getIconHeight(), + BufferedImage.TYPE_INT_ARGB ); icon.paintIcon(null, bufferedImage.getGraphics(), 0, 0); Image fxImage = SwingFXUtils.toFXImage(bufferedImage, null); diff --git a/littleTools/x-SmsTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/SmsToolService.java b/littleTools/x-SmsTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/SmsToolService.java index 120fad9c..677b0d38 100644 --- a/littleTools/x-SmsTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/SmsToolService.java +++ b/littleTools/x-SmsTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/SmsToolService.java @@ -1,7 +1,9 @@ package com.xwintop.xJavaFxTool.services.littleTools; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; +import cn.hutool.crypto.SecureUtil; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; import com.xwintop.xJavaFxTool.controller.littleTools.SmsToolController; import com.xwintop.xJavaFxTool.model.SmsToolTableBean; import com.xwintop.xcore.util.HttpClientUtil; @@ -11,8 +13,6 @@ import javafx.collections.ObservableList; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.codec.digest.DigestUtils; -import org.apache.commons.codec.digest.HmacUtils; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.RandomUtils; import org.apache.commons.lang3.StringUtils; @@ -84,7 +84,7 @@ public class SmsToolService { for (SmsToolTableBean smsToolTableBean : smsToolTableBeans) { // String destAddr = "18356971618";//目标地址 String destAddr = smsToolTableBean.getToPhone();//目标地址 - Map map = new HashMap<>(); + Map map = new HashMap<>(); map.put("destAddr", destAddr); map.put("apiKey", apiKey); map.put("secretKey", secretKey); @@ -93,7 +93,8 @@ public class SmsToolService { if ("1".equals(needReceipt)) { map.put("receiptNotificationURL", receiptNotificationURL); } - String resJson = HttpClientUtil.getHttpDataByPost(url, "http://www.openservice.com.cn", JSON.toJSONString(map)); + String resJson = HttpUtil.post(url, map); +// String resJson = HttpClientUtil.getHttpDataByPost(url, "http://www.openservice.com.cn", JSON.toJSONString(map)); log.info("中国移动短信发送返回:" + resJson); if ("200".equals(JSON.parseObject(resJson).getString("resultCode"))) { TooltipUtil.showToast("中国移动发送短信成功!!!"); @@ -117,16 +118,16 @@ public class SmsToolService { // String acceptor_tel = "18356971618";//接收方号码 String acceptor_tel = smsToolTableBean.getToPhone();//接收方号码 String access_token = ""; - Map map = new HashMap<>(); + Map map = new HashMap<>(); map.put("app_id", app_id); map.put("app_secret", app_secret); map.put("grant_type", "client_credentials"); - String resJson = HttpClientUtil.getHttpDataByPost("https://oauth.api.189.cn/emp/oauth2/v3/access_token", "https://oauth.api.189.cn", map); +// String resJson = HttpClientUtil.getHttpDataByPost("https://oauth.api.189.cn/emp/oauth2/v3/access_token", "https://oauth.api.189.cn", map); + String resJson = HttpUtil.post("https://oauth.api.189.cn/emp/oauth2/v3/access_token", map); log.info("中国电信短信获取Token返回:" + resJson); access_token = JSON.parseObject(resJson).getString("access_token"); - String timestamp = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");//时间戳 - TreeMap map2 = new TreeMap<>(); + TreeMap map2 = new TreeMap<>(); map2.put("app_id", app_id); map2.put("access_token", access_token); map2.put("acceptor_tel", acceptor_tel); @@ -134,7 +135,8 @@ public class SmsToolService { map2.put("template_param", template_param); map2.put("timestamp", timestamp); try { - resJson = HttpClientUtil.getHttpDataByPost(url, "http://api.189.cn", map2); +// resJson = HttpClientUtil.getHttpDataByPost(url, "http://api.189.cn", map2); + resJson = HttpUtil.post(url, map2); log.info("中国电信短信发送返回:" + resJson); String res_message = JSON.parseObject(resJson).getString("res_message"); if ("Success".equals(res_message)) { @@ -186,15 +188,16 @@ public class SmsToolService { data.put("msg", msg); } String sigStr = String.format( - "appkey=%s&random=%d&time=%d&mobile=%s", - appkey, random, curTime, StringUtils.join(phoneNumbers, ",")); - data.put("sig", DigestUtils.sha256Hex(sigStr)); + "appkey=%s&random=%d&time=%d&mobile=%s", + appkey, random, curTime, StringUtils.join(phoneNumbers, ",")); + data.put("sig", SecureUtil.sha256(sigStr)); data.put("time", curTime); data.put("extend", ""); data.put("ext", ""); String wholeUrl = String.format("%s?sdkappid=%d&random=%d", url, appid, random); - String resultStr = HttpClientUtil.getHttpDataByPost(wholeUrl, url, JSON.toJSONString(data)); +// String resultStr = HttpClientUtil.getHttpDataByPost(wholeUrl, url, JSON.toJSONString(data)); + String resultStr = HttpUtil.post(wholeUrl, data); log.info("腾讯云短信发送返回:" + resultStr); JSONObject jsonObject = JSON.parseObject(resultStr); if (jsonObject.getInteger("result") == 0) { @@ -259,10 +262,11 @@ public class SmsToolService { stringToSign.append("GET").append("&"); stringToSign.append(specialUrlEncode("/")).append("&"); stringToSign.append(specialUrlEncode(sortedQueryString)); - String sign = org.apache.commons.codec.binary.Base64.encodeBase64String(HmacUtils.hmacSha1(accessKeySecret + "&", stringToSign.toString())); + String sign = SecureUtil.hmacSha1(accessKeySecret + "&").digestBase64(stringToSign.toString(), false); String signature = specialUrlEncode(sign); String url = "http://dysmsapi.aliyuncs.com/?Signature=" + signature + sortQueryStringTmp; - String resJson = HttpClientUtil.getHttpDataAsUTF_8(url, url); +// String resJson = HttpClientUtil.getHttpDataAsUTF_8(url, url); + String resJson = HttpUtil.get(url); log.info("阿里云短信发送返回:" + resJson); if ("OK".equals(JSON.parseObject(resJson).getString("Code"))) { TooltipUtil.showToast("阿里云发送短信成功!!!"); @@ -295,7 +299,7 @@ public class SmsToolService { } Map params = new HashMap<>(); if (StringUtils.isBlank(apikey)) { - pwd = DigestUtils.md5Hex(userid.toUpperCase() + "00000000" + pwd + timestamp); + pwd = SecureUtil.md5(userid.toUpperCase() + "00000000" + pwd + timestamp); params.put("userid", userid.toUpperCase()); params.put("pwd", pwd); } else { @@ -306,7 +310,8 @@ public class SmsToolService { params.put("content", java.net.URLEncoder.encode(content, "GBK")); params.put("svrtype", svrtype); params.put("exno", exno); - String resultStr = HttpClientUtil.getHttpDataByPost(url + "batch_send", url, JSON.toJSONString(params), "text/json; charset=utf-8"); +// String resultStr = HttpClientUtil.getHttpDataByPost(url + "batch_send", url, JSON.toJSONString(params), "text/json; charset=utf-8"); + String resultStr = HttpUtil.post(url, params); log.info("梦网云通讯短信发送返回:" + resultStr); if (JSON.parseObject(resultStr).getInteger("result") == 0) { TooltipUtil.showToast("梦网云通讯发送短信成功!!!"); diff --git a/xJavaFxTool/build.gradle b/xJavaFxTool/build.gradle index b282aed0..c598cb28 100644 --- a/xJavaFxTool/build.gradle +++ b/xJavaFxTool/build.gradle @@ -5,7 +5,79 @@ plugins { dependencies { api project(':xcore') -// api project(':littleTools:x-EncryptAndDecrypt') + api project(":littleTools:x-EncryptAndDecrypt") + api project(":littleTools:x-ZHConverter") + api project(":littleTools:x-ImageTool") + api project(":littleTools:x-IconTool") + api project(":littleTools:x-PdfConvertTool") + api project(":littleTools:x-QRCodeBuilder") + api project(":littleTools:x-FileCopy") + api project(":littleTools:x-FileMergeTool") + api project(":littleTools:x-TimeTool") + api project(":littleTools:x-CharacterConverter") + api project(":littleTools:x-BookManageSystem") + api project(":littleTools:x-CoordinateTransformTool") + api project(":littleTools:x-ElementaryArithmeticProblemTool") + api project(":littleTools:x-CronExpBuilder") + api project(":littleTools:x-EmailTool") + api project(":littleTools:x-ExcelSplitTool") + api project(":littleTools:x-FileBuildTool") + api project(":littleTools:x-FileCompressTool") + api project(":littleTools:x-FileRenameTool") + api project(":littleTools:x-FileSearchTool") + api project(":littleTools:x-HdfsTool") + api project(":littleTools:x-ImageAnalysisTool") + api project(":littleTools:x-JavaService") + api project(":littleTools:x-LinuxPathToWindowsPath") + api project(":littleTools:x-Mp3ConvertTool") + api project(":littleTools:x-RelationshipCalculator") + api project(":littleTools:x-SealBuilderTool") + api project(":littleTools:x-SedentaryReminderTool") + api project(":littleTools:x-SmsTool") + api project(":debugTools:x-CmdTool") + api project(":debugTools:x-ScanPortTool") + api project(":debugTools:x-SwitchHostsTool") + api project(":debugTools:x-SocketTool") + api project(":debugTools:x-ActiveMqTool") + api project(":debugTools:x-ExpressionParserTool") + api project(":debugTools:x-FtpClientTool") + api project(":debugTools:x-FtpServer") + api project(":debugTools:x-HbaseTool") + api project(":debugTools:x-HttpTool") + api project(":debugTools:x-KafkaTool") + api project(":debugTools:x-KeyTool") + api project(":debugTools:x-RedisTool") + api project(":debugTools:x-ScriptEngineTool") + api project(":debugTools:x-ZookeeperTool") + api project(":codeTools:x-RegexTester") + api project(":codeTools:x-RandomGeneratorTool") + api project(":codeTools:x-IdCardGenerator") + api project(":codeTools:x-CharsetDetectTool") + api project(":codeTools:x-ColorCodeConverterTool") + api project(":codeTools:x-EscapeCharacter") + api project(":codeTools:x-FileUnicodeTransformationTool") + api project(":codeTools:x-WebSourcesTool") + api project(":developTools:x-AsciiPicTool") + api project(":developTools:x-JsonConvertTool") + api project(":developTools:x-ClipboardHistoryTool") + api project(":developTools:x-DirectoryTreeTool") + api project(":developTools:x-LuytenTool") + api project(":developTools:x-PathWatchTool") + api project(":assistTools:x-TextToSpeechTool") + api project(":assistTools:x-DecompilerWxApkgTool") + api project(":assistTools:x-IdiomDataTool") + api project(":assistTools:x-WechatJumpGameTool") + api project(":games:x-X2048") + api project(":games:x-BullsAndCowsGame") + api project(":games:x-Sudoku") + api project(":games:x-ChineseChess") + api project(":games:x-SnakeJavaFx") + api project(":games:x-pet") + api project(":javaFxTools:x-JavaFxXmlToObjectCode") + api project(":javaFxTools:x-ShowSystemInfo") + api project(":webTools:x-ShortURL") + api project(":netWorkTools:x-WebCronExpBuilder") + api project(":netWorkTools:x-WebJsonEditor") // implementation 'io.github.classgraph:classgraph:4.8.100' // implementation 'com.gitee.xwintop:xcore:0.0.6-jdk17' } @@ -39,7 +111,7 @@ jlink { requires 'java.xml' } addExtraDependencies("javax.servlet") - launcher{ + launcher { name = 'xJavaFxTool' // mainClassName = 'com.xwintop.xJavaFxTool.XJavaFxToolMain' jvmArgs = ['-Dlogback.configurationFile=./logback.xml'] diff --git a/xJavaFxTool/src/main/java/module-info.java b/xJavaFxTool/src/main/java/module-info.java index 9403d008..c0866623 100644 --- a/xJavaFxTool/src/main/java/module-info.java +++ b/xJavaFxTool/src/main/java/module-info.java @@ -1,10 +1,12 @@ module com.xwintop.xJavaFxTool { exports com.xwintop.xJavaFxTool; + exports com.xwintop.xJavaFxTool.controller.index; opens com.xwintop.xJavaFxTool.controller; opens com.xwintop.xJavaFxTool.view; opens com.xwintop.xJavaFxTool.model; opens com.xwintop.xJavaFxTool.plugin; opens com.xwintop.xJavaFxTool.controller.plugin; + opens com.xwintop.xJavaFxTool.view.index; requires com.xwintop.xcore; requires java.sql; @@ -14,4 +16,5 @@ module com.xwintop.xJavaFxTool { requires ch.qos.logback.classic; requires ch.qos.logback.core; requires com.alibaba.fastjson2; + requires org.dom4j; } \ No newline at end of file diff --git a/xcore/build.gradle b/xcore/build.gradle index a0901819..9cf6676c 100644 --- a/xcore/build.gradle +++ b/xcore/build.gradle @@ -6,7 +6,7 @@ dependencies { api 'org.controlsfx:controlsfx:11.2.0' api 'com.jfoenix:jfoenix:9.0.10' // api 'commons-codec:commons-codec:1.16.0' -// api 'commons-configuration:commons-configuration:1.10' + api 'commons-configuration:commons-configuration:1.10' api 'commons-io:commons-io:2.15.1' api 'org.apache.commons:commons-lang3:3.14.0' api 'org.apache.commons:commons-text:1.11.0' -- Gitee From 6d5a34343735f114debb042d5cd0a24d5ad4f70d Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Wed, 21 Feb 2024 21:35:52 +0800 Subject: [PATCH 12/27] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E4=B8=AD=E4=BD=BF=E7=94=A8=E7=9A=84=E8=BF=87=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xwintop/xJavaFxTool/utils/ImageUtil.java | 6 +- .../javaFxTools/ShowSystemInfoService.java | 8 +- .../services/littleTools/FileCopyService.java | 14 +- .../services/littleTools/IconToolService.java | 5 +- .../xwintop/xJavaFxTool/utils/ImageUtil.java | 6 +- .../littleTools/Mp3ConvertToolService.java | 3 +- .../littleTools/PdfConvertToolService.java | 6 +- .../java/com/xwintop/xcore/util/FileUtil.java | 103 ------------ .../xcore/util/javafx/FileChooserUtil.java | 13 +- .../xwintop/xcore/util/javafx/FxmlUtil.java | 22 +-- .../javafx/TextFieldInputHistoryDialog.java | 4 +- .../little/MoneyCnNumericToArabicUtil.java | 156 ------------------ .../xcore/util/little/MoneyToChineseUtil.java | 140 ---------------- 13 files changed, 37 insertions(+), 449 deletions(-) delete mode 100644 xcore/src/main/java/com/xwintop/xcore/util/FileUtil.java delete mode 100644 xcore/src/main/java/com/xwintop/xcore/util/little/MoneyCnNumericToArabicUtil.java delete mode 100644 xcore/src/main/java/com/xwintop/xcore/util/little/MoneyToChineseUtil.java diff --git a/developTools/x-AsciiPicTool/src/main/java/com/xwintop/xJavaFxTool/utils/ImageUtil.java b/developTools/x-AsciiPicTool/src/main/java/com/xwintop/xJavaFxTool/utils/ImageUtil.java index f1d671e5..e03fcae0 100644 --- a/developTools/x-AsciiPicTool/src/main/java/com/xwintop/xJavaFxTool/utils/ImageUtil.java +++ b/developTools/x-AsciiPicTool/src/main/java/com/xwintop/xJavaFxTool/utils/ImageUtil.java @@ -1,6 +1,5 @@ package com.xwintop.xJavaFxTool.utils; -import com.xwintop.xcore.util.FileUtil; import javafx.embed.swing.SwingFXUtils; import javafx.scene.image.Image; import javafx.scene.image.*; @@ -8,6 +7,7 @@ import lombok.Getter; import lombok.Setter; import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.Imaging; +import org.apache.commons.io.FilenameUtils; import javax.imageio.ImageIO; import javax.swing.*; @@ -93,10 +93,10 @@ public class ImageUtil { public static void writeImage(BufferedImage bufferedImage, File file) throws Exception { try { - Imaging.writeImage(bufferedImage, file, ImageFormats.valueOf(FileUtil.getFileSuffixName(file).toUpperCase())); + Imaging.writeImage(bufferedImage, file, ImageFormats.valueOf(FilenameUtils.getExtension(file.getName()).toUpperCase())); } catch (Exception e) { e.printStackTrace(); - ImageIO.write(bufferedImage, FileUtil.getFileSuffixName(file), file); + ImageIO.write(bufferedImage, FilenameUtils.getExtension(file.getName()), file); } } diff --git a/javaFxTools/x-ShowSystemInfo/src/main/java/com/xwintop/xJavaFxTool/services/javaFxTools/ShowSystemInfoService.java b/javaFxTools/x-ShowSystemInfo/src/main/java/com/xwintop/xJavaFxTool/services/javaFxTools/ShowSystemInfoService.java index 7db5c761..8e56602e 100644 --- a/javaFxTools/x-ShowSystemInfo/src/main/java/com/xwintop/xJavaFxTool/services/javaFxTools/ShowSystemInfoService.java +++ b/javaFxTools/x-ShowSystemInfo/src/main/java/com/xwintop/xJavaFxTool/services/javaFxTools/ShowSystemInfoService.java @@ -2,13 +2,13 @@ package com.xwintop.xJavaFxTool.services.javaFxTools; import com.alibaba.fastjson2.JSON; import com.xwintop.xJavaFxTool.controller.javaFxTools.ShowSystemInfoController; -import com.xwintop.xcore.util.FileUtil; import javafx.application.Platform; import javafx.scene.chart.LineChart; import javafx.scene.chart.XYChart; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.FileUtils; import oshi.SystemInfo; import oshi.hardware.*; import oshi.hardware.CentralProcessor.TickType; @@ -177,21 +177,21 @@ public class ShowSystemInfoService { map.put("name", fs.getName()); map.put("parent", ""); map.put("value", fs.getTotalSpace()); - map.put("showValue", FileUtil.formatFileSize(fs.getTotalSpace())); + map.put("showValue", FileUtils.byteCountToDisplaySize(fs.getTotalSpace())); Map map1 = new HashMap(); map1.put("id", "" + i + '1'); map1.put("name", "已用"); map1.put("parent", "" + i); map1.put("value", fs.getTotalSpace() - fs.getUsableSpace()); - map1.put("showValue", FileUtil.formatFileSize((fs.getTotalSpace() - fs.getUsableSpace()))); + map1.put("showValue", FileUtils.byteCountToDisplaySize((fs.getTotalSpace() - fs.getUsableSpace()))); Map map2 = new HashMap(); map2.put("id", "" + i + '2'); map2.put("name", "剩余"); map2.put("parent", "" + i); map2.put("value", fs.getUsableSpace()); - map2.put("showValue", FileUtil.formatFileSize(fs.getUsableSpace())); + map2.put("showValue", FileUtils.byteCountToDisplaySize(fs.getUsableSpace())); dataList.add(map); dataList.add(map1); dataList.add(map2); diff --git a/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileCopyService.java b/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileCopyService.java index 6dc32e6a..2c3cf658 100644 --- a/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileCopyService.java +++ b/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileCopyService.java @@ -3,7 +3,6 @@ package com.xwintop.xJavaFxTool.services.littleTools; import com.xwintop.xJavaFxTool.controller.littleTools.FileCopyController; import com.xwintop.xJavaFxTool.model.FileCopyTableBean; import com.xwintop.xcore.util.ConfigureUtil; -import com.xwintop.xcore.util.FileUtil; import com.xwintop.xcore.util.javafx.FileChooserUtil; import com.xwintop.xcore.util.javafx.TooltipUtil; import javafx.collections.ObservableList; @@ -12,6 +11,8 @@ import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; +import org.apache.commons.io.FilenameUtils; +import org.apache.commons.lang3.StringUtils; import java.io.File; import java.nio.file.DirectoryStream; @@ -32,6 +33,7 @@ import java.util.Iterator; @Slf4j public class FileCopyService { private FileCopyController fileCopyController; + private ObservableList tableData; public FileCopyService(FileCopyController fileCopyController) { @@ -56,7 +58,7 @@ public class FileCopyService { public void otherSaveConfigureAction() throws Exception { String fileName = "fileCopyConfigure.properties"; File file = FileChooserUtil.chooseSaveFile(fileName, new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.properties")); if (file != null) { saveConfigure(file); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); @@ -82,7 +84,7 @@ public class FileCopyService { public void loadingConfigureAction() { File file = FileChooserUtil.chooseFile(new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.properties")); if (file != null) { loadingConfigure(file); } @@ -109,7 +111,8 @@ public class FileCopyService { while (pathIterator.hasNext()) { Path curPath = pathIterator.next(); File file = curPath.toFile(); - String fileName = FileUtil.getRandomFileName(file); + String fileName = FilenameUtils.getBaseName(file.getName()) + ("" + System.currentTimeMillis()).substring(9); + fileName = fileName + StringUtils.prependIfMissing(FilenameUtils.getExtension(file.getName()), "."); if (i != 0) { fileName = i + fileName; } @@ -130,7 +133,8 @@ public class FileCopyService { } } else { if (tableBean.getIsRename()) { - String fileName = FileUtil.getRandomFileName(fileOriginal); + String fileName = FilenameUtils.getBaseName(fileOriginal.getName()) + ("" + System.currentTimeMillis()).substring(9); + fileName = fileName + StringUtils.prependIfMissing(FilenameUtils.getExtension(fileOriginal.getName()), "."); if (i != 0) { fileName = i + fileName; } diff --git a/littleTools/x-IconTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/IconToolService.java b/littleTools/x-IconTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/IconToolService.java index 016ba542..5cff013f 100644 --- a/littleTools/x-IconTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/IconToolService.java +++ b/littleTools/x-IconTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/IconToolService.java @@ -12,6 +12,7 @@ import javax.imageio.ImageIO; import com.xwintop.xJavaFxTool.utils.ImageUtil; import com.xwintop.xcore.util.ConfigureUtil; import org.apache.commons.io.FileUtils; +import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; import com.alibaba.fastjson2.JSON; @@ -19,7 +20,6 @@ import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.xwintop.xJavaFxTool.controller.littleTools.IconToolController; import com.xwintop.xJavaFxTool.utils.ImgToolUtil; -import com.xwintop.xcore.util.FileUtil; import com.xwintop.xcore.util.javafx.FileChooserUtil; import com.xwintop.xcore.util.javafx.TooltipUtil; @@ -36,7 +36,6 @@ import javafx.stage.FileChooser; import lombok.Setter; import net.coobird.thumbnailator.Thumbnails; import net.coobird.thumbnailator.Thumbnails.Builder; -import net.coobird.thumbnailator.geometry.Positions; /** * @ClassName: IconToolService @@ -205,7 +204,7 @@ public class IconToolService { } else { iconTargetPathFile = new File(iconTargetPathText); } - String iconFileName = FileUtil.getFileName(iconFilePathFile); + String iconFileName = FilenameUtils.getBaseName(iconFilePathFile.getName()); if (StringUtils.isNotEmpty(iconToolController.getIconNameTextField().getText())) { iconFileName = iconToolController.getIconNameTextField().getText(); } diff --git a/littleTools/x-IconTool/src/main/java/com/xwintop/xJavaFxTool/utils/ImageUtil.java b/littleTools/x-IconTool/src/main/java/com/xwintop/xJavaFxTool/utils/ImageUtil.java index f1d671e5..e03fcae0 100644 --- a/littleTools/x-IconTool/src/main/java/com/xwintop/xJavaFxTool/utils/ImageUtil.java +++ b/littleTools/x-IconTool/src/main/java/com/xwintop/xJavaFxTool/utils/ImageUtil.java @@ -1,6 +1,5 @@ package com.xwintop.xJavaFxTool.utils; -import com.xwintop.xcore.util.FileUtil; import javafx.embed.swing.SwingFXUtils; import javafx.scene.image.Image; import javafx.scene.image.*; @@ -8,6 +7,7 @@ import lombok.Getter; import lombok.Setter; import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.Imaging; +import org.apache.commons.io.FilenameUtils; import javax.imageio.ImageIO; import javax.swing.*; @@ -93,10 +93,10 @@ public class ImageUtil { public static void writeImage(BufferedImage bufferedImage, File file) throws Exception { try { - Imaging.writeImage(bufferedImage, file, ImageFormats.valueOf(FileUtil.getFileSuffixName(file).toUpperCase())); + Imaging.writeImage(bufferedImage, file, ImageFormats.valueOf(FilenameUtils.getExtension(file.getName()).toUpperCase())); } catch (Exception e) { e.printStackTrace(); - ImageIO.write(bufferedImage, FileUtil.getFileSuffixName(file), file); + ImageIO.write(bufferedImage, FilenameUtils.getExtension(file.getName()), file); } } diff --git a/littleTools/x-Mp3ConvertTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/Mp3ConvertToolService.java b/littleTools/x-Mp3ConvertTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/Mp3ConvertToolService.java index 50957005..8fabcff2 100644 --- a/littleTools/x-Mp3ConvertTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/Mp3ConvertToolService.java +++ b/littleTools/x-Mp3ConvertTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/Mp3ConvertToolService.java @@ -2,7 +2,6 @@ package com.xwintop.xJavaFxTool.services.littleTools; import com.xwintop.xJavaFxTool.controller.littleTools.Mp3ConvertToolController; import com.xwintop.xJavaFxTool.utils.NcmDump; -import com.xwintop.xcore.util.FileUtil; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; @@ -34,7 +33,7 @@ public class Mp3ConvertToolService { Map rowValue = new HashMap<>(); rowValue.put("fileName", file.getName()); rowValue.put("absolutePath", file.getAbsolutePath()); - rowValue.put("fileSize", FileUtil.formatFileSize(file.length())); + rowValue.put("fileSize", FileUtils.byteCountToDisplaySize(file.length())); rowValue.put("convertStatus", "待转换"); mp3ConvertToolController.getTableData().add(rowValue); } diff --git a/littleTools/x-PdfConvertTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/PdfConvertToolService.java b/littleTools/x-PdfConvertTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/PdfConvertToolService.java index 23ab008d..4bae7980 100644 --- a/littleTools/x-PdfConvertTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/PdfConvertToolService.java +++ b/littleTools/x-PdfConvertTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/PdfConvertToolService.java @@ -2,11 +2,11 @@ package com.xwintop.xJavaFxTool.services.littleTools; import com.xwintop.xJavaFxTool.controller.littleTools.PdfConvertToolController; import com.xwintop.xJavaFxTool.utils.ImgToolUtil; -import com.xwintop.xcore.util.FileUtil; import com.xwintop.xcore.util.javafx.TooltipUtil; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.rendering.ImageType; @@ -75,7 +75,7 @@ public class PdfConvertToolService { // BufferedImage bim = pdfRenderer.Image(pageCounter, dpi, ImageType.RGB); ImgToolUtil imgToolUtil = new ImgToolUtil(bim); imgToolUtil.resize(dpi, dpi * bim.getHeight() / bim.getWidth()); - ImageIO.write(imgToolUtil.getImage(), imageType, new File(fileTargetPath, FileUtil.getFileName(pdfFile) + pageCounter + "." + imageType)); + ImageIO.write(imgToolUtil.getImage(), imageType, new File(fileTargetPath, FilenameUtils.getBaseName(pdfFile.getName()) + pageCounter + "." + imageType)); } // int pageCounter = 0; // for (PDPage page : document.getPages()) { @@ -107,7 +107,7 @@ public class PdfConvertToolService { int startPage = (int) pdfConvertToolController.getChoosePageRangeSlider().getLowValue() + 1; int endPage = (int) pdfConvertToolController.getChoosePageRangeSlider().getHighValue() + 1; - File textFile = new File(fileTargetPath, FileUtil.getFileName(pdfFile) + ".txt"); + File textFile = new File(fileTargetPath, FilenameUtils.getBaseName(pdfFile.getName()) + ".txt"); // 文件输入流,写入文件倒textFile output = new OutputStreamWriter(new FileOutputStream(textFile), "UTF-8"); // PDFTextStrippe来提取文本 diff --git a/xcore/src/main/java/com/xwintop/xcore/util/FileUtil.java b/xcore/src/main/java/com/xwintop/xcore/util/FileUtil.java deleted file mode 100644 index 4b66b044..00000000 --- a/xcore/src/main/java/com/xwintop/xcore/util/FileUtil.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.xwintop.xcore.util; - -import java.io.File; -import java.io.IOException; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.text.DecimalFormat; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.FilenameUtils; -import org.apache.commons.lang3.StringUtils; - -public class FileUtil { - - /** - * 读取文件内容并返回为字符串 - * - * @deprecated 使用 {@link FileUtils#readFileToString(File, Charset)} - */ - public static String readText(File file, Charset charset) { - try { - return new String(Files.readAllBytes(file.toPath()), charset); - } catch (IOException e) { - e.printStackTrace(); - return ""; - } - } - - /** - * 读取文件内容,按默认编码解析,并返回为字符串 - * - * @deprecated 使用 {@link FileUtils#readFileToString(File, Charset)} - */ - public static String readText(File file) { - return readText(file, Charset.defaultCharset()); - } - - /** - * 将文件名拆分成名字部分和扩展名部分 - * - * @deprecated 使用 {@link FilenameUtils#getExtension(java.lang.String)} - */ - public static String[] getFileNames(File file) { - String fileName = file.getName(); - return new String[]{ - StringUtils.substringBeforeLast(fileName, "."), - StringUtils.substringAfterLast(fileName, ".") - }; - } - - /** - * @deprecated 使用 {@link FilenameUtils#getBaseName(java.lang.String)} - */ - public static String getFileName(File file) { - return getFileNames(file)[0]; - } - - /** - * @deprecated 使用 {@link FilenameUtils#getExtension(java.lang.String)} - */ - public static String getFileSuffixName(File file) { - return getFileNames(file)[1]; - } - - /** - * @deprecated 使用 {@link org.apache.commons.io.FilenameUtils} - */ - public static String getFileSuffixNameAndDot(File file) { - String suffixName = getFileNames(file)[1]; - if (!"".equals(suffixName)) { - suffixName = "." + suffixName; - } - return suffixName; - } - - public static String getRandomFileName(File file) { - String[] fileNames = getFileNames(file); - String fileName = fileNames[0] + ("" + System.currentTimeMillis()).substring(9); - if (!"".equals(fileNames[1])) { - fileName += ("." + fileNames[1]); - } - return fileName; - } - - /** - * 转换文件的大小以B,KB,M,G等计算 - * - * @deprecated 使用 {@link FileUtils#byteCountToDisplaySize(java.math.BigInteger)} - */ - public static String formatFileSize(long fileS) {// 转换文件大小 - DecimalFormat df = new DecimalFormat("#.000"); - String fileSizeString = ""; - if (fileS < 1024) { - fileSizeString = df.format((double) fileS) + "B"; - } else if (fileS < 1048576) { - fileSizeString = df.format((double) fileS / 1024) + "K"; - } else if (fileS < 1073741824) { - fileSizeString = df.format((double) fileS / 1048576) + "M"; - } else { - fileSizeString = df.format((double) fileS / 1073741824) + "G"; - } - return fileSizeString; - } -} diff --git a/xcore/src/main/java/com/xwintop/xcore/util/javafx/FileChooserUtil.java b/xcore/src/main/java/com/xwintop/xcore/util/javafx/FileChooserUtil.java index c6c36cac..bdd6d64a 100644 --- a/xcore/src/main/java/com/xwintop/xcore/util/javafx/FileChooserUtil.java +++ b/xcore/src/main/java/com/xwintop/xcore/util/javafx/FileChooserUtil.java @@ -1,15 +1,17 @@ package com.xwintop.xcore.util.javafx; import com.xwintop.xcore.javafx.helper.DropContentHelper; -import com.xwintop.xcore.util.FileUtil; import javafx.scene.control.TextField; import javafx.scene.control.TextInputControl; import javafx.stage.DirectoryChooser; import javafx.stage.FileChooser; import javafx.stage.FileChooser.ExtensionFilter; +import org.apache.commons.io.FileUtils; import javax.swing.filechooser.FileSystemView; import java.io.File; +import java.io.IOException; +import java.nio.charset.Charset; import java.util.List; /** @@ -134,14 +136,19 @@ public class FileChooserUtil { public static void setOnDragByOpenFile(TextInputControl textField) { DropContentHelper.accept(textField, - dragboard -> dragboard.hasFiles() && dragboard.getFiles().stream().anyMatch(File::isFile), (__, dragboard) -> textField.setText( dragboard.getFiles().stream() .filter(File::isFile) - .map(FileUtil::readText) + .map(s -> { + try { + return FileUtils.readFileToString(s, Charset.defaultCharset()); + } catch (IOException e) { + throw new RuntimeException(e); + } + }) .findFirst().orElse("") ) ); diff --git a/xcore/src/main/java/com/xwintop/xcore/util/javafx/FxmlUtil.java b/xcore/src/main/java/com/xwintop/xcore/util/javafx/FxmlUtil.java index c04aaecc..e52f08ad 100644 --- a/xcore/src/main/java/com/xwintop/xcore/util/javafx/FxmlUtil.java +++ b/xcore/src/main/java/com/xwintop/xcore/util/javafx/FxmlUtil.java @@ -12,27 +12,7 @@ import java.util.ResourceBundle; * 否则使用 xcore 的 ClassLoader 加载可能会由于安全原因而失败 */ public class FxmlUtil { - - /** - * @deprecated Use {@link #loadFxmlFromResource(ClassLoader, String)} )} instead. - */ - public static FXMLLoader loadFxmlFromResource(String resourcePath) { - return loadFxmlFromResource(FxmlUtil.class.getClassLoader(), resourcePath, null); - } - - /** - * @deprecated Use {@link #loadFxmlFromResource(ClassLoader, String, ResourceBundle)} instead. - */ - public static FXMLLoader loadFxmlFromResource(String resourcePath, ResourceBundle resourceBundle) { - return loadFxmlFromResource(FxmlUtil.class.getClassLoader(), resourcePath, resourceBundle); - } - - public static FXMLLoader loadFxmlFromResource(ClassLoader classLoader, String resourcePath) { - return loadFxmlFromResource(classLoader, resourcePath, null); - } - - public static FXMLLoader loadFxmlFromResource( - ClassLoader classLoader, String resourcePath, ResourceBundle resourceBundle) { + public static FXMLLoader loadFxmlFromResource(ClassLoader classLoader, String resourcePath, ResourceBundle resourceBundle) { try { FXMLLoader fxmlLoader = new FXMLLoader(); fxmlLoader.setLocation(classLoader.getResource(StringUtils.removeStart(resourcePath, "/"))); diff --git a/xcore/src/main/java/com/xwintop/xcore/util/javafx/TextFieldInputHistoryDialog.java b/xcore/src/main/java/com/xwintop/xcore/util/javafx/TextFieldInputHistoryDialog.java index 4ea82659..8b1aaeba 100644 --- a/xcore/src/main/java/com/xwintop/xcore/util/javafx/TextFieldInputHistoryDialog.java +++ b/xcore/src/main/java/com/xwintop/xcore/util/javafx/TextFieldInputHistoryDialog.java @@ -9,7 +9,6 @@ import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; import org.yaml.snakeyaml.Yaml; import java.io.File; @@ -29,9 +28,8 @@ import java.util.function.Function; @Getter @Setter -//@Slf4j +@Slf4j public class TextFieldInputHistoryDialog { - private static Logger log = org.slf4j.LoggerFactory.getLogger(TextFieldInputHistoryDialog.class); private ObservableList> tableData = FXCollections.observableArrayList(); private String saveFilePath = null; private String[] tableColumns = null; diff --git a/xcore/src/main/java/com/xwintop/xcore/util/little/MoneyCnNumericToArabicUtil.java b/xcore/src/main/java/com/xwintop/xcore/util/little/MoneyCnNumericToArabicUtil.java deleted file mode 100644 index 4c8f1636..00000000 --- a/xcore/src/main/java/com/xwintop/xcore/util/little/MoneyCnNumericToArabicUtil.java +++ /dev/null @@ -1,156 +0,0 @@ -package com.xwintop.xcore.util.little; - -import java.util.HashMap; -import java.util.Map; - -/** - * @ClassName: CNNMFilter - * @Description: 金额大写转小写工具类 - * @author: xufeng - * @date: 2017年8月26日 上午12:19:59 - */ -public class MoneyCnNumericToArabicUtil { - private static final Character[] CN_NUMERIC = { '一', '二', '三', '四', '五', '六', '七', '八', '九', '壹', '贰', '叁', '肆', - '伍', '陆', '柒', '捌', '玖', '十', '百', '千', '拾', '佰', '仟', '万', '亿', '○', 'O', '零' }; - - private static Map cnNumeric = null; - - static { - cnNumeric = new HashMap(40, 0.85f); - for (int j = 0; j < 9; j++) { - cnNumeric.put(CN_NUMERIC[j], j + 1); - } - for (int j = 9; j < 18; j++) { - cnNumeric.put(CN_NUMERIC[j], j - 8); - } - cnNumeric.put('两', 2); - cnNumeric.put('十', 10); - cnNumeric.put('拾', 10); - cnNumeric.put('百', 100); - cnNumeric.put('佰', 100); - cnNumeric.put('千', 1000); - cnNumeric.put('仟', 1000); - cnNumeric.put('万', 10000); - cnNumeric.put('亿', 100000000); - } - - public static int isCNNumeric(char c) { - Integer i = cnNumeric.get(c); - if (i == null) { - return -1; - } - return i.intValue(); - } - - public static int cnNumericToArabic(String cnn, boolean flag) { - cnn = cnn.trim(); - if (cnn.length() == 1) { - return isCNNumeric(cnn.charAt(0)); - } - - if (flag) { - cnn = cnn.replace('佰', '百').replace('仟', '千').replace('拾', '十').replace('零', ' '); - } - // System.out.println(cnn); - int yi = -1, wan = -1, qian = -1, bai = -1, shi = -1; - int val = 0; - yi = cnn.lastIndexOf('亿'); - if (yi > -1) { - val += cnNumericToArabic(cnn.substring(0, yi), false) * 100000000; - if (yi < cnn.length() - 1) { - cnn = cnn.substring(yi + 1, cnn.length()); - } else { - cnn = ""; - } - - if (cnn.length() == 1) { - int arbic = isCNNumeric(cnn.charAt(0)); - if (arbic <= 10) { - val += arbic * 10000000; - } - cnn = ""; - } - } - - wan = cnn.lastIndexOf('万'); - if (wan > -1) { - val += cnNumericToArabic(cnn.substring(0, wan), false) * 10000; - if (wan < cnn.length() - 1) { - cnn = cnn.substring(wan + 1, cnn.length()); - } else { - cnn = ""; - } - if (cnn.length() == 1) { - int arbic = isCNNumeric(cnn.charAt(0)); - if (arbic <= 10) { - val += arbic * 1000; - } - cnn = ""; - } - } - - qian = cnn.lastIndexOf('千'); - if (qian > -1) { - val += cnNumericToArabic(cnn.substring(0, qian), false) * 1000; - if (qian < cnn.length() - 1) { - cnn = cnn.substring(qian + 1, cnn.length()); - } else { - cnn = ""; - } - if (cnn.length() == 1) { - int arbic = isCNNumeric(cnn.charAt(0)); - if (arbic <= 10) { - val += arbic * 100; - } - cnn = ""; - } - } - - bai = cnn.lastIndexOf('百'); - if (bai > -1) { - val += cnNumericToArabic(cnn.substring(0, bai), false) * 100; - if (bai < cnn.length() - 1) { - cnn = cnn.substring(bai + 1, cnn.length()); - } else { - cnn = ""; - } - if (cnn.length() == 1) { - int arbic = isCNNumeric(cnn.charAt(0)); - if (arbic <= 10) { - val += arbic * 10; - } - cnn = ""; - } - } - - shi = cnn.lastIndexOf('十'); - if (shi > -1) { - if (shi == 0) { - val += 1 * 10; - } else { - val += cnNumericToArabic(cnn.substring(0, shi), false) * 10; - } - if (shi < cnn.length() - 1) { - cnn = cnn.substring(shi + 1, cnn.length()); - } else { - cnn = ""; - } - } - - cnn = cnn.trim(); - for (int j = 0; j < cnn.length(); j++) { - val += isCNNumeric(cnn.charAt(j)) * Math.pow(10, cnn.length() - j - 1); - } - - return val; - } - - public static int qCNNumericToArabic(String cnn) { - int val = 0; - cnn = cnn.trim(); - for (int j = 0; j < cnn.length(); j++) { - val += isCNNumeric(cnn.charAt(j)) * Math.pow(10, cnn.length() - j - 1); - } - return val; - } -} diff --git a/xcore/src/main/java/com/xwintop/xcore/util/little/MoneyToChineseUtil.java b/xcore/src/main/java/com/xwintop/xcore/util/little/MoneyToChineseUtil.java deleted file mode 100644 index d72ef645..00000000 --- a/xcore/src/main/java/com/xwintop/xcore/util/little/MoneyToChineseUtil.java +++ /dev/null @@ -1,140 +0,0 @@ -package com.xwintop.xcore.util.little; - -/** - * @ClassName: MoneyUtil - * @Description: 金额数字转大写 - * @author: xufeng - * @date: 2017年8月26日 上午12:22:15 - */ -public class MoneyToChineseUtil { - /** 大写数字 */ - private static final String[] NUMBERS = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; - /** 整数部分的单位 */ - private static final String[] IUNIT = { "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟" }; - /** 小数部分的单位 */ - private static final String[] DUNIT = { "角", "分", "厘" }; - - /** - * @Title: cnNumericToArabic - * @Description: 大写金额转小写 - */ - public static int cnNumericToArabic(String cnn) { - return MoneyCnNumericToArabicUtil.cnNumericToArabic(cnn, true); - } - /** - * 得到大写金额。 - */ - public static String toChinese(String str) { - str = str.replaceAll(",", "");// 去掉"," - String integerStr;// 整数部分数字 - String decimalStr;// 小数部分数字 - - // 初始化:分离整数部分和小数部分 - if (str.indexOf(".") > 0) { - integerStr = str.substring(0, str.indexOf(".")); - decimalStr = str.substring(str.indexOf(".") + 1); - } else if (str.indexOf(".") == 0) { - integerStr = ""; - decimalStr = str.substring(1); - } else { - integerStr = str; - decimalStr = ""; - } - // integerStr去掉首0,不必去掉decimalStr的尾0(超出部分舍去) - if (!"".equals(integerStr)) { - integerStr = Long.toString(Long.parseLong(integerStr)); - if ("0".equals(integerStr)) { - integerStr = ""; - } - } - // overflow超出处理能力,直接返回 - if (integerStr.length() > IUNIT.length) { - System.out.println(str + ":超出处理能力"); - return str; - } - - int[] integers = toArray(integerStr);// 整数部分数字 - boolean isMust5 = isMust5(integerStr);// 设置万单位 - int[] decimals = toArray(decimalStr);// 小数部分数字 - return getChineseInteger(integers, isMust5) + getChineseDecimal(decimals); - } - - /** - * 整数部分和小数部分转换为数组,从高位至低位 - */ - private static int[] toArray(String number) { - int[] array = new int[number.length()]; - for (int i = 0; i < number.length(); i++) { - array[i] = Integer.parseInt(number.substring(i, i + 1)); - } - return array; - } - - /** - * 得到中文金额的整数部分。 - */ - private static String getChineseInteger(int[] integers, boolean isMust5) { - StringBuffer chineseInteger = new StringBuffer(""); - int length = integers.length; - for (int i = 0; i < length; i++) { - // 0出现在关键位置:1234(万)5678(亿)9012(万)3456(元) - // 特殊情况:10(拾元、壹拾元、壹拾万元、拾万元) - String key = ""; - if (integers[i] == 0) { - if ((length - i) == 13)// 万(亿)(必填) - { - key = IUNIT[4]; - } else if ((length - i) == 9)// 亿(必填) - { - key = IUNIT[8]; - } else if ((length - i) == 5 && isMust5)// 万(不必填) - { - key = IUNIT[4]; - } else if ((length - i) == 1)// 元(必填) - { - key = IUNIT[0]; - } - // 0遇非0时补零,不包含最后一位 - if ((length - i) > 1 && integers[i + 1] != 0) { - key += NUMBERS[0]; - } - } - chineseInteger.append(integers[i] == 0 ? key : (NUMBERS[integers[i]] + IUNIT[length - i - 1])); - } - return chineseInteger.toString(); - } - - /** - * 得到中文金额的小数部分。 - */ - private static String getChineseDecimal(int[] decimals) { - StringBuffer chineseDecimal = new StringBuffer(""); - for (int i = 0; i < decimals.length; i++) { - // 舍去3位小数之后的 - if (i == 3) { - break; - } - chineseDecimal.append(decimals[i] == 0 ? "" : (NUMBERS[decimals[i]] + DUNIT[i])); - } - return chineseDecimal.toString(); - } - - /** - * 判断第5位数字的单位"万"是否应加。 - */ - private static boolean isMust5(String integerStr) { - int length = integerStr.length(); - if (length > 4) { - String subInteger = ""; - if (length > 8) { - // 取得从低位数,第5到第8位的字串 - subInteger = integerStr.substring(length - 8, length - 4); - } else { - subInteger = integerStr.substring(0, length - 4); - } - return Integer.parseInt(subInteger) > 0; - } else { - return false; - } - } -} -- Gitee From 570432208531da95348dfd36609a5e32e9987c44 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Fri, 23 Feb 2024 17:56:08 +0800 Subject: [PATCH 13/27] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E4=B8=AD=E4=BD=BF=E7=94=A8=E7=9A=84=E8=BF=87=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../codeTools/WebSourcesToolController.java | 14 +++-- .../services/debugTools/HttpToolService.java | 24 +++------ .../xJavaFxTool/utils/VersionChecker.java | 4 +- .../littleTools/JavaServiceController.java | 4 +- .../littleTools/SmsToolController.java | 15 +++--- .../services/littleTools/SmsToolService.java | 1 - .../controller/IndexController.java | 9 ++-- .../xJavaFxTool/utils/VersionChecker.java | 4 +- .../xcore/util/AttributeConvertUtil.java | 51 ------------------- .../xwintop/xcore/util/HttpClientUtil.java | 25 --------- .../xcore/util/javafx/JavaFxSystemUtil.java | 16 ++++++ 11 files changed, 47 insertions(+), 120 deletions(-) delete mode 100644 xcore/src/main/java/com/xwintop/xcore/util/AttributeConvertUtil.java delete mode 100644 xcore/src/main/java/com/xwintop/xcore/util/HttpClientUtil.java diff --git a/codeTools/x-WebSourcesTool/src/main/java/com/xwintop/xJavaFxTool/controller/codeTools/WebSourcesToolController.java b/codeTools/x-WebSourcesTool/src/main/java/com/xwintop/xJavaFxTool/controller/codeTools/WebSourcesToolController.java index d0a35234..319b405f 100644 --- a/codeTools/x-WebSourcesTool/src/main/java/com/xwintop/xJavaFxTool/controller/codeTools/WebSourcesToolController.java +++ b/codeTools/x-WebSourcesTool/src/main/java/com/xwintop/xJavaFxTool/controller/codeTools/WebSourcesToolController.java @@ -1,15 +1,9 @@ package com.xwintop.xJavaFxTool.controller.codeTools; -import java.net.URL; -import java.util.ResourceBundle; - -import org.apache.commons.lang3.StringUtils; - import com.xwintop.xJavaFxTool.services.codeTools.WebSourcesToolService; import com.xwintop.xJavaFxTool.view.codeTools.WebSourcesToolView; -import com.xwintop.xcore.util.HttpClientUtil; +import com.xwintop.xcore.util.javafx.JavaFxSystemUtil; import com.xwintop.xcore.util.javafx.TooltipUtil; - import javafx.concurrent.Worker.State; import javafx.event.ActionEvent; import javafx.event.EventHandler; @@ -20,6 +14,10 @@ import javafx.scene.web.WebEngine; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; + +import java.net.URL; +import java.util.ResourceBundle; /** * @ClassName: WebSourcesToolController @@ -84,7 +82,7 @@ public class WebSourcesToolController extends WebSourcesToolView { return; } try { - HttpClientUtil.openBrowseURLThrowsException(urlTextField.getText()); + JavaFxSystemUtil.openBrowseURLThrowsException(urlTextField.getText()); } catch (Exception e1) { TooltipUtil.showToast("输入Url有误!" + e1.getMessage()); log.error(e1.getMessage()); diff --git a/debugTools/x-HttpTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/HttpToolService.java b/debugTools/x-HttpTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/HttpToolService.java index 4e92e5eb..481d7242 100644 --- a/debugTools/x-HttpTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/HttpToolService.java +++ b/debugTools/x-HttpTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/HttpToolService.java @@ -1,27 +1,19 @@ package com.xwintop.xJavaFxTool.services.debugTools; -import java.util.HashMap; -import java.util.Map; -import java.util.function.BiConsumer; - import cn.hutool.core.map.MapUtil; -import org.apache.commons.lang3.StringUtils; - import com.xwintop.xJavaFxTool.controller.debugTools.HttpToolController; -import com.xwintop.xcore.util.HttpClientUtil; +import com.xwintop.xcore.util.javafx.JavaFxSystemUtil; import com.xwintop.xcore.util.javafx.TooltipUtil; - import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import okhttp3.FormBody; +import okhttp3.*; import okhttp3.FormBody.Builder; -import okhttp3.Headers; -import okhttp3.MediaType; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.RequestBody; -import okhttp3.Response; +import org.apache.commons.lang3.StringUtils; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.BiConsumer; /** * @ClassName: HttpToolService @@ -145,7 +137,7 @@ public class HttpToolService { return; } try { - HttpClientUtil.openBrowseURLThrowsException(httpToolController.getUrlTextField().getText()); + JavaFxSystemUtil.openBrowseURLThrowsException(httpToolController.getUrlTextField().getText()); } catch (Exception e1) { TooltipUtil.showToast("输入Url有误!" + e1.getMessage()); log.error(e1.getMessage()); diff --git a/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/utils/VersionChecker.java b/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/utils/VersionChecker.java index 0c594401..9fdc82ef 100644 --- a/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/utils/VersionChecker.java +++ b/debugTools/x-RedisTool/src/main/java/com/xwintop/xJavaFxTool/utils/VersionChecker.java @@ -3,8 +3,8 @@ package com.xwintop.xJavaFxTool.utils; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; -import com.xwintop.xcore.util.HttpClientUtil; import com.xwintop.xcore.util.javafx.AlertUtil; +import com.xwintop.xcore.util.javafx.JavaFxSystemUtil; import javafx.application.Platform; import lombok.extern.slf4j.Slf4j; @@ -32,7 +32,7 @@ public class VersionChecker { .toString(); if (AlertUtil.showConfirmAlert(content)) { try { - HttpClientUtil.openBrowseURLThrowsException(downloadUrl); + JavaFxSystemUtil.openBrowseURLThrowsException(downloadUrl); } catch (IOException e) { e.printStackTrace(); } catch (URISyntaxException e) { diff --git a/littleTools/x-JavaService/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/JavaServiceController.java b/littleTools/x-JavaService/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/JavaServiceController.java index 07543afc..0f9b163d 100644 --- a/littleTools/x-JavaService/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/JavaServiceController.java +++ b/littleTools/x-JavaService/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/JavaServiceController.java @@ -2,8 +2,8 @@ package com.xwintop.xJavaFxTool.controller.littleTools; import com.xwintop.xJavaFxTool.services.littleTools.JavaServiceService; import com.xwintop.xJavaFxTool.view.littleTools.JavaServiceView; -import com.xwintop.xcore.util.HttpClientUtil; import com.xwintop.xcore.util.javafx.FileChooserUtil; +import com.xwintop.xcore.util.javafx.JavaFxSystemUtil; import javafx.event.ActionEvent; import javafx.fxml.FXML; import lombok.Getter; @@ -85,6 +85,6 @@ public class JavaServiceController extends JavaServiceView { @FXML private void winswLinkOnAction() throws Exception { - HttpClientUtil.openBrowseURLThrowsException("https://github.com/winsw/winsw"); + JavaFxSystemUtil.openBrowseURLThrowsException("https://github.com/winsw/winsw"); } } \ No newline at end of file diff --git a/littleTools/x-SmsTool/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/SmsToolController.java b/littleTools/x-SmsTool/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/SmsToolController.java index 0c72ef54..ced4fdae 100644 --- a/littleTools/x-SmsTool/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/SmsToolController.java +++ b/littleTools/x-SmsTool/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/SmsToolController.java @@ -3,16 +3,15 @@ package com.xwintop.xJavaFxTool.controller.littleTools; import com.xwintop.xJavaFxTool.model.SmsToolTableBean; import com.xwintop.xJavaFxTool.services.littleTools.SmsToolService; import com.xwintop.xJavaFxTool.view.littleTools.SmsToolView; -import com.xwintop.xcore.util.HttpClientUtil; +import com.xwintop.xcore.util.javafx.JavaFxSystemUtil; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.Button; -import javafx.scene.control.TableColumn.CellEditEvent; import javafx.scene.control.ContentDisplay; import javafx.scene.control.TableCell; -import javafx.scene.control.TableColumn; +import javafx.scene.control.TableColumn.CellEditEvent; import javafx.scene.control.cell.CheckBoxTableCell; import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.control.cell.TextFieldTableCell; @@ -139,26 +138,26 @@ public class SmsToolController extends SmsToolView { @FXML private void registerAliyunAction(ActionEvent event) { - HttpClientUtil.openBrowseURL("https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=vt7aiwvr&utm_source=vt7aiwvr"); + JavaFxSystemUtil.openBrowseURL("https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=vt7aiwvr&utm_source=vt7aiwvr"); } @FXML private void registerCmccAction(ActionEvent event) { - HttpClientUtil.openBrowseURL("http://www.openservice.com.cn"); + JavaFxSystemUtil.openBrowseURL("http://www.openservice.com.cn"); } @FXML private void registerOpen189Action(ActionEvent event) { - HttpClientUtil.openBrowseURL("http://open.189.cn"); + JavaFxSystemUtil.openBrowseURL("http://open.189.cn"); } @FXML private void registerTencentAction(ActionEvent event) { - HttpClientUtil.openBrowseURL("https://cloud.tencent.com/redirect.php?redirect=1005&cps_key=f312970b0318dd604cd33405d2c6d697"); + JavaFxSystemUtil.openBrowseURL("https://cloud.tencent.com/redirect.php?redirect=1005&cps_key=f312970b0318dd604cd33405d2c6d697"); } @FXML private void registerMonyunAction(ActionEvent event) { - HttpClientUtil.openBrowseURL("http://www.monyun.cn/?rsdlx7ba"); + JavaFxSystemUtil.openBrowseURL("http://www.monyun.cn/?rsdlx7ba"); } } \ No newline at end of file diff --git a/littleTools/x-SmsTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/SmsToolService.java b/littleTools/x-SmsTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/SmsToolService.java index 677b0d38..9480ba1c 100644 --- a/littleTools/x-SmsTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/SmsToolService.java +++ b/littleTools/x-SmsTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/SmsToolService.java @@ -6,7 +6,6 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.xwintop.xJavaFxTool.controller.littleTools.SmsToolController; import com.xwintop.xJavaFxTool.model.SmsToolTableBean; -import com.xwintop.xcore.util.HttpClientUtil; import com.xwintop.xcore.util.javafx.FileChooserUtil; import com.xwintop.xcore.util.javafx.TooltipUtil; import javafx.collections.ObservableList; diff --git a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java index 3ebc89a8..a4362738 100644 --- a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java +++ b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/controller/IndexController.java @@ -2,11 +2,11 @@ package com.xwintop.xJavaFxTool.controller; import com.xwintop.xJavaFxTool.XJavaFxToolApplication; import com.xwintop.xJavaFxTool.controller.index.PluginManageController; +import com.xwintop.xJavaFxTool.controller.plugin.PluginCategoryController; +import com.xwintop.xJavaFxTool.controller.plugin.PluginItemController; import com.xwintop.xJavaFxTool.event.AppEvents; import com.xwintop.xJavaFxTool.event.PluginEvent; import com.xwintop.xJavaFxTool.model.PluginJarInfo; -import com.xwintop.xJavaFxTool.controller.plugin.PluginCategoryController; -import com.xwintop.xJavaFxTool.controller.plugin.PluginItemController; import com.xwintop.xJavaFxTool.plugin.PluginManager; import com.xwintop.xJavaFxTool.plugin.PluginParser; import com.xwintop.xJavaFxTool.services.IndexService; @@ -18,7 +18,6 @@ import com.xwintop.xcore.javafx.FxApp; import com.xwintop.xcore.javafx.dialog.FxAlerts; import com.xwintop.xcore.javafx.dialog.FxDialog; import com.xwintop.xcore.util.ConfigureUtil; -import com.xwintop.xcore.util.HttpClientUtil; import com.xwintop.xcore.util.javafx.AlertUtil; import com.xwintop.xcore.util.javafx.JavaFxSystemUtil; import javafx.application.Platform; @@ -277,11 +276,11 @@ public class IndexController extends IndexView { @FXML private void xwintopLinkOnAction() throws Exception { - HttpClientUtil.openBrowseURLThrowsException("https://gitee.com/xwintop/xJavaFxTool"); + JavaFxSystemUtil.openBrowseURLThrowsException("https://gitee.com/xwintop/xJavaFxTool"); } @FXML private void userSupportAction() throws Exception { - HttpClientUtil.openBrowseURLThrowsException(QQ_URL); + JavaFxSystemUtil.openBrowseURLThrowsException(QQ_URL); } } diff --git a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/utils/VersionChecker.java b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/utils/VersionChecker.java index 98c08a49..fa441819 100644 --- a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/utils/VersionChecker.java +++ b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/utils/VersionChecker.java @@ -4,7 +4,7 @@ import cn.hutool.http.HttpUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.xwintop.xcore.javafx.dialog.FxAlerts; -import com.xwintop.xcore.util.HttpClientUtil; +import com.xwintop.xcore.util.javafx.JavaFxSystemUtil; import lombok.extern.slf4j.Slf4j; /** @@ -35,7 +35,7 @@ public class VersionChecker { .append("更新内容: \r\n").append(features) .toString(); if (FxAlerts.confirmOkCancel("发现新版本 " + latestVersion, content)) { - HttpClientUtil.openBrowseURLThrowsException("https://gitee.com/xwintop/xJavaFxTool/releases"); + JavaFxSystemUtil.openBrowseURLThrowsException("https://gitee.com/xwintop/xJavaFxTool/releases"); } } else { return false; diff --git a/xcore/src/main/java/com/xwintop/xcore/util/AttributeConvertUtil.java b/xcore/src/main/java/com/xwintop/xcore/util/AttributeConvertUtil.java deleted file mode 100644 index f853c5d9..00000000 --- a/xcore/src/main/java/com/xwintop/xcore/util/AttributeConvertUtil.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.xwintop.xcore.util; - -/** - * @ClassName: AttributeConvertUtil - * @Description: 类属性转换工具类 - * @author: xufeng - * @date: 2017年7月11日 下午1:20:05 - */ -public class AttributeConvertUtil { - public static String getAttributeNameByXml(String str) { - StringBuilder stringBuilder = new StringBuilder(); - String[] strings = str.split("_"); - for (int i = 0; i < strings.length; i++) { - if (i == 0) { - stringBuilder.append(Character.toLowerCase(strings[i].charAt(0))); - } else { - stringBuilder.append(Character.toUpperCase(strings[i].charAt(0))); - } - stringBuilder.append(strings[i].substring(1)); - } - return stringBuilder.toString(); - } - - public static String getAttributeSetNameByXml(String str) { - StringBuilder stringBuilder = new StringBuilder(); - String[] strings = str.split("_"); - for (int i = 0; i < strings.length; i++) { - stringBuilder.append(Character.toUpperCase(strings[i].charAt(0))); - stringBuilder.append(strings[i].substring(1)); - } - return stringBuilder.toString(); - } - - /** - * @Title: humpToLine - * @Description: 驼峰转下横线写法互转 - */ - public static String humpToLine(String param) { - int len = param.length(); - StringBuilder sb = new StringBuilder(len); - sb.append(param.charAt(0)); - for (int i = 1; i < len; i++) { - char c = param.charAt(i); - if (Character.isUpperCase(c) && Character.isLowerCase(param.charAt(i-1))) { - sb.append("_"); - } - sb.append(c); - } - return sb.toString().toUpperCase(); - } -} diff --git a/xcore/src/main/java/com/xwintop/xcore/util/HttpClientUtil.java b/xcore/src/main/java/com/xwintop/xcore/util/HttpClientUtil.java deleted file mode 100644 index de6529e7..00000000 --- a/xcore/src/main/java/com/xwintop/xcore/util/HttpClientUtil.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.xwintop.xcore.util; - -import java.awt.*; -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; - -/** - * 使用方法参见单元测试 - */ -public class HttpClientUtil { - public static void openBrowseURL(String url) { - Desktop desktop = Desktop.getDesktop(); - try { - desktop.browse(new URI(url)); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - - public static void openBrowseURLThrowsException(String url) throws IOException, URISyntaxException { - Desktop desktop = Desktop.getDesktop(); - desktop.browse(new URI(url)); - } -} diff --git a/xcore/src/main/java/com/xwintop/xcore/util/javafx/JavaFxSystemUtil.java b/xcore/src/main/java/com/xwintop/xcore/util/javafx/JavaFxSystemUtil.java index f6d52311..e6861d95 100644 --- a/xcore/src/main/java/com/xwintop/xcore/util/javafx/JavaFxSystemUtil.java +++ b/xcore/src/main/java/com/xwintop/xcore/util/javafx/JavaFxSystemUtil.java @@ -8,6 +8,8 @@ import lombok.extern.slf4j.Slf4j; import java.awt.*; import java.io.File; import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; @Slf4j public class JavaFxSystemUtil { @@ -51,4 +53,18 @@ public class JavaFxSystemUtil { } return new double[]{screenWidth, screenHeight}; } + + public static void openBrowseURL(String url) { + Desktop desktop = Desktop.getDesktop(); + try { + desktop.browse(new URI(url)); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + + public static void openBrowseURLThrowsException(String url) throws IOException, URISyntaxException { + Desktop desktop = Desktop.getDesktop(); + desktop.browse(new URI(url)); + } } -- Gitee From 5576b44f05bc04f38f88bfefbd628a9c425476a8 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Sun, 25 Feb 2024 20:53:54 +0800 Subject: [PATCH 14/27] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E4=B8=AD=E4=BD=BF=E7=94=A8=E7=9A=84=E8=BF=87=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assistTools/TextToSpeechToolService.java | 20 ++++--- .../com/xwintop/xcore/commons/CacheUtil.java | 53 ------------------- 2 files changed, 14 insertions(+), 59 deletions(-) delete mode 100644 xcore/src/main/java/com/xwintop/xcore/commons/CacheUtil.java diff --git a/assistTools/x-TextToSpeechTool/src/main/java/com/xwintop/xJavaFxTool/services/assistTools/TextToSpeechToolService.java b/assistTools/x-TextToSpeechTool/src/main/java/com/xwintop/xJavaFxTool/services/assistTools/TextToSpeechToolService.java index 8fe4cd10..104b5b49 100644 --- a/assistTools/x-TextToSpeechTool/src/main/java/com/xwintop/xJavaFxTool/services/assistTools/TextToSpeechToolService.java +++ b/assistTools/x-TextToSpeechTool/src/main/java/com/xwintop/xJavaFxTool/services/assistTools/TextToSpeechToolService.java @@ -1,10 +1,10 @@ package com.xwintop.xJavaFxTool.services.assistTools; +import cn.hutool.cache.Cache; import com.baidu.aip.speech.AipSpeech; import com.baidu.aip.speech.TtsResponse; import com.baidu.aip.util.Util; import com.xwintop.xJavaFxTool.controller.assistTools.TextToSpeechToolController; -import com.xwintop.xcore.commons.CacheUtil; import com.xwintop.xcore.util.ConfigureUtil; import com.xwintop.xcore.util.javafx.FileChooserUtil; import com.xwintop.xcore.util.javafx.TooltipUtil; @@ -32,15 +32,22 @@ import java.util.HashMap; @Slf4j public class TextToSpeechToolService { private TextToSpeechToolController textToSpeechToolController; + //设置APPID/AK/SK public static final String APP_ID = "10690878"; + public static final String API_KEY = "y5VI7DG4YNb1G600X8FpxsN2"; + public static final String SECRET_KEY = "4RoIZEBGePYU4R4capF4OEYZ3HL3nCSU"; + private AipSpeech client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY); + private MediaPlayer mediaPlayer = null; private String mp3Cache = ConfigureUtil.getConfigurePath("output.mp3"); + private Cache resCache = cn.hutool.cache.CacheUtil.newNoCache(); + public void playAction() throws Exception { TtsResponse res = getTtsResponse(); byte[] data = res.getData(); //生成的音频数据 @@ -52,7 +59,7 @@ public class TextToSpeechToolService { //AudioPlayer.player.stop(as);//关闭音乐播放 Media media = new Media(new File(mp3Cache).toURI().toString()); mediaPlayer = new MediaPlayer(media); - mediaPlayer.setOnEndOfMedia(()->{ + mediaPlayer.setOnEndOfMedia(() -> { textToSpeechToolController.getPlayButton().setText("播放"); }); mediaPlayer.play(); @@ -90,11 +97,12 @@ public class TextToSpeechToolService { String per = textToSpeechToolController.getPerToggleGroup().getSelectedToggle().getUserData().toString(); options.put("per", per); // System.out.println(options.toString()); - log.info("转换参数:"+options.toString()); + log.info("转换参数:" + options.toString()); String textString = textToSpeechToolController.getTextTextArea().getText(); - TtsResponse res = CacheUtil.getInstance().get(options.toString() + textString, TtsResponse.class, s -> { - return client.synthesis(textString, "zh", 1, options); - }); + if (!resCache.containsKey(options.toString() + textString)) { + resCache.put(options.toString() + textString, client.synthesis(textString, "zh", 1, options)); + } + TtsResponse res = resCache.get(options.toString() + textString); return res; } diff --git a/xcore/src/main/java/com/xwintop/xcore/commons/CacheUtil.java b/xcore/src/main/java/com/xwintop/xcore/commons/CacheUtil.java deleted file mode 100644 index 1a9a0975..00000000 --- a/xcore/src/main/java/com/xwintop/xcore/commons/CacheUtil.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.xwintop.xcore.commons; - -import lombok.Getter; -import lombok.Setter; - -import java.util.HashMap; -import java.util.Map; -import java.util.function.Function; - -/** - * @ClassName: CacheUtil - * @Description: 缓存工具类 - * @author: xufeng - * @date: 2018/2/7 11:07 - */ -@Deprecated -@Getter -@Setter -public class CacheUtil { - private static CacheUtil cacheUtil = new CacheUtil(); - // private Cache cache = Caffeine.newBuilder().expireAfterWrite(12, TimeUnit.HOURS).build(); - private Map cache = new HashMap(); - - public static CacheUtil getInstance() { - return cacheUtil; - } - - public void set(Object key, Object value) { - cache.put(key, value); - } - - public Object get(Object key) { -// return cache.getIfPresent(key); - return cache.get(key); - } - - public T get(Object key, Class type) { -// return (T) cache.getIfPresent(key); - return (T) cache.get(key); - } - - public T get(Object key, Class type, Function mappingFunction) { - if (get(key, type) == null) { - set(key, mappingFunction.apply(null)); - } - return (T) cache.get(key); - } - - public void remove(Object key) { -// cache.invalidate(key); - cache.remove(key); - } -} -- Gitee From 3115eaad3a883a5cd9827c12585923beae6aaaf8 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Mon, 26 Feb 2024 22:38:28 +0800 Subject: [PATCH 15/27] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E4=B8=AD=E4=BD=BF=E7=94=A8=E7=9A=84=E8=BF=87=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xcore/src/main/java/com/xwintop/xcore/javafx/FxApp.java | 2 -- .../com/xwintop/xcore/util/javafx/JavaFxSystemUtil.java | 8 -------- 2 files changed, 10 deletions(-) diff --git a/xcore/src/main/java/com/xwintop/xcore/javafx/FxApp.java b/xcore/src/main/java/com/xwintop/xcore/javafx/FxApp.java index d16ac498..68e8ec66 100644 --- a/xcore/src/main/java/com/xwintop/xcore/javafx/FxApp.java +++ b/xcore/src/main/java/com/xwintop/xcore/javafx/FxApp.java @@ -1,6 +1,5 @@ package com.xwintop.xcore.javafx; -import com.xwintop.xcore.util.javafx.JavaFxSystemUtil; import javafx.application.Platform; import javafx.scene.control.Dialog; import javafx.scene.image.Image; @@ -30,7 +29,6 @@ public class FxApp { // 初始化全局属性 public static void init(Stage primaryStage, String iconPath) { FxApp.primaryStage = primaryStage; - JavaFxSystemUtil.mainStage = primaryStage; // 为兼容性保留 if (StringUtils.isNotBlank(iconPath)) { FxApp.appIcon = icon(iconPath); diff --git a/xcore/src/main/java/com/xwintop/xcore/util/javafx/JavaFxSystemUtil.java b/xcore/src/main/java/com/xwintop/xcore/util/javafx/JavaFxSystemUtil.java index e6861d95..3ab7956d 100644 --- a/xcore/src/main/java/com/xwintop/xcore/util/javafx/JavaFxSystemUtil.java +++ b/xcore/src/main/java/com/xwintop/xcore/util/javafx/JavaFxSystemUtil.java @@ -2,7 +2,6 @@ package com.xwintop.xcore.util.javafx; import javafx.geometry.Rectangle2D; import javafx.stage.Screen; -import javafx.stage.Stage; import lombok.extern.slf4j.Slf4j; import java.awt.*; @@ -13,13 +12,6 @@ import java.net.URISyntaxException; @Slf4j public class JavaFxSystemUtil { - - /** - * @deprecated 使用 {@link com.xwintop.xcore.javafx.FxApp#primaryStage} - */ - @Deprecated - public static Stage mainStage = null; - /** * 打开目录 * -- Gitee From 8694d0ff904662cf20e1a4d856e275fe1c9f6780 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Tue, 27 Feb 2024 21:53:00 +0800 Subject: [PATCH 16/27] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E4=B8=AD=E4=BD=BF=E7=94=A8=E7=9A=84=E8=BF=87=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xwintop/xJavaFxTool/utils/Config.java | 45 +++++++++---------- xJavaFxTool/src/main/java/module-info.java | 1 + xcore/build.gradle | 2 +- xcore/src/main/java/module-info.java | 2 +- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/utils/Config.java b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/utils/Config.java index 1c00eb80..dda05bac 100644 --- a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/utils/Config.java +++ b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/utils/Config.java @@ -1,13 +1,15 @@ package com.xwintop.xJavaFxTool.utils; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.alibaba.fastjson2.JSONWriter; import com.xwintop.xcore.util.ConfigureUtil; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.math.NumberUtils; +import org.apache.commons.io.FileUtils; import java.io.File; -import java.io.FileInputStream; +import java.nio.charset.StandardCharsets; import java.util.Locale; -import java.util.Properties; /* * 存取框架配置 @@ -15,7 +17,7 @@ import java.util.Properties; @Slf4j public class Config { - public static final String CONFIG_FILE_NAME = "systemConfigure.properties"; + public static final String CONFIG_FILE_NAME = "systemConfigure.json"; public static Locale defaultLocale = Locale.getDefault();// 设置系统语言 @@ -27,35 +29,33 @@ public class Config { NewLauncher } - private static Properties conf; + private static JSONObject conf; - public static Properties getConfig() { + public static JSONObject getConfig() { try { if (conf == null) { + conf = new JSONObject(); File file = ConfigureUtil.getConfigureFile(CONFIG_FILE_NAME); - conf = new Properties(); - conf.load(new FileInputStream(file)); -// conf = new PropertiesConfiguration(file); -// conf.setAutoSave(true); // 启用自动保存 - } else { -// conf.reload(); + if (file.exists()) { + conf = JSON.parseObject(FileUtils.readFileToString(file, StandardCharsets.UTF_8)); + } } } catch (Exception e) { log.error("加载本地配置失败:", e); // 即使加载失败,也要返回一个内存中的 PropertiesConfiguration 对象,以免程序报错。 - conf = new Properties(); + conf = new JSONObject(); } return conf; } public static void saveConfig() { -// File file = ConfigureUtil.getConfigureFile(CONFIG_FILE_NAME); -// try { -// conf.store(new FileOutputStream(file), "save config"); -// } catch (Exception e) { -// throw new RuntimeException(e); -// } + File file = ConfigureUtil.getConfigureFile(CONFIG_FILE_NAME); + try { + FileUtils.writeStringToFile(file, conf.toJSONString(JSONWriter.Feature.WriteMapNullValue)); + } catch (Exception e) { + throw new RuntimeException(e); + } } /** @@ -67,15 +67,14 @@ public class Config { } public static String get(Keys key, String def) { - Object value = getConfig().getProperty(key.name()); - return value == null ? def : value.toString(); + return (String) getConfig().getOrDefault(key.name(), def); } public static double getDouble(Keys key, double def) { - return NumberUtils.toDouble(get(key, null), def); + return (double) getConfig().getOrDefault(key.name(), def); } public static boolean getBoolean(Keys key, boolean def) { - return Boolean.parseBoolean(get(key, String.valueOf(def))); + return (boolean) getConfig().getOrDefault(key.name(), def); } } diff --git a/xJavaFxTool/src/main/java/module-info.java b/xJavaFxTool/src/main/java/module-info.java index c0866623..3418de35 100644 --- a/xJavaFxTool/src/main/java/module-info.java +++ b/xJavaFxTool/src/main/java/module-info.java @@ -17,4 +17,5 @@ module com.xwintop.xJavaFxTool { requires ch.qos.logback.core; requires com.alibaba.fastjson2; requires org.dom4j; + requires cn.hutool; } \ No newline at end of file diff --git a/xcore/build.gradle b/xcore/build.gradle index 9cf6676c..fb65543e 100644 --- a/xcore/build.gradle +++ b/xcore/build.gradle @@ -13,7 +13,7 @@ dependencies { // api 'commons-beanutils:commons-beanutils:1.9.4' // api 'org.apache.commons:commons-imaging:1.0-alpha3' api 'cn.hutool:hutool-all:5.8.26' - api 'com.alibaba.fastjson2:fastjson2:2.0.46' + api 'com.alibaba.fastjson2:fastjson2:2.0.47' api 'org.yaml:snakeyaml:1.30' } diff --git a/xcore/src/main/java/module-info.java b/xcore/src/main/java/module-info.java index d4c956b1..cf688b8e 100644 --- a/xcore/src/main/java/module-info.java +++ b/xcore/src/main/java/module-info.java @@ -21,6 +21,6 @@ open module com.xwintop.xcore { requires quartz; requires transitive javafx.swing; requires org.controlsfx.controls; - requires transitive cn.hutool; + requires cn.hutool; requires org.dom4j; } -- Gitee From 0d1a05b766f6fcd5bb10919c9e3e8df66271e474 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Wed, 28 Feb 2024 10:32:06 +0800 Subject: [PATCH 17/27] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0configuration2?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../codeTools/RegexTesterController.java | 17 +++-- .../debugTools/ActiveMqToolService.java | 30 +++++---- .../services/debugTools/CmdToolService.java | 64 ++++++++++--------- .../debugTools/FtpClientToolService.java | 29 +++++---- .../services/debugTools/FtpServerService.java | 29 +++++---- .../services/debugTools/KafkaToolService.java | 30 +++++---- .../debugTools/ScriptEngineToolService.java | 36 ++++++----- .../games/BullsAndCowsGameService.java | 37 +++++++---- .../xJavaFxTool/EmailToolApplication.java | 43 +++++++++++++ .../xwintop/xJavaFxTool/EmailToolMain.java | 34 +--------- .../littleTools/EmailToolService.java | 10 +-- .../services/littleTools/FileCopyService.java | 21 +++--- xcore/build.gradle | 4 +- 13 files changed, 221 insertions(+), 163 deletions(-) create mode 100644 littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/EmailToolApplication.java diff --git a/codeTools/x-RegexTester/src/main/java/com/xwintop/xJavaFxTool/controller/codeTools/RegexTesterController.java b/codeTools/x-RegexTester/src/main/java/com/xwintop/xJavaFxTool/controller/codeTools/RegexTesterController.java index 74b2b6cb..9702d494 100644 --- a/codeTools/x-RegexTester/src/main/java/com/xwintop/xJavaFxTool/controller/codeTools/RegexTesterController.java +++ b/codeTools/x-RegexTester/src/main/java/com/xwintop/xJavaFxTool/controller/codeTools/RegexTesterController.java @@ -27,6 +27,9 @@ import javafx.scene.web.WebView; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.configuration2.PropertiesConfiguration; +import org.apache.commons.configuration2.builder.fluent.Configurations; + import java.net.URL; import java.util.HashMap; import java.util.Map; @@ -57,13 +60,13 @@ public class RegexTesterController extends RegexTesterView { private void initView() throws Exception { examplesTableColumn0.setCellValueFactory(new MapValueFactory("column0")); examplesTableColumn1.setCellValueFactory(new MapValueFactory("column1")); -// PropertiesConfiguration pcfg = new PropertiesConfiguration(RegexTesterController.class.getResource("/data/regexData.properties")); -// pcfg.getKeys().forEachRemaining((String key) -> { -// Map map = new HashMap(); -// map.put("column0", key); -// map.put("column1", pcfg.getString(key)); -// examplesTableView.getItems().add(map); -// }); + PropertiesConfiguration pcfg = new Configurations().properties(RegexTesterController.class.getResource("/data/regexData.properties")); + pcfg.getKeys().forEachRemaining((String key) -> { + Map map = new HashMap(); + map.put("column0", key); + map.put("column1", pcfg.getString(key)); + examplesTableView.getItems().add(map); + }); matchTableColumn0.setCellValueFactory(new MapValueFactory("column0")); matchTableColumn1.setCellValueFactory(new MapValueFactory("column1")); matchTableColumn2.setCellValueFactory(new MapValueFactory("column2")); diff --git a/debugTools/x-ActiveMqTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ActiveMqToolService.java b/debugTools/x-ActiveMqTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ActiveMqToolService.java index 049d4b1e..dd44860f 100644 --- a/debugTools/x-ActiveMqTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ActiveMqToolService.java +++ b/debugTools/x-ActiveMqTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ActiveMqToolService.java @@ -18,15 +18,19 @@ import lombok.extern.slf4j.Slf4j; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.command.ActiveMQBytesMessage; import org.apache.activemq.command.ActiveMQMapMessage; +import org.apache.commons.configuration2.PropertiesConfiguration; +import org.apache.commons.configuration2.builder.fluent.Configurations; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import javax.jms.*; import java.io.File; +import java.io.FileWriter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; +import java.util.function.Consumer; /** * @ClassName: ActiveMqToolService @@ -53,12 +57,12 @@ public class ActiveMqToolService { public void saveConfigure(File file) throws Exception { FileUtils.touch(file); -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); -// xmlConfigure.clear(); -// for (int i = 0; i < activeMqToolController.getTableData().size(); i++) { -// xmlConfigure.setProperty("tableBean" + i, activeMqToolController.getTableData().get(i).getPropertys()); -// } -// xmlConfigure.save(); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); + xmlConfigure.clear(); + for (int i = 0; i < activeMqToolController.getTableData().size(); i++) { + xmlConfigure.setProperty("tableBean" + i, activeMqToolController.getTableData().get(i).getPropertys()); + } + xmlConfigure.write(new FileWriter(file)); Platform.runLater(() -> { TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); }); @@ -81,13 +85,13 @@ public class ActiveMqToolService { public void loadingConfigure(File file) { try { activeMqToolController.getTableData().clear(); -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); -// xmlConfigure.getKeys().forEachRemaining(new Consumer() { -// @Override -// public void accept(String t) { -// activeMqToolController.getTableData().add(new ActiveMqToolTableBean(xmlConfigure.getString(t))); -// } -// }); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); + xmlConfigure.getKeys().forEachRemaining(new Consumer() { + @Override + public void accept(String t) { + activeMqToolController.getTableData().add(new ActiveMqToolTableBean(xmlConfigure.getString(t))); + } + }); } catch (Exception e) { try { TooltipUtil.showToast("加载配置失败:" + e.getMessage()); diff --git a/debugTools/x-CmdTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/CmdToolService.java b/debugTools/x-CmdTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/CmdToolService.java index 207b32ea..b035f6f8 100644 --- a/debugTools/x-CmdTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/CmdToolService.java +++ b/debugTools/x-CmdTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/CmdToolService.java @@ -11,12 +11,15 @@ import javafx.stage.FileChooser; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.configuration2.PropertiesConfiguration; +import org.apache.commons.configuration2.builder.fluent.Configurations; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; import java.io.File; +import java.io.FileWriter; import java.util.function.Consumer; /** @@ -33,8 +36,11 @@ public class CmdToolService { private CmdToolController cmdToolController; private String fileName = "cmdToolConfigure.properties"; + private SchedulerFactory sf = new StdSchedulerFactory(); + private String schedulerKeyGroup = "runCmdTool"; + private String schedulerKeyName = "runCmdTool" + System.currentTimeMillis(); public CmdToolService(CmdToolController cmdToolController) { @@ -109,12 +115,12 @@ public class CmdToolService { @SuppressWarnings({"unchecked", "rawtypes"}) public boolean runQuartzAction(String quartzType, String cronText, int interval, int repeatCount) throws Exception { JobDetail jobDetail = JobBuilder.newJob(CmdToolJob.class).withIdentity(schedulerKeyName, schedulerKeyGroup) - .build(); + .build(); jobDetail.getJobDataMap().put("cmdToolService", this); ScheduleBuilder scheduleBuilder = null; if ("简单表达式".equals(quartzType)) { scheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(interval)// 时间间隔 - .withRepeatCount(repeatCount);// 重复次数(将执行6次) + .withRepeatCount(repeatCount);// 重复次数(将执行6次) } else if ("Cron表达式".equals(quartzType)) { if (StringUtils.isEmpty(cronText)) { TooltipUtil.showToast("cron表达式不能为空。"); @@ -124,9 +130,9 @@ public class CmdToolService { } // 描叙触发Job执行的时间触发规则,Trigger实例化一个触发器 Trigger trigger = TriggerBuilder.newTrigger()// 创建一个新的TriggerBuilder来规范一个触发器 - .withIdentity(schedulerKeyName, schedulerKeyGroup)// 给触发器一个名字和组名 - .startNow()// 立即执行 - .withSchedule(scheduleBuilder).build();// 产生触发器 + .withIdentity(schedulerKeyName, schedulerKeyGroup)// 给触发器一个名字和组名 + .startNow()// 立即执行 + .withSchedule(scheduleBuilder).build();// 产生触发器 // 运行容器,使用SchedulerFactory创建Scheduler实例 Scheduler scheduler = sf.getScheduler(); @@ -151,18 +157,18 @@ public class CmdToolService { public void saveConfigure(File file) throws Exception { FileUtils.touch(file); -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); -// xmlConfigure.clear(); -// for (int i = 0; i < cmdToolController.getTableData().size(); i++) { -// xmlConfigure.setProperty("tableBean" + i, cmdToolController.getTableData().get(i).getPropertys()); -// } -// xmlConfigure.save(); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); + xmlConfigure.clear(); + for (int i = 0; i < cmdToolController.getTableData().size(); i++) { + xmlConfigure.setProperty("tableBean" + i, cmdToolController.getTableData().get(i).getPropertys()); + } + xmlConfigure.write(new FileWriter(file)); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); } public void otherSaveConfigureAction() throws Exception { File file = FileChooserUtil.chooseSaveFile(fileName, new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.properties")); if (file != null) { saveConfigure(file); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); @@ -174,27 +180,27 @@ public class CmdToolService { } public void loadingConfigure(File file) { -// try { -// cmdToolController.getTableData().clear(); -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); -// xmlConfigure.getKeys().forEachRemaining(new Consumer() { -// @Override -// public void accept(String t) { -// cmdToolController.getTableData().add(new CmdToolTableBean(xmlConfigure.getString(t))); -// } -// }); -// } catch (Exception e) { -// try { -// log.error("加载配置失败:" + e.getMessage()); -// TooltipUtil.showToast("加载配置失败:" + e.getMessage()); -// } catch (Exception e2) { -// } -// } + try { + cmdToolController.getTableData().clear(); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); + xmlConfigure.getKeys().forEachRemaining(new Consumer() { + @Override + public void accept(String t) { + cmdToolController.getTableData().add(new CmdToolTableBean(xmlConfigure.getString(t))); + } + }); + } catch (Exception e) { + try { + log.error("加载配置失败:" + e.getMessage()); + TooltipUtil.showToast("加载配置失败:" + e.getMessage()); + } catch (Exception e2) { + } + } } public void loadingConfigureAction() { File file = FileChooserUtil.chooseFile(new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.properties")); if (file != null) { loadingConfigure(file); } diff --git a/debugTools/x-FtpClientTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpClientToolService.java b/debugTools/x-FtpClientTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpClientToolService.java index a6a950f4..c6a0e6d2 100644 --- a/debugTools/x-FtpClientTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpClientToolService.java +++ b/debugTools/x-FtpClientTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpClientToolService.java @@ -14,6 +14,8 @@ import javafx.stage.FileChooser; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.configuration2.PropertiesConfiguration; +import org.apache.commons.configuration2.builder.fluent.Configurations; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.quartz.*; @@ -22,6 +24,7 @@ import org.quartz.impl.StdSchedulerFactory; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileOutputStream; +import java.io.FileWriter; import java.util.Properties; import java.util.function.Consumer; @@ -239,12 +242,12 @@ public class FtpClientToolService { public void saveConfigure(File file) throws Exception { FileUtils.touch(file); -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); -// xmlConfigure.clear(); -// for (int i = 0; i < ftpClientToolController.getTableData().size(); i++) { -// xmlConfigure.setProperty("tableBean" + i, ftpClientToolController.getTableData().get(i).getPropertys()); -// } -// xmlConfigure.save(); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); + xmlConfigure.clear(); + for (int i = 0; i < ftpClientToolController.getTableData().size(); i++) { + xmlConfigure.setProperty("tableBean" + i, ftpClientToolController.getTableData().get(i).getPropertys()); + } + xmlConfigure.write(new FileWriter(file)); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); } @@ -264,13 +267,13 @@ public class FtpClientToolService { public void loadingConfigure(File file) { try { ftpClientToolController.getTableData().clear(); -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); -// xmlConfigure.getKeys().forEachRemaining(new Consumer() { -// @Override -// public void accept(String t) { -// ftpClientToolController.getTableData().add(new FtpClientToolTableBean(xmlConfigure.getString(t))); -// } -// }); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); + xmlConfigure.getKeys().forEachRemaining(new Consumer() { + @Override + public void accept(String t) { + ftpClientToolController.getTableData().add(new FtpClientToolTableBean(xmlConfigure.getString(t))); + } + }); } catch (Exception e) { try { log.error("加载配置失败:", e); diff --git a/debugTools/x-FtpServer/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpServerService.java b/debugTools/x-FtpServer/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpServerService.java index 00f1e297..d99da85b 100644 --- a/debugTools/x-FtpServer/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpServerService.java +++ b/debugTools/x-FtpServer/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpServerService.java @@ -6,6 +6,8 @@ import com.xwintop.xcore.util.ConfigureUtil; import com.xwintop.xcore.util.javafx.FileChooserUtil; import com.xwintop.xcore.util.javafx.TooltipUtil; +import org.apache.commons.configuration2.PropertiesConfiguration; +import org.apache.commons.configuration2.builder.fluent.Configurations; import org.apache.commons.io.FileUtils; import org.apache.ftpserver.ConnectionConfig; import org.apache.ftpserver.FtpServer; @@ -18,6 +20,7 @@ import org.apache.ftpserver.usermanager.impl.TransferRatePermission; import org.apache.ftpserver.usermanager.impl.WritePermission; import java.io.File; +import java.io.FileWriter; import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; @@ -104,12 +107,12 @@ public class FtpServerService { public void saveConfigure(File file) throws Exception { FileUtils.touch(file); -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); -// xmlConfigure.clear(); -// for (int i = 0; i < ftpServerController.getTableData().size(); i++) { -// xmlConfigure.setProperty("tableBean" + i, ftpServerController.getTableData().get(i).getPropertys()); -// } -// xmlConfigure.save(); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); + xmlConfigure.clear(); + for (int i = 0; i < ftpServerController.getTableData().size(); i++) { + xmlConfigure.setProperty("tableBean" + i, ftpServerController.getTableData().get(i).getPropertys()); + } + xmlConfigure.write(new FileWriter(file)); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); } @@ -130,13 +133,13 @@ public class FtpServerService { public void loadingConfigure(File file) { try { ftpServerController.getTableData().clear(); -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); -// xmlConfigure.getKeys().forEachRemaining(new Consumer() { -// @Override -// public void accept(String t) { -// ftpServerController.getTableData().add(new FtpServerTableBean(xmlConfigure.getString(t))); -// } -// }); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); + xmlConfigure.getKeys().forEachRemaining(new Consumer() { + @Override + public void accept(String t) { + ftpServerController.getTableData().add(new FtpServerTableBean(xmlConfigure.getString(t))); + } + }); } catch (Exception e) { try { log.error("加载配置失败:" + e.getMessage()); diff --git a/debugTools/x-KafkaTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/KafkaToolService.java b/debugTools/x-KafkaTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/KafkaToolService.java index 1ecb3f5a..caa6fd55 100644 --- a/debugTools/x-KafkaTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/KafkaToolService.java +++ b/debugTools/x-KafkaTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/KafkaToolService.java @@ -14,6 +14,8 @@ import javafx.stage.FileChooser; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.configuration2.PropertiesConfiguration; +import org.apache.commons.configuration2.builder.fluent.Configurations; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.apache.kafka.clients.consumer.ConsumerConfig; @@ -34,8 +36,10 @@ import org.springframework.kafka.listener.ContainerProperties; import javax.jms.Message; import java.io.File; +import java.io.FileWriter; import java.text.SimpleDateFormat; import java.util.*; +import java.util.function.Consumer; /** * @ClassName: KafkaToolService @@ -61,12 +65,12 @@ public class KafkaToolService { public void saveConfigure(File file) throws Exception { FileUtils.touch(file); -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); -// xmlConfigure.clear(); -// for (int i = 0; i < kafkaToolController.getTableData().size(); i++) { -// xmlConfigure.setProperty("tableBean" + i, kafkaToolController.getTableData().get(i).getPropertys()); -// } -// xmlConfigure.save(); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); + xmlConfigure.clear(); + for (int i = 0; i < kafkaToolController.getTableData().size(); i++) { + xmlConfigure.setProperty("tableBean" + i, kafkaToolController.getTableData().get(i).getPropertys()); + } + xmlConfigure.write(new FileWriter(file)); Platform.runLater(() -> { TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); }); @@ -88,13 +92,13 @@ public class KafkaToolService { public void loadingConfigure(File file) { try { kafkaToolController.getTableData().clear(); -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); -// xmlConfigure.getKeys().forEachRemaining(new Consumer() { -// @Override -// public void accept(String t) { -// kafkaToolController.getTableData().add(new KafkaToolTableBean(xmlConfigure.getString(t))); -// } -// }); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); + xmlConfigure.getKeys().forEachRemaining(new Consumer() { + @Override + public void accept(String t) { + kafkaToolController.getTableData().add(new KafkaToolTableBean(xmlConfigure.getString(t))); + } + }); } catch (Exception e) { try { TooltipUtil.showToast("加载配置失败:" + e.getMessage()); diff --git a/debugTools/x-ScriptEngineTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ScriptEngineToolService.java b/debugTools/x-ScriptEngineTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ScriptEngineToolService.java index 4341e6c4..d6702d43 100644 --- a/debugTools/x-ScriptEngineTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ScriptEngineToolService.java +++ b/debugTools/x-ScriptEngineTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ScriptEngineToolService.java @@ -14,11 +14,15 @@ import javafx.stage.FileChooser; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.configuration2.PropertiesConfiguration; +import org.apache.commons.configuration2.builder.fluent.Configurations; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import java.io.File; +import java.io.FileWriter; import java.util.Map; +import java.util.function.Consumer; /** * @ClassName: ScriptEngineToolService @@ -32,7 +36,9 @@ import java.util.Map; @Slf4j public class ScriptEngineToolService { private ScriptEngineToolController scriptEngineToolController; + private String fileName = "scriptEngineToolConfigure.properties"; + private ScheduleManager scheduleManager = new ScheduleManager(); public ScriptEngineToolService(ScriptEngineToolController scriptEngineToolController) { @@ -159,18 +165,18 @@ public class ScriptEngineToolService { public void saveConfigure(File file) throws Exception { FileUtils.touch(file); -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); -// xmlConfigure.clear(); -// for (int i = 0; i < scriptEngineToolController.getTableData().size(); i++) { -// xmlConfigure.setProperty("tableBean" + i, scriptEngineToolController.getTableData().get(i).getPropertys()); -// } -// xmlConfigure.save(); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); + xmlConfigure.clear(); + for (int i = 0; i < scriptEngineToolController.getTableData().size(); i++) { + xmlConfigure.setProperty("tableBean" + i, scriptEngineToolController.getTableData().get(i).getPropertys()); + } + xmlConfigure.write(new FileWriter(file)); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); } public void otherSaveConfigureAction() throws Exception { File file = FileChooserUtil.chooseSaveFile(fileName, new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.properties")); if (file != null) { saveConfigure(file); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); @@ -184,13 +190,13 @@ public class ScriptEngineToolService { public void loadingConfigure(File file) { try { scriptEngineToolController.getTableData().clear(); -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); -// xmlConfigure.getKeys().forEachRemaining(new Consumer() { -// @Override -// public void accept(String t) { -// scriptEngineToolController.getTableData().add(new ScriptEngineToolTableBean(xmlConfigure.getString(t))); -// } -// }); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); + xmlConfigure.getKeys().forEachRemaining(new Consumer() { + @Override + public void accept(String t) { + scriptEngineToolController.getTableData().add(new ScriptEngineToolTableBean(xmlConfigure.getString(t))); + } + }); } catch (Exception e) { try { log.error("加载配置失败:" + e.getMessage()); @@ -202,7 +208,7 @@ public class ScriptEngineToolService { public void loadingConfigureAction() { File file = FileChooserUtil.chooseFile(new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.properties")); if (file != null) { loadingConfigure(file); } diff --git a/games/x-BullsAndCowsGame/src/main/java/com/xwintop/xJavaFxTool/services/games/BullsAndCowsGameService.java b/games/x-BullsAndCowsGame/src/main/java/com/xwintop/xJavaFxTool/services/games/BullsAndCowsGameService.java index 9b25b893..02bacbd7 100644 --- a/games/x-BullsAndCowsGame/src/main/java/com/xwintop/xJavaFxTool/services/games/BullsAndCowsGameService.java +++ b/games/x-BullsAndCowsGame/src/main/java/com/xwintop/xJavaFxTool/services/games/BullsAndCowsGameService.java @@ -1,6 +1,7 @@ package com.xwintop.xJavaFxTool.services.games; import com.xwintop.xJavaFxTool.controller.games.BullsAndCowsGameController; +import com.xwintop.xcore.util.ConfigureUtil; import com.xwintop.xcore.util.javafx.AlertUtil; import javafx.application.Platform; import javafx.scene.control.Label; @@ -9,8 +10,13 @@ import javafx.scene.layout.HBox; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.configuration2.PropertiesConfiguration; +import org.apache.commons.configuration2.builder.fluent.Configurations; +import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; +import java.io.File; +import java.io.FileWriter; import java.util.Random; import java.util.Timer; import java.util.TimerTask; @@ -27,12 +33,17 @@ import java.util.TimerTask; @Slf4j public class BullsAndCowsGameService { private BullsAndCowsGameController bullsAndCowsGameController; + private int daojishiTime = 0; + private int[] answerNumbers = new int[4]; + private int enterAnswerNumber = 0; + private Timer timer; private int recordNumber = 0; + private int recordTime = 0; public BullsAndCowsGameService(BullsAndCowsGameController bullsAndCowsGameController) { @@ -41,9 +52,9 @@ public class BullsAndCowsGameService { public void initRecordData() { try { -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(ConfigureUtil.getConfigureFile("BullsAndCowsGameConfigure.properties")); -// recordNumber = xmlConfigure.getInt("recordNumber", 0); -// recordTime = xmlConfigure.getInt("recordTime", 0); + PropertiesConfiguration xmlConfigure = new Configurations().properties(ConfigureUtil.getConfigureFile("BullsAndCowsGameConfigure.properties")); + recordNumber = xmlConfigure.getInt("recordNumber", 0); + recordTime = xmlConfigure.getInt("recordTime", 0); this.setRecordData(); } catch (Exception e) { log.error("加载配置失败!"); @@ -159,15 +170,15 @@ public class BullsAndCowsGameService { bullsAndCowsGameController.getRecordNumberLabel().setText("最少次数:第 " + recordNumber + " 次完成"); bullsAndCowsGameController.getRecordTimeLabel().setText("最短时间: " + hours + " 小时 " + minutes + " 分 " + seconds + " 秒"); }); -// try { -// File file = ConfigureUtil.getConfigureFile("BullsAndCowsGameConfigure.properties"); -// FileUtils.touch(file); -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(ConfigureUtil.getConfigureFile("BullsAndCowsGameConfigure.properties")); -// xmlConfigure.setProperty("recordNumber", recordNumber); -// xmlConfigure.setProperty("recordTime", recordTime); -// xmlConfigure.save(); -// } catch (Exception e) { -// log.error("保存配置失败!", e); -// } + try { + File file = ConfigureUtil.getConfigureFile("BullsAndCowsGameConfigure.properties"); + FileUtils.touch(file); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); + xmlConfigure.setProperty("recordNumber", recordNumber); + xmlConfigure.setProperty("recordTime", recordTime); + xmlConfigure.write(new FileWriter(file)); + } catch (Exception e) { + log.error("保存配置失败!", e); + } } } \ No newline at end of file diff --git a/littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/EmailToolApplication.java b/littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/EmailToolApplication.java new file mode 100644 index 00000000..4b095935 --- /dev/null +++ b/littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/EmailToolApplication.java @@ -0,0 +1,43 @@ +package com.xwintop.xJavaFxTool; + +import com.xwintop.xcore.util.javafx.JavaFxSystemUtil; +import javafx.application.Application; +import javafx.event.EventHandler; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.stage.Stage; +import javafx.stage.WindowEvent; +import lombok.extern.slf4j.Slf4j; + +import java.net.URL; +import java.util.ResourceBundle; + +@Slf4j +public class EmailToolApplication extends Application { + @Override + public void start(Stage primaryStage) throws Exception { + FXMLLoader fXMLLoader = EmailToolApplication.getFXMLLoader(); + ResourceBundle resourceBundle = fXMLLoader.getResources(); + Parent root = fXMLLoader.load(); + primaryStage.setResizable(true); + primaryStage.setTitle(resourceBundle.getString("Title")); +// primaryStage.getIcons().add(new Image("/images/icon.jpg")); + double[] screenSize = JavaFxSystemUtil.getScreenSizeByScale(0.74D, 0.8D); + primaryStage.setScene(new Scene(root, screenSize[0], screenSize[1])); + primaryStage.show(); + primaryStage.setOnCloseRequest(new EventHandler() { + @Override + public void handle(WindowEvent event) { + System.exit(0); + } + }); + } + + public static FXMLLoader getFXMLLoader() { + ResourceBundle resourceBundle = ResourceBundle.getBundle("locale.EmailTool"); + URL url = EmailToolApplication.class.getClassLoader().getResource("com/xwintop/xJavaFxTool/fxmlView/littleTools/EmailTool.fxml"); + FXMLLoader fXMLLoader = new FXMLLoader(url, resourceBundle); + return fXMLLoader; + } +} \ No newline at end of file diff --git a/littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/EmailToolMain.java b/littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/EmailToolMain.java index 4596be63..ae2be628 100644 --- a/littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/EmailToolMain.java +++ b/littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/EmailToolMain.java @@ -14,38 +14,8 @@ import java.net.URL; import java.util.ResourceBundle; @Slf4j -public class EmailToolMain extends Application { +public class EmailToolMain { public static void main(String[] args) { - try { - launch(args); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - public void start(Stage primaryStage) throws Exception { - FXMLLoader fXMLLoader = EmailToolMain.getFXMLLoader(); - ResourceBundle resourceBundle = fXMLLoader.getResources(); - Parent root = fXMLLoader.load(); - primaryStage.setResizable(true); - primaryStage.setTitle(resourceBundle.getString("Title")); -// primaryStage.getIcons().add(new Image("/images/icon.jpg")); - double[] screenSize = JavaFxSystemUtil.getScreenSizeByScale(0.74D, 0.8D); - primaryStage.setScene(new Scene(root, screenSize[0], screenSize[1])); - primaryStage.show(); - primaryStage.setOnCloseRequest(new EventHandler() { - @Override - public void handle(WindowEvent event) { - System.exit(0); - } - }); - } - - public static FXMLLoader getFXMLLoader() { - ResourceBundle resourceBundle = ResourceBundle.getBundle("locale.EmailTool"); - URL url = Object.class.getResource("/com/xwintop/xJavaFxTool/fxmlView/littleTools/EmailTool.fxml"); - FXMLLoader fXMLLoader = new FXMLLoader(url, resourceBundle); - return fXMLLoader; + Application.launch(EmailToolApplication.class, args); } } \ No newline at end of file diff --git a/littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/EmailToolService.java b/littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/EmailToolService.java index 431a7d27..916cc5c7 100644 --- a/littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/EmailToolService.java +++ b/littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/EmailToolService.java @@ -11,7 +11,8 @@ import javafx.stage.FileChooser; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.configuration.PropertiesConfiguration; +import org.apache.commons.configuration2.PropertiesConfiguration; +import org.apache.commons.configuration2.builder.fluent.Configurations; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.mail.EmailAttachment; @@ -21,6 +22,7 @@ import org.quartz.impl.StdSchedulerFactory; import javax.mail.internet.InternetAddress; import java.io.File; +import java.io.FileWriter; import java.net.URL; import java.util.ArrayList; import java.util.List; @@ -185,12 +187,12 @@ public class EmailToolService { public void saveConfigure(File file) throws Exception { FileUtils.touch(file); - PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); xmlConfigure.clear(); for (int i = 0; i < emailToolController.getTableData().size(); i++) { xmlConfigure.setProperty("tableBean" + i, emailToolController.getTableData().get(i).getPropertys()); } - xmlConfigure.save(); + xmlConfigure.write(new FileWriter(file)); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); } @@ -210,7 +212,7 @@ public class EmailToolService { public void loadingConfigure(File file) { try { emailToolController.getTableData().clear(); - PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); xmlConfigure.getKeys().forEachRemaining(new Consumer() { @Override public void accept(String t) { diff --git a/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileCopyService.java b/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileCopyService.java index 2c3cf658..210558f5 100644 --- a/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileCopyService.java +++ b/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileCopyService.java @@ -10,11 +10,14 @@ import javafx.stage.FileChooser; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.configuration2.PropertiesConfiguration; +import org.apache.commons.configuration2.builder.fluent.Configurations; import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; import java.io.File; +import java.io.FileWriter; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; @@ -45,13 +48,13 @@ public class FileCopyService { } public void saveConfigure(File file) throws Exception { -// FileUtils.touch(file); -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); -// xmlConfigure.clear(); -// for (int i = 0; i < tableData.size(); i++) { -// xmlConfigure.setProperty("tableBean" + i, tableData.get(i).getPropertys()); -// } -// xmlConfigure.save(); + FileUtils.touch(file); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); + xmlConfigure.clear(); + for (int i = 0; i < tableData.size(); i++) { + xmlConfigure.setProperty("tableBean" + i, tableData.get(i).getPropertys()); + } + xmlConfigure.write(new FileWriter(file)); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); } @@ -72,8 +75,8 @@ public class FileCopyService { public void loadingConfigure(File file) { try { tableData.clear(); -// PropertiesConfiguration xmlConfigure = new PropertiesConfiguration(file); -// xmlConfigure.getKeys().forEachRemaining(t -> tableData.add(new FileCopyTableBean(xmlConfigure.getString(t)))); + PropertiesConfiguration xmlConfigure = new Configurations().properties(file); + xmlConfigure.getKeys().forEachRemaining(t -> tableData.add(new FileCopyTableBean(xmlConfigure.getString(t)))); } catch (Exception e) { try { TooltipUtil.showToast("加载配置失败:" + e.getMessage()); diff --git a/xcore/build.gradle b/xcore/build.gradle index fb65543e..c799357b 100644 --- a/xcore/build.gradle +++ b/xcore/build.gradle @@ -6,11 +6,11 @@ dependencies { api 'org.controlsfx:controlsfx:11.2.0' api 'com.jfoenix:jfoenix:9.0.10' // api 'commons-codec:commons-codec:1.16.0' - api 'commons-configuration:commons-configuration:1.10' + api 'org.apache.commons:commons-configuration2:2.9.0' api 'commons-io:commons-io:2.15.1' api 'org.apache.commons:commons-lang3:3.14.0' api 'org.apache.commons:commons-text:1.11.0' -// api 'commons-beanutils:commons-beanutils:1.9.4' + api 'commons-beanutils:commons-beanutils:1.9.4' // api 'org.apache.commons:commons-imaging:1.0-alpha3' api 'cn.hutool:hutool-all:5.8.26' api 'com.alibaba.fastjson2:fastjson2:2.0.47' -- Gitee From 4a485ad4aeb6d9ded05e754cd863d538a66d636d Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Wed, 28 Feb 2024 10:53:51 +0800 Subject: [PATCH 18/27] =?UTF-8?q?1.=E5=B0=86configuration=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=8D=A2=E6=88=90json=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../codeTools/RegexTesterController.java | 12 ++--- .../src/main/resources/data/regexData.json | 50 +++++++++++++++++++ .../main/resources/data/regexData.properties | 48 ------------------ 3 files changed, 56 insertions(+), 54 deletions(-) create mode 100644 codeTools/x-RegexTester/src/main/resources/data/regexData.json delete mode 100644 codeTools/x-RegexTester/src/main/resources/data/regexData.properties diff --git a/codeTools/x-RegexTester/src/main/java/com/xwintop/xJavaFxTool/controller/codeTools/RegexTesterController.java b/codeTools/x-RegexTester/src/main/java/com/xwintop/xJavaFxTool/controller/codeTools/RegexTesterController.java index 9702d494..952012b7 100644 --- a/codeTools/x-RegexTester/src/main/java/com/xwintop/xJavaFxTool/controller/codeTools/RegexTesterController.java +++ b/codeTools/x-RegexTester/src/main/java/com/xwintop/xJavaFxTool/controller/codeTools/RegexTesterController.java @@ -10,6 +10,8 @@ package com.xwintop.xJavaFxTool.controller.codeTools; import cn.hutool.core.swing.clipboard.ClipboardUtil; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; import com.xwintop.xJavaFxTool.view.codeTools.RegexTesterView; import com.xwintop.xcore.util.javafx.JavaFxViewUtil; import javafx.event.ActionEvent; @@ -27,8 +29,6 @@ import javafx.scene.web.WebView; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.configuration2.PropertiesConfiguration; -import org.apache.commons.configuration2.builder.fluent.Configurations; import java.net.URL; import java.util.HashMap; @@ -60,13 +60,13 @@ public class RegexTesterController extends RegexTesterView { private void initView() throws Exception { examplesTableColumn0.setCellValueFactory(new MapValueFactory("column0")); examplesTableColumn1.setCellValueFactory(new MapValueFactory("column1")); - PropertiesConfiguration pcfg = new Configurations().properties(RegexTesterController.class.getResource("/data/regexData.properties")); - pcfg.getKeys().forEachRemaining((String key) -> { - Map map = new HashMap(); + JSONObject pcfg = JSON.parseObject(RegexTesterController.class.getResourceAsStream("/data/regexData.json")); + for (String key : pcfg.keySet()) { + Map map = new HashMap<>(); map.put("column0", key); map.put("column1", pcfg.getString(key)); examplesTableView.getItems().add(map); - }); + } matchTableColumn0.setCellValueFactory(new MapValueFactory("column0")); matchTableColumn1.setCellValueFactory(new MapValueFactory("column1")); matchTableColumn2.setCellValueFactory(new MapValueFactory("column2")); diff --git a/codeTools/x-RegexTester/src/main/resources/data/regexData.json b/codeTools/x-RegexTester/src/main/resources/data/regexData.json new file mode 100644 index 00000000..3bae4707 --- /dev/null +++ b/codeTools/x-RegexTester/src/main/resources/data/regexData.json @@ -0,0 +1,50 @@ +{ + "Email地址":"\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*", + "HTML标记":"<(\\S*?)[^>]*>.*?|<.*? />", + "IP地址":"\\d+\\.\\d+\\.\\d+\\.\\d+", + "m-n位的数字":"^d{m,n}$", + "n位的数字":"^d{n}$", + "xml文件":"^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$", + "中国邮政编码":"[1-9]\\d{5}(?!\\d)", + "中文字符":"[\\u4e00-\\u9fa5]", + "双字节字符":"[^\\x00-\\xff]", + "国内电话号码":"\\d{3}-\\d{8}|\\d{4}-\\d{7}", + "图片引用地址":"\\", + "域名":"[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?", + "多行文本":"([\\s\\S]*?)", + "帐号是否合法":"^[a-zA-Z][a-zA-Z0-9_]{4,15}$ (字母开头,允许5-16字节,允许字母数字下划线)", + "带1-2位小数的正数或负数":"^(-)?d+(.d{1,2})?$", + "手机号码":"^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])d{8}$", + "数字":"^[0-9]*$", + "整数":"^-?[1-9]\\d*$", + "日期格式":"^d{4}-d{1,2}-d{1,2}", + "有1~3位小数的正实数":"^[0-9]+(.[0-9]{1,3})?$", + "有两位小数的正实数":"^[0-9]+(.[0-9]{2})?$", + "正数、负数、和小数":"^(-|+)?d+(.d+)?$", + "正整数":"^[1-9]\\d*$", + "正浮点数":"^[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*$", + "浮点数":"^-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0)$", + "由26个英文字母的大写组成的字符串":"^[A-Z]+$", + "由26个英文字母的小写组成的字符串":"^[a-z]+$", + "由26个英文字母组成的字符串":"^[A-Za-z]+$", + "由数字、26个英文字母或者下划线组成的字符串":"^\\w+$", + "由数字和26个英文字母组成的字符串":"^[A-Za-z0-9]+$", + "空白行":"\\n\\s*\\r", + "空白行的正则表达式":"\\ns*\\r", + "网址URL":"[a-zA-z]+://[^\\s]*", + "腾讯QQ号":"[1-9][0-9]{4,}", + "至少n位的数字":"^d{n,}$", + "负整数":"^-[1-9]\\d*$", + "负浮点数":"^-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*)$", + "身份证":"\\d{15}|\\d{18}", + "身份证号(15位、18位数字),最后一位是校验位,可能为数字或字符X":"(^d{15}$)|(^d{18}$)|(^d{17}(d|X|x)$)", + "链接地址":"href *= *['\"]*(\\S+)[\"']", + "链接地址及标题":"\\(.[^\\<]*)?\\", + "零和非零开头的数字":"^(0|[1-9][0-9]*)$", + "非正整数(负整数+0)":"^-[1-9]\\d*|0$", + "非正浮点数(负浮点数+0)":"^(-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*))|0?\\.0+|0$", + "非负整数(正整数+0)":"^[1-9]\\d*|0$", + "非负浮点数(正浮点数+0)":"^[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0$", + "非零开头的最多带两位小数的数字":"^([1-9][0-9]*)+(.[0-9]{1,2})?$", + "首尾空白字符":"^\\s*|\\s*$" +} \ No newline at end of file diff --git a/codeTools/x-RegexTester/src/main/resources/data/regexData.properties b/codeTools/x-RegexTester/src/main/resources/data/regexData.properties deleted file mode 100644 index 18ce0af0..00000000 --- a/codeTools/x-RegexTester/src/main/resources/data/regexData.properties +++ /dev/null @@ -1,48 +0,0 @@ -HTML\u6807\u8bb0=<(\\S*?)[^>]*>.*?|<.*? /> -\u94fe\u63a5\u5730\u5740=href *= *['"]*(\\S+)["'] -\u94fe\u63a5\u5730\u5740\u53ca\u6807\u9898=\\(.[^\\<]*)?\\ -\u7f51\u5740URL=[a-zA-z]+://[^\\s]* -IP\u5730\u5740=\\d+\\.\\d+\\.\\d+\\.\\d+ -\u57df\u540d=[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.? -Email\u5730\u5740=\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)* -\u56fe\u7247\u5f15\u7528\u5730\u5740=\\ -\u591a\u884c\u6587\u672c=([\\s\\S]*?) -\u5e10\u53f7\u662f\u5426\u5408\u6cd5=^[a-zA-Z][a-zA-Z0-9_]{4,15}$ (\u5b57\u6bcd\u5f00\u5934\uff0c\u5141\u8bb85-16\u5b57\u8282\uff0c\u5141\u8bb8\u5b57\u6bcd\u6570\u5b57\u4e0b\u5212\u7ebf) -\u624b\u673a\u53f7\u7801=^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$ -\u56fd\u5185\u7535\u8bdd\u53f7\u7801=\\d{3}-\\d{8}|\\d{4}-\\d{7} -\u817e\u8bafQQ\u53f7=[1-9][0-9]{4,} -\u4e2d\u56fd\u90ae\u653f\u7f16\u7801=[1-9]\\d{5}(?!\\d) -\u8eab\u4efd\u8bc1=\\d{15}|\\d{18} -\u8eab\u4efd\u8bc1\u53f7(15\u4f4d\u300118\u4f4d\u6570\u5b57)\uff0c\u6700\u540e\u4e00\u4f4d\u662f\u6821\u9a8c\u4f4d\uff0c\u53ef\u80fd\u4e3a\u6570\u5b57\u6216\u5b57\u7b26X=(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$) -\u7a7a\u767d\u884c\u7684\u6b63\u5219\u8868\u8fbe\u5f0f=\\n\s*\\r -xml\u6587\u4ef6=^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$ -\u65e5\u671f\u683c\u5f0f=^\d{4}-\d{1,2}-\d{1,2} -\u4e2d\u6587\u5b57\u7b26=[\\u4e00-\\u9fa5] -\u53cc\u5b57\u8282\u5b57\u7b26=[^\\x00-\\xff] -\u7a7a\u767d\u884c=\\n\\s*\\r -\u9996\u5c3e\u7a7a\u767d\u5b57\u7b26=^\\s*|\\s*$ -\u753126\u4e2a\u82f1\u6587\u5b57\u6bcd\u7ec4\u6210\u7684\u5b57\u7b26\u4e32=^[A-Za-z]+$ -\u753126\u4e2a\u82f1\u6587\u5b57\u6bcd\u7684\u5927\u5199\u7ec4\u6210\u7684\u5b57\u7b26\u4e32=^[A-Z]+$ -\u753126\u4e2a\u82f1\u6587\u5b57\u6bcd\u7684\u5c0f\u5199\u7ec4\u6210\u7684\u5b57\u7b26\u4e32=^[a-z]+$ -\u7531\u6570\u5b57\u548c26\u4e2a\u82f1\u6587\u5b57\u6bcd\u7ec4\u6210\u7684\u5b57\u7b26\u4e32=^[A-Za-z0-9]+$ -\u7531\u6570\u5b57\u300126\u4e2a\u82f1\u6587\u5b57\u6bcd\u6216\u8005\u4e0b\u5212\u7ebf\u7ec4\u6210\u7684\u5b57\u7b26\u4e32=^\\w+$ -\u6b63\u6574\u6570=^[1-9]\\d*$ -\u8d1f\u6574\u6570=^-[1-9]\\d*$ -\u6574\u6570=^-?[1-9]\\d*$ -\u975e\u8d1f\u6574\u6570(\u6b63\u6574\u6570+0)=^[1-9]\\d*|0$ -\u975e\u6b63\u6574\u6570(\u8d1f\u6574\u6570+0)=^-[1-9]\\d*|0$ -\u6b63\u6d6e\u70b9\u6570=^[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*$ -\u8d1f\u6d6e\u70b9\u6570=^-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*)$ -\u6d6e\u70b9\u6570=^-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0)$ -\u975e\u8d1f\u6d6e\u70b9\u6570(\u6b63\u6d6e\u70b9\u6570+0)=^[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0$ -\u975e\u6b63\u6d6e\u70b9\u6570(\u8d1f\u6d6e\u70b9\u6570+0)=^(-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*))|0?\\.0+|0$ -\u6570\u5b57=^[0-9]*$ -n\u4f4d\u7684\u6570\u5b57=^\d{n}$ -\u81f3\u5c11n\u4f4d\u7684\u6570\u5b57=^\d{n,}$ -m-n\u4f4d\u7684\u6570\u5b57=^\d{m,n}$ -\u96f6\u548c\u975e\u96f6\u5f00\u5934\u7684\u6570\u5b57=^(0|[1-9][0-9]*)$ -\u975e\u96f6\u5f00\u5934\u7684\u6700\u591a\u5e26\u4e24\u4f4d\u5c0f\u6570\u7684\u6570\u5b57=^([1-9][0-9]*)+(.[0-9]{1,2})?$ -\u5e261-2\u4f4d\u5c0f\u6570\u7684\u6b63\u6570\u6216\u8d1f\u6570=^(\-)?\d+(\.\d{1,2})?$ -\u6b63\u6570\u3001\u8d1f\u6570\u3001\u548c\u5c0f\u6570=^(\-|\+)?\d+(\.\d+)?$ -\u6709\u4e24\u4f4d\u5c0f\u6570\u7684\u6b63\u5b9e\u6570=^[0-9]+(\.[0-9]{2})?$ -\u67091~3\u4f4d\u5c0f\u6570\u7684\u6b63\u5b9e\u6570=^[0-9]+(\.[0-9]{1,3})?$ -- Gitee From c9c8fd7d84ef0b000a4ce6f850517befaaccac93 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Thu, 29 Feb 2024 09:26:57 +0800 Subject: [PATCH 19/27] =?UTF-8?q?1.=E5=B0=86configuration=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=8D=A2=E6=88=90json=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../debugTools/ActiveMqToolService.java | 35 +++----- .../services/debugTools/CmdToolService.java | 30 +++---- .../debugTools/FtpClientToolService.java | 29 +++---- .../services/debugTools/FtpServerService.java | 42 ++++------ .../services/debugTools/KafkaToolService.java | 34 +++----- .../debugTools/ScriptEngineToolService.java | 29 +++---- .../games/BullsAndCowsGameService.java | 23 +++--- .../littleTools/EmailToolService.java | 45 +++++------ .../services/littleTools/FileCopyService.java | 17 ++-- .../services/littleTools/IconToolService.java | 6 +- .../com/xwintop/xJavaFxTool/utils/Config.java | 44 +--------- xJavaFxTool/src/main/java/module-info.java | 3 - xcore/build.gradle | 4 +- .../com/xwintop/xcore/util/ConfigureUtil.java | 80 +++++++++++++++++++ xcore/src/main/java/module-info.java | 5 +- 15 files changed, 196 insertions(+), 230 deletions(-) diff --git a/debugTools/x-ActiveMqTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ActiveMqToolService.java b/debugTools/x-ActiveMqTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ActiveMqToolService.java index dd44860f..ac90d69b 100644 --- a/debugTools/x-ActiveMqTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ActiveMqToolService.java +++ b/debugTools/x-ActiveMqTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ActiveMqToolService.java @@ -18,19 +18,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.command.ActiveMQBytesMessage; import org.apache.activemq.command.ActiveMQMapMessage; -import org.apache.commons.configuration2.PropertiesConfiguration; -import org.apache.commons.configuration2.builder.fluent.Configurations; -import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import javax.jms.*; import java.io.File; -import java.io.FileWriter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; -import java.util.function.Consumer; /** * @ClassName: ActiveMqToolService @@ -51,18 +46,15 @@ public class ActiveMqToolService { // Connection :JMS 客户端到JMS Provider 的连接 private Connection connection = null; - public void saveConfigure() throws Exception { - saveConfigure(ConfigureUtil.getConfigureFile("ActiveMqToolConfigure.properties")); + public void saveConfigure() { + saveConfigure(ConfigureUtil.getConfigureFile("ActiveMqToolConfigure.json")); } - public void saveConfigure(File file) throws Exception { - FileUtils.touch(file); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.clear(); + public void saveConfigure(File file) { + ConfigureUtil.getConfig(file).clear(); for (int i = 0; i < activeMqToolController.getTableData().size(); i++) { - xmlConfigure.setProperty("tableBean" + i, activeMqToolController.getTableData().get(i).getPropertys()); + ConfigureUtil.set(file, "tableBean" + i, activeMqToolController.getTableData().get(i).getPropertys()); } - xmlConfigure.write(new FileWriter(file)); Platform.runLater(() -> { TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); }); @@ -71,7 +63,7 @@ public class ActiveMqToolService { public void otherSaveConfigureAction() throws Exception { String fileName = "ActiveMqToolConfigure.properties"; File file = FileChooserUtil.chooseSaveFile(fileName, new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { saveConfigure(file); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); @@ -79,19 +71,16 @@ public class ActiveMqToolService { } public void loadingConfigure() { - loadingConfigure(ConfigureUtil.getConfigureFile("ActiveMqToolConfigure.properties")); + loadingConfigure(ConfigureUtil.getConfigureFile("ActiveMqToolConfigure.json")); } public void loadingConfigure(File file) { try { activeMqToolController.getTableData().clear(); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.getKeys().forEachRemaining(new Consumer() { - @Override - public void accept(String t) { - activeMqToolController.getTableData().add(new ActiveMqToolTableBean(xmlConfigure.getString(t))); - } - }); + Map xmlConfigure = ConfigureUtil.getConfig(file); + for (Object key : xmlConfigure.keySet()) { + activeMqToolController.getTableData().add(new ActiveMqToolTableBean((String) xmlConfigure.get(key))); + } } catch (Exception e) { try { TooltipUtil.showToast("加载配置失败:" + e.getMessage()); @@ -102,7 +91,7 @@ public class ActiveMqToolService { public void loadingConfigureAction() { File file = FileChooserUtil.chooseFile(new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { loadingConfigure(file); } diff --git a/debugTools/x-CmdTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/CmdToolService.java b/debugTools/x-CmdTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/CmdToolService.java index b035f6f8..4157dc48 100644 --- a/debugTools/x-CmdTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/CmdToolService.java +++ b/debugTools/x-CmdTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/CmdToolService.java @@ -11,16 +11,12 @@ import javafx.stage.FileChooser; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.configuration2.PropertiesConfiguration; -import org.apache.commons.configuration2.builder.fluent.Configurations; -import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; import java.io.File; -import java.io.FileWriter; -import java.util.function.Consumer; +import java.util.Map; /** * @ClassName: CmdToolService @@ -35,7 +31,7 @@ import java.util.function.Consumer; public class CmdToolService { private CmdToolController cmdToolController; - private String fileName = "cmdToolConfigure.properties"; + private String fileName = "cmdToolConfigure.json"; private SchedulerFactory sf = new StdSchedulerFactory(); @@ -156,19 +152,16 @@ public class CmdToolService { } public void saveConfigure(File file) throws Exception { - FileUtils.touch(file); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.clear(); + ConfigureUtil.getConfig(file).clear(); for (int i = 0; i < cmdToolController.getTableData().size(); i++) { - xmlConfigure.setProperty("tableBean" + i, cmdToolController.getTableData().get(i).getPropertys()); + ConfigureUtil.set(file, "tableBean" + i, cmdToolController.getTableData().get(i).getPropertys()); } - xmlConfigure.write(new FileWriter(file)); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); } public void otherSaveConfigureAction() throws Exception { File file = FileChooserUtil.chooseSaveFile(fileName, new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { saveConfigure(file); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); @@ -182,13 +175,10 @@ public class CmdToolService { public void loadingConfigure(File file) { try { cmdToolController.getTableData().clear(); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.getKeys().forEachRemaining(new Consumer() { - @Override - public void accept(String t) { - cmdToolController.getTableData().add(new CmdToolTableBean(xmlConfigure.getString(t))); - } - }); + Map xmlConfigure = ConfigureUtil.getConfig(file); + for (Object key : xmlConfigure.keySet()) { + cmdToolController.getTableData().add(new CmdToolTableBean((String) xmlConfigure.get(key))); + } } catch (Exception e) { try { log.error("加载配置失败:" + e.getMessage()); @@ -200,7 +190,7 @@ public class CmdToolService { public void loadingConfigureAction() { File file = FileChooserUtil.chooseFile(new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { loadingConfigure(file); } diff --git a/debugTools/x-FtpClientTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpClientToolService.java b/debugTools/x-FtpClientTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpClientToolService.java index c6a0e6d2..7b2f095d 100644 --- a/debugTools/x-FtpClientTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpClientToolService.java +++ b/debugTools/x-FtpClientTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpClientToolService.java @@ -14,8 +14,6 @@ import javafx.stage.FileChooser; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.configuration2.PropertiesConfiguration; -import org.apache.commons.configuration2.builder.fluent.Configurations; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.quartz.*; @@ -24,9 +22,8 @@ import org.quartz.impl.StdSchedulerFactory; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileOutputStream; -import java.io.FileWriter; +import java.util.Map; import java.util.Properties; -import java.util.function.Consumer; /** * @ClassName: FtpClientToolService @@ -41,7 +38,7 @@ import java.util.function.Consumer; public class FtpClientToolService { private FtpClientToolController ftpClientToolController; - private String fileName = "ftpClientToolConfigure.properties"; + private String fileName = "ftpClientToolConfigure.json"; private SchedulerFactory sf = new StdSchedulerFactory(); private String schedulerKeyGroup = "ftpClientTool"; private String schedulerKeyName = "ftpClientTool" + System.currentTimeMillis(); @@ -241,19 +238,16 @@ public class FtpClientToolService { } public void saveConfigure(File file) throws Exception { - FileUtils.touch(file); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.clear(); + ConfigureUtil.getConfig(file).clear(); for (int i = 0; i < ftpClientToolController.getTableData().size(); i++) { - xmlConfigure.setProperty("tableBean" + i, ftpClientToolController.getTableData().get(i).getPropertys()); + ConfigureUtil.set(file, "tableBean" + i, ftpClientToolController.getTableData().get(i).getPropertys()); } - xmlConfigure.write(new FileWriter(file)); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); } public void otherSaveConfigureAction() throws Exception { File file = FileChooserUtil.chooseSaveFile(fileName, new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { saveConfigure(file); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); @@ -267,13 +261,10 @@ public class FtpClientToolService { public void loadingConfigure(File file) { try { ftpClientToolController.getTableData().clear(); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.getKeys().forEachRemaining(new Consumer() { - @Override - public void accept(String t) { - ftpClientToolController.getTableData().add(new FtpClientToolTableBean(xmlConfigure.getString(t))); - } - }); + Map xmlConfigure = ConfigureUtil.getConfig(file); + for (Object key : xmlConfigure.keySet()) { + ftpClientToolController.getTableData().add(new FtpClientToolTableBean((String) xmlConfigure.get(key))); + } } catch (Exception e) { try { log.error("加载配置失败:", e); @@ -285,7 +276,7 @@ public class FtpClientToolService { public void loadingConfigureAction() { File file = FileChooserUtil.chooseFile(new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { loadingConfigure(file); } diff --git a/debugTools/x-FtpServer/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpServerService.java b/debugTools/x-FtpServer/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpServerService.java index d99da85b..9b0071fc 100644 --- a/debugTools/x-FtpServer/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpServerService.java +++ b/debugTools/x-FtpServer/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/FtpServerService.java @@ -5,10 +5,10 @@ import com.xwintop.xJavaFxTool.model.FtpServerTableBean; import com.xwintop.xcore.util.ConfigureUtil; import com.xwintop.xcore.util.javafx.FileChooserUtil; import com.xwintop.xcore.util.javafx.TooltipUtil; - -import org.apache.commons.configuration2.PropertiesConfiguration; -import org.apache.commons.configuration2.builder.fluent.Configurations; -import org.apache.commons.io.FileUtils; +import javafx.stage.FileChooser; +import lombok.Getter; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; import org.apache.ftpserver.ConnectionConfig; import org.apache.ftpserver.FtpServer; import org.apache.ftpserver.FtpServerFactory; @@ -20,15 +20,9 @@ import org.apache.ftpserver.usermanager.impl.TransferRatePermission; import org.apache.ftpserver.usermanager.impl.WritePermission; import java.io.File; -import java.io.FileWriter; import java.util.ArrayList; import java.util.List; -import java.util.function.Consumer; - -import javafx.stage.FileChooser; -import lombok.Getter; -import lombok.Setter; -import lombok.extern.slf4j.Slf4j; +import java.util.Map; /** * @ClassName: FtpServerService @@ -102,24 +96,21 @@ public class FtpServerService { } public void saveConfigure() throws Exception { - saveConfigure(ConfigureUtil.getConfigureFile("ftpServerConfigure.properties")); + saveConfigure(ConfigureUtil.getConfigureFile("ftpServerConfigure.json")); } public void saveConfigure(File file) throws Exception { - FileUtils.touch(file); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.clear(); + ConfigureUtil.getConfig(file).clear(); for (int i = 0; i < ftpServerController.getTableData().size(); i++) { - xmlConfigure.setProperty("tableBean" + i, ftpServerController.getTableData().get(i).getPropertys()); + ConfigureUtil.set(file, "tableBean" + i, ftpServerController.getTableData().get(i).getPropertys()); } - xmlConfigure.write(new FileWriter(file)); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); } public void otherSaveConfigureAction() throws Exception { String fileName = "ftpServerConfigure.properties"; File file = FileChooserUtil.chooseSaveFile(fileName, new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { saveConfigure(file); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); @@ -127,19 +118,16 @@ public class FtpServerService { } public void loadingConfigure() { - loadingConfigure(ConfigureUtil.getConfigureFile("ftpServerConfigure.properties")); + loadingConfigure(ConfigureUtil.getConfigureFile("ftpServerConfigure.json")); } public void loadingConfigure(File file) { try { ftpServerController.getTableData().clear(); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.getKeys().forEachRemaining(new Consumer() { - @Override - public void accept(String t) { - ftpServerController.getTableData().add(new FtpServerTableBean(xmlConfigure.getString(t))); - } - }); + Map xmlConfigure = ConfigureUtil.getConfig(file); + for (Object key : xmlConfigure.keySet()) { + ftpServerController.getTableData().add(new FtpServerTableBean((String) xmlConfigure.get(key))); + } } catch (Exception e) { try { log.error("加载配置失败:" + e.getMessage()); @@ -151,7 +139,7 @@ public class FtpServerService { public void loadingConfigureAction() { File file = FileChooserUtil.chooseFile(new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { loadingConfigure(file); } diff --git a/debugTools/x-KafkaTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/KafkaToolService.java b/debugTools/x-KafkaTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/KafkaToolService.java index caa6fd55..63e5f0eb 100644 --- a/debugTools/x-KafkaTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/KafkaToolService.java +++ b/debugTools/x-KafkaTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/KafkaToolService.java @@ -14,9 +14,6 @@ import javafx.stage.FileChooser; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.configuration2.PropertiesConfiguration; -import org.apache.commons.configuration2.builder.fluent.Configurations; -import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.apache.kafka.clients.consumer.ConsumerConfig; import org.apache.kafka.clients.consumer.ConsumerRecord; @@ -36,10 +33,8 @@ import org.springframework.kafka.listener.ContainerProperties; import javax.jms.Message; import java.io.File; -import java.io.FileWriter; import java.text.SimpleDateFormat; import java.util.*; -import java.util.function.Consumer; /** * @ClassName: KafkaToolService @@ -53,8 +48,11 @@ import java.util.function.Consumer; @Slf4j public class KafkaToolService { private KafkaToolController kafkaToolController; - private String fileName = "KafkaToolConfigure.properties"; + + private final String fileName = "KafkaToolConfigure.json"; + private ScheduleManager scheduleManager = new ScheduleManager(); + private Map receiverMessageMap = new HashMap(); private ConcurrentMessageListenerContainer concurrentMessageListenerContainer = null; @@ -64,13 +62,10 @@ public class KafkaToolService { } public void saveConfigure(File file) throws Exception { - FileUtils.touch(file); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.clear(); + ConfigureUtil.getConfig(file).clear(); for (int i = 0; i < kafkaToolController.getTableData().size(); i++) { - xmlConfigure.setProperty("tableBean" + i, kafkaToolController.getTableData().get(i).getPropertys()); + ConfigureUtil.set(file, "tableBean" + i, kafkaToolController.getTableData().get(i).getPropertys()); } - xmlConfigure.write(new FileWriter(file)); Platform.runLater(() -> { TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); }); @@ -78,7 +73,7 @@ public class KafkaToolService { public void otherSaveConfigureAction() throws Exception { File file = FileChooserUtil.chooseSaveFile(fileName, new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { saveConfigure(file); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); @@ -92,13 +87,10 @@ public class KafkaToolService { public void loadingConfigure(File file) { try { kafkaToolController.getTableData().clear(); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.getKeys().forEachRemaining(new Consumer() { - @Override - public void accept(String t) { - kafkaToolController.getTableData().add(new KafkaToolTableBean(xmlConfigure.getString(t))); - } - }); + Map xmlConfigure = ConfigureUtil.getConfig(file); + for (Object key : xmlConfigure.keySet()) { + kafkaToolController.getTableData().add(new KafkaToolTableBean((String) xmlConfigure.get(key))); + } } catch (Exception e) { try { TooltipUtil.showToast("加载配置失败:" + e.getMessage()); @@ -109,7 +101,7 @@ public class KafkaToolService { public void loadingConfigureAction() { File file = FileChooserUtil.chooseFile(new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { loadingConfigure(file); } @@ -236,7 +228,7 @@ public class KafkaToolService { log.info("msgValue" + record.value()); String timestamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(record.timestamp())); KafkaToolReceiverTableBean kafkaToolReceiverTableBean = new KafkaToolReceiverTableBean( - record.key(), record.topic(), record.value(), "String", timestamp, false); + record.key(), record.topic(), record.value(), "String", timestamp, false); kafkaToolController.getReceiverTableData().add(kafkaToolReceiverTableBean); } consumer.commitAsync(); diff --git a/debugTools/x-ScriptEngineTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ScriptEngineToolService.java b/debugTools/x-ScriptEngineTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ScriptEngineToolService.java index d6702d43..86d24229 100644 --- a/debugTools/x-ScriptEngineTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ScriptEngineToolService.java +++ b/debugTools/x-ScriptEngineTool/src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ScriptEngineToolService.java @@ -14,15 +14,10 @@ import javafx.stage.FileChooser; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.configuration2.PropertiesConfiguration; -import org.apache.commons.configuration2.builder.fluent.Configurations; -import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import java.io.File; -import java.io.FileWriter; import java.util.Map; -import java.util.function.Consumer; /** * @ClassName: ScriptEngineToolService @@ -37,7 +32,7 @@ import java.util.function.Consumer; public class ScriptEngineToolService { private ScriptEngineToolController scriptEngineToolController; - private String fileName = "scriptEngineToolConfigure.properties"; + private String fileName = "scriptEngineToolConfigure.json"; private ScheduleManager scheduleManager = new ScheduleManager(); @@ -164,19 +159,16 @@ public class ScriptEngineToolService { } public void saveConfigure(File file) throws Exception { - FileUtils.touch(file); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.clear(); + ConfigureUtil.getConfig(file).clear(); for (int i = 0; i < scriptEngineToolController.getTableData().size(); i++) { - xmlConfigure.setProperty("tableBean" + i, scriptEngineToolController.getTableData().get(i).getPropertys()); + ConfigureUtil.set(file, "tableBean" + i, scriptEngineToolController.getTableData().get(i).getPropertys()); } - xmlConfigure.write(new FileWriter(file)); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); } public void otherSaveConfigureAction() throws Exception { File file = FileChooserUtil.chooseSaveFile(fileName, new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { saveConfigure(file); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); @@ -190,13 +182,10 @@ public class ScriptEngineToolService { public void loadingConfigure(File file) { try { scriptEngineToolController.getTableData().clear(); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.getKeys().forEachRemaining(new Consumer() { - @Override - public void accept(String t) { - scriptEngineToolController.getTableData().add(new ScriptEngineToolTableBean(xmlConfigure.getString(t))); - } - }); + Map xmlConfigure = ConfigureUtil.getConfig(file); + for (Object key : xmlConfigure.keySet()) { + scriptEngineToolController.getTableData().add(new ScriptEngineToolTableBean((String) xmlConfigure.get(key))); + } } catch (Exception e) { try { log.error("加载配置失败:" + e.getMessage()); @@ -208,7 +197,7 @@ public class ScriptEngineToolService { public void loadingConfigureAction() { File file = FileChooserUtil.chooseFile(new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { loadingConfigure(file); } diff --git a/games/x-BullsAndCowsGame/src/main/java/com/xwintop/xJavaFxTool/services/games/BullsAndCowsGameService.java b/games/x-BullsAndCowsGame/src/main/java/com/xwintop/xJavaFxTool/services/games/BullsAndCowsGameService.java index 02bacbd7..1530167a 100644 --- a/games/x-BullsAndCowsGame/src/main/java/com/xwintop/xJavaFxTool/services/games/BullsAndCowsGameService.java +++ b/games/x-BullsAndCowsGame/src/main/java/com/xwintop/xJavaFxTool/services/games/BullsAndCowsGameService.java @@ -10,13 +10,8 @@ import javafx.scene.layout.HBox; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.configuration2.PropertiesConfiguration; -import org.apache.commons.configuration2.builder.fluent.Configurations; -import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; -import java.io.File; -import java.io.FileWriter; import java.util.Random; import java.util.Timer; import java.util.TimerTask; @@ -34,6 +29,8 @@ import java.util.TimerTask; public class BullsAndCowsGameService { private BullsAndCowsGameController bullsAndCowsGameController; + private final String CONFIG_FILE_NAME = "BullsAndCowsGameConfigure.json"; + private int daojishiTime = 0; private int[] answerNumbers = new int[4]; @@ -52,9 +49,11 @@ public class BullsAndCowsGameService { public void initRecordData() { try { - PropertiesConfiguration xmlConfigure = new Configurations().properties(ConfigureUtil.getConfigureFile("BullsAndCowsGameConfigure.properties")); - recordNumber = xmlConfigure.getInt("recordNumber", 0); - recordTime = xmlConfigure.getInt("recordTime", 0); + recordNumber = (int) ConfigureUtil.getOrDefault(CONFIG_FILE_NAME,"recordNumber", 0); + recordTime = (int) ConfigureUtil.getOrDefault(CONFIG_FILE_NAME,"recordTime", 0); +// PropertiesConfiguration xmlConfigure = new Configurations().properties(ConfigureUtil.getConfigureFile("BullsAndCowsGameConfigure.properties")); +// recordNumber = xmlConfigure.getInt("recordNumber", 0); +// recordTime = xmlConfigure.getInt("recordTime", 0); this.setRecordData(); } catch (Exception e) { log.error("加载配置失败!"); @@ -171,12 +170,8 @@ public class BullsAndCowsGameService { bullsAndCowsGameController.getRecordTimeLabel().setText("最短时间: " + hours + " 小时 " + minutes + " 分 " + seconds + " 秒"); }); try { - File file = ConfigureUtil.getConfigureFile("BullsAndCowsGameConfigure.properties"); - FileUtils.touch(file); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.setProperty("recordNumber", recordNumber); - xmlConfigure.setProperty("recordTime", recordTime); - xmlConfigure.write(new FileWriter(file)); + ConfigureUtil.set(CONFIG_FILE_NAME,"recordNumber", recordNumber); + ConfigureUtil.set(CONFIG_FILE_NAME,"recordTime", recordTime); } catch (Exception e) { log.error("保存配置失败!", e); } diff --git a/littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/EmailToolService.java b/littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/EmailToolService.java index 916cc5c7..c0b3dbf1 100644 --- a/littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/EmailToolService.java +++ b/littleTools/x-EmailTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/EmailToolService.java @@ -11,8 +11,6 @@ import javafx.stage.FileChooser; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.configuration2.PropertiesConfiguration; -import org.apache.commons.configuration2.builder.fluent.Configurations; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.mail.EmailAttachment; @@ -22,12 +20,10 @@ import org.quartz.impl.StdSchedulerFactory; import javax.mail.internet.InternetAddress; import java.io.File; -import java.io.FileWriter; import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.function.Consumer; /** * @ClassName: EmailToolService @@ -41,9 +37,12 @@ import java.util.function.Consumer; public class EmailToolService { private EmailToolController emailToolController; - private String fileName = "emailToolConfigure.properties"; + private String fileName = "emailToolConfigure.json"; + private SchedulerFactory sf = new StdSchedulerFactory(); + private String schedulerKeyGroup = "emailTool"; + private String schedulerKeyName = "emailTool" + System.currentTimeMillis(); public void runAllAction() { @@ -69,8 +68,8 @@ public class EmailToolService { toList.add(new InternetAddress(emailToolTableBean.getToEmail(), emailToolTableBean.getToEmailName())); email.setTo(toList); String htmlMsg = emailToolController.getMsgHtmlEditor().getHtmlText() - .replace("${1}", emailToolTableBean.getToEmail()) - .replace("${2}", emailToolTableBean.getToEmailName()); + .replace("${1}", emailToolTableBean.getToEmail()) + .replace("${2}", emailToolTableBean.getToEmailName()); email.setHtmlMsg(htmlMsg); email.send(); } @@ -145,12 +144,12 @@ public class EmailToolService { public boolean runQuartzAction(String quartzType, String cronText, int interval, int repeatCount) throws Exception { JobDetail jobDetail = JobBuilder.newJob(EmailToolJob.class) - .withIdentity(schedulerKeyName, schedulerKeyGroup).build(); + .withIdentity(schedulerKeyName, schedulerKeyGroup).build(); jobDetail.getJobDataMap().put("emailToolService", this); ScheduleBuilder scheduleBuilder = null; if ("简单表达式".equals(quartzType)) { scheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(interval)// 时间间隔 - .withRepeatCount(repeatCount);// 重复次数(将执行6次) + .withRepeatCount(repeatCount);// 重复次数(将执行6次) } else if ("Cron表达式".equals(quartzType)) { if (StringUtils.isEmpty(cronText)) { TooltipUtil.showToast("cron表达式不能为空。"); @@ -160,9 +159,9 @@ public class EmailToolService { } // 描叙触发Job执行的时间触发规则,Trigger实例化一个触发器 Trigger trigger = TriggerBuilder.newTrigger()// 创建一个新的TriggerBuilder来规范一个触发器 - .withIdentity(schedulerKeyName, schedulerKeyGroup)// 给触发器一个名字和组名 - .startNow()// 立即执行 - .withSchedule(scheduleBuilder).build();// 产生触发器 + .withIdentity(schedulerKeyName, schedulerKeyGroup)// 给触发器一个名字和组名 + .startNow()// 立即执行 + .withSchedule(scheduleBuilder).build();// 产生触发器 // 运行容器,使用SchedulerFactory创建Scheduler实例 Scheduler scheduler = sf.getScheduler(); @@ -186,19 +185,16 @@ public class EmailToolService { } public void saveConfigure(File file) throws Exception { - FileUtils.touch(file); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.clear(); + ConfigureUtil.getConfig(file).clear(); for (int i = 0; i < emailToolController.getTableData().size(); i++) { - xmlConfigure.setProperty("tableBean" + i, emailToolController.getTableData().get(i).getPropertys()); + ConfigureUtil.set(file, "tableBean" + i, emailToolController.getTableData().get(i).getPropertys()); } - xmlConfigure.write(new FileWriter(file)); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); } public void otherSaveConfigureAction() throws Exception { File file = FileChooserUtil.chooseSaveFile(fileName, new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { saveConfigure(file); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); @@ -212,13 +208,10 @@ public class EmailToolService { public void loadingConfigure(File file) { try { emailToolController.getTableData().clear(); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.getKeys().forEachRemaining(new Consumer() { - @Override - public void accept(String t) { - emailToolController.getTableData().add(new EmailToolTableBean(xmlConfigure.getString(t))); - } - }); + Map xmlConfigure = ConfigureUtil.getConfig(file); + for (Object key : xmlConfigure.keySet()) { + emailToolController.getTableData().add(new EmailToolTableBean((String) xmlConfigure.get(key))); + } } catch (Exception e) { try { log.error("加载配置失败:" + e.getMessage()); @@ -230,7 +223,7 @@ public class EmailToolService { public void loadingConfigureAction() { File file = FileChooserUtil.chooseFile(new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { loadingConfigure(file); } diff --git a/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileCopyService.java b/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileCopyService.java index 210558f5..3d2fe886 100644 --- a/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileCopyService.java +++ b/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileCopyService.java @@ -10,19 +10,17 @@ import javafx.stage.FileChooser; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.configuration2.PropertiesConfiguration; -import org.apache.commons.configuration2.builder.fluent.Configurations; import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; import java.io.File; -import java.io.FileWriter; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; import java.util.Collection; import java.util.Iterator; +import java.util.Map; /** * @ClassName: FileCopyService @@ -48,13 +46,10 @@ public class FileCopyService { } public void saveConfigure(File file) throws Exception { - FileUtils.touch(file); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.clear(); + ConfigureUtil.getConfig(file).clear(); for (int i = 0; i < tableData.size(); i++) { - xmlConfigure.setProperty("tableBean" + i, tableData.get(i).getPropertys()); + ConfigureUtil.set(file, "tableBean" + i, tableData.get(i).getPropertys()); } - xmlConfigure.write(new FileWriter(file)); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); } @@ -75,8 +70,10 @@ public class FileCopyService { public void loadingConfigure(File file) { try { tableData.clear(); - PropertiesConfiguration xmlConfigure = new Configurations().properties(file); - xmlConfigure.getKeys().forEachRemaining(t -> tableData.add(new FileCopyTableBean(xmlConfigure.getString(t)))); + Map xmlConfigure = ConfigureUtil.getConfig(file); + for (Object key : xmlConfigure.keySet()) { + tableData.add(new FileCopyTableBean((String) xmlConfigure.get(key))); + } } catch (Exception e) { try { TooltipUtil.showToast("加载配置失败:" + e.getMessage()); diff --git a/littleTools/x-IconTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/IconToolService.java b/littleTools/x-IconTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/IconToolService.java index 5cff013f..0b0d2f55 100644 --- a/littleTools/x-IconTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/IconToolService.java +++ b/littleTools/x-IconTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/IconToolService.java @@ -49,7 +49,7 @@ public class IconToolService { private IconToolController iconToolController; public void saveConfigure() throws Exception { - saveConfigure(ConfigureUtil.getConfigureFile("iconToolConfigure.properties")); + saveConfigure(ConfigureUtil.getConfigureFile("iconToolConfigure.json")); } /** @@ -88,7 +88,7 @@ public class IconToolService { public void otherSaveConfigureAction() throws Exception { String fileName = "iconToolConfigure.properties"; File file = FileChooserUtil.chooseSaveFile(fileName, new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { saveConfigure(file); TooltipUtil.showToast("保存配置成功,保存在:" + file.getPath()); @@ -137,7 +137,7 @@ public class IconToolService { public void loadingConfigureAction() { File file = FileChooserUtil.chooseFile(new FileChooser.ExtensionFilter("All File", "*.*"), - new FileChooser.ExtensionFilter("Properties", "*.properties")); + new FileChooser.ExtensionFilter("Properties", "*.json")); if (file != null) { loadingConfigure(file); } diff --git a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/utils/Config.java b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/utils/Config.java index dda05bac..28dac42f 100644 --- a/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/utils/Config.java +++ b/xJavaFxTool/src/main/java/com/xwintop/xJavaFxTool/utils/Config.java @@ -1,14 +1,8 @@ package com.xwintop.xJavaFxTool.utils; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; -import com.alibaba.fastjson2.JSONWriter; import com.xwintop.xcore.util.ConfigureUtil; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.io.FileUtils; -import java.io.File; -import java.nio.charset.StandardCharsets; import java.util.Locale; /* @@ -29,52 +23,22 @@ public class Config { NewLauncher } - private static JSONObject conf; - - public static JSONObject getConfig() { - try { - if (conf == null) { - conf = new JSONObject(); - File file = ConfigureUtil.getConfigureFile(CONFIG_FILE_NAME); - if (file.exists()) { - conf = JSON.parseObject(FileUtils.readFileToString(file, StandardCharsets.UTF_8)); - } - } - } catch (Exception e) { - log.error("加载本地配置失败:", e); - // 即使加载失败,也要返回一个内存中的 PropertiesConfiguration 对象,以免程序报错。 - conf = new JSONObject(); - } - - return conf; - } - - public static void saveConfig() { - File file = ConfigureUtil.getConfigureFile(CONFIG_FILE_NAME); - try { - FileUtils.writeStringToFile(file, conf.toJSONString(JSONWriter.Feature.WriteMapNullValue)); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - /** * 修改配置,修改后的值将会自动保存 */ public static void set(Keys key, Object value) { - getConfig().put(key.name(), value); - saveConfig(); + ConfigureUtil.set(CONFIG_FILE_NAME, key.name(), value); } public static String get(Keys key, String def) { - return (String) getConfig().getOrDefault(key.name(), def); + return (String) ConfigureUtil.getOrDefault(CONFIG_FILE_NAME, key.name(), def); } public static double getDouble(Keys key, double def) { - return (double) getConfig().getOrDefault(key.name(), def); + return ConfigureUtil.getDoubleOrDefault(CONFIG_FILE_NAME, key.name(), def); } public static boolean getBoolean(Keys key, boolean def) { - return (boolean) getConfig().getOrDefault(key.name(), def); + return (boolean) ConfigureUtil.getOrDefault(CONFIG_FILE_NAME, key.name(), def); } } diff --git a/xJavaFxTool/src/main/java/module-info.java b/xJavaFxTool/src/main/java/module-info.java index 3418de35..4269accc 100644 --- a/xJavaFxTool/src/main/java/module-info.java +++ b/xJavaFxTool/src/main/java/module-info.java @@ -15,7 +15,4 @@ module com.xwintop.xJavaFxTool { // requires okio; requires ch.qos.logback.classic; requires ch.qos.logback.core; - requires com.alibaba.fastjson2; - requires org.dom4j; - requires cn.hutool; } \ No newline at end of file diff --git a/xcore/build.gradle b/xcore/build.gradle index c799357b..98b48072 100644 --- a/xcore/build.gradle +++ b/xcore/build.gradle @@ -6,11 +6,11 @@ dependencies { api 'org.controlsfx:controlsfx:11.2.0' api 'com.jfoenix:jfoenix:9.0.10' // api 'commons-codec:commons-codec:1.16.0' - api 'org.apache.commons:commons-configuration2:2.9.0' +// api 'org.apache.commons:commons-configuration2:2.9.0' api 'commons-io:commons-io:2.15.1' api 'org.apache.commons:commons-lang3:3.14.0' api 'org.apache.commons:commons-text:1.11.0' - api 'commons-beanutils:commons-beanutils:1.9.4' +// api 'commons-beanutils:commons-beanutils:1.9.4' // api 'org.apache.commons:commons-imaging:1.0-alpha3' api 'cn.hutool:hutool-all:5.8.26' api 'com.alibaba.fastjson2:fastjson2:2.0.47' diff --git a/xcore/src/main/java/com/xwintop/xcore/util/ConfigureUtil.java b/xcore/src/main/java/com/xwintop/xcore/util/ConfigureUtil.java index f0897215..be4ba8d3 100644 --- a/xcore/src/main/java/com/xwintop/xcore/util/ConfigureUtil.java +++ b/xcore/src/main/java/com/xwintop/xcore/util/ConfigureUtil.java @@ -1,8 +1,20 @@ package com.xwintop.xcore.util; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.alibaba.fastjson2.JSONWriter; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.FileUtils; + import java.io.File; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Map; +@Slf4j public class ConfigureUtil { + private static Map configCache = new HashMap<>(); + public static String getConfigurePath() { return System.getProperty("user.home") + "/xJavaFxTool/"; } @@ -14,4 +26,72 @@ public class ConfigureUtil { public static File getConfigureFile(String fileName) { return new File(getConfigurePath(fileName)); } + + public static Map getConfig(File file) { + Map conf = configCache.get(file.getAbsolutePath()); + try { + if (conf == null) { + conf = new JSONObject(); + if (file.exists()) { + conf = JSON.parseObject(FileUtils.readFileToString(file, StandardCharsets.UTF_8)); + } + configCache.put(file.getAbsolutePath(), conf); + } + } catch (Exception e) { + log.error("加载本地配置失败:", e); + // 即使加载失败,也要返回一个内存中的 PropertiesConfiguration 对象,以免程序报错。 + conf = new JSONObject(); + } + return conf; + } + + public static Map getConfig(String fileName) { + return getConfig(ConfigureUtil.getConfigureFile(fileName)); + } + + public static void saveConfig(String fileName) { + saveConfig(ConfigureUtil.getConfigureFile(fileName)); + } + + public static void saveConfig(File file) { + try { + FileUtils.writeStringToFile(file, JSON.toJSONString(configCache.get(file.getAbsolutePath()), JSONWriter.Feature.PrettyFormat, JSONWriter.Feature.WriteMapNullValue)); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public static void set(String fileName, String key, Object value) { + set(ConfigureUtil.getConfigureFile(fileName), key, value); + } + + public static void set(File file, String key, Object value) { + getConfig(file).put(key, value); + saveConfig(file); + } + + public static Object get(String fileName, String key) { + return getConfig(fileName).get(key); + } + + public static Object get(File file, String key) { + return getConfig(file).get(key); + } + + public static Object getOrDefault(String fileName, String key, Object def) { + return getConfig(fileName).getOrDefault(key, def); + } + + public static Object getOrDefault(File file, String key, Object def) { + return getConfig(file).getOrDefault(key, def); + } + + public static Double getDouble(String fileName, String key) { + return ((JSONObject) getConfig(fileName)).getDouble(key); + } + + public static Double getDoubleOrDefault(String fileName, String key, Double def) { + Double value = getDouble(fileName, key); + return value != null ? value : def; + } } diff --git a/xcore/src/main/java/module-info.java b/xcore/src/main/java/module-info.java index cf688b8e..a4aff25c 100644 --- a/xcore/src/main/java/module-info.java +++ b/xcore/src/main/java/module-info.java @@ -21,6 +21,7 @@ open module com.xwintop.xcore { requires quartz; requires transitive javafx.swing; requires org.controlsfx.controls; - requires cn.hutool; - requires org.dom4j; + requires transitive cn.hutool; + requires transitive org.dom4j; + requires transitive com.alibaba.fastjson2; } -- Gitee From 06692433d978315505632b17e779667678f87b92 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Thu, 29 Feb 2024 09:46:10 +0800 Subject: [PATCH 20/27] =?UTF-8?q?1.=E7=A7=BB=E9=99=A4commons-text=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E5=8C=85=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/littleTools/FileBuildToolService.java | 4 ++-- xcore/build.gradle | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/littleTools/x-FileBuildTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileBuildToolService.java b/littleTools/x-FileBuildTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileBuildToolService.java index 0be84cf8..8b98b7df 100644 --- a/littleTools/x-FileBuildTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileBuildToolService.java +++ b/littleTools/x-FileBuildTool/src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileBuildToolService.java @@ -15,8 +15,8 @@ import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.text.StrSubstitutor; import org.apache.commons.lang3.time.DateFormatUtils; -import org.apache.commons.text.StringSubstitutor; import java.io.File; import java.io.IOException; @@ -48,7 +48,7 @@ public class FileBuildToolService { String fileName = fileBuildToolController.getFileNameTextField().getText(); int index = -1; for (Map fieldTableDatum : fileBuildToolController.getFieldTableData()) { - StringSubstitutor contentStringSubstitutor = new StringSubstitutor(fieldTableDatum, "${", "}"); + StrSubstitutor contentStringSubstitutor = new StrSubstitutor(fieldTableDatum, "${", "}"); contentStringSubstitutor.setEnableSubstitutionInVariables(true); String fileName1 = contentStringSubstitutor.replace(fileName); String content = contentStringSubstitutor.replace(fileTemplateText); diff --git a/xcore/build.gradle b/xcore/build.gradle index 98b48072..be2c10c1 100644 --- a/xcore/build.gradle +++ b/xcore/build.gradle @@ -9,7 +9,7 @@ dependencies { // api 'org.apache.commons:commons-configuration2:2.9.0' api 'commons-io:commons-io:2.15.1' api 'org.apache.commons:commons-lang3:3.14.0' - api 'org.apache.commons:commons-text:1.11.0' +// api 'org.apache.commons:commons-text:1.11.0' // api 'commons-beanutils:commons-beanutils:1.9.4' // api 'org.apache.commons:commons-imaging:1.0-alpha3' api 'cn.hutool:hutool-all:5.8.26' -- Gitee From 5da8709c29df742c686dfc83f172c4f565c70adf Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Fri, 1 Mar 2024 21:51:40 +0800 Subject: [PATCH 21/27] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E5=8C=85=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 4 ++++ .../debugTools/ZookeeperToolController.java | 2 +- developTools/x-JsonConvertTool/build.gradle | 1 + littleTools/x-Mp3ConvertTool/build.gradle | 2 +- xcore/build.gradle | 3 +-- .../util/javafx/TextFieldInputHistoryDialog.java | 12 +++++++----- xcore/src/main/java/module-info.java | 1 - 7 files changed, 15 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index 064c4b36..090efb21 100644 --- a/build.gradle +++ b/build.gradle @@ -32,6 +32,10 @@ allprojects { enabled = false } repositories { + maven { + allowInsecureProtocol = true + url 'https://repo1.maven.org/maven2/' + } maven { allowInsecureProtocol = true url 'https://maven.aliyun.com/repository/public' diff --git a/debugTools/x-ZookeeperTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/ZookeeperToolController.java b/debugTools/x-ZookeeperTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/ZookeeperToolController.java index a8ada036..34a5028e 100644 --- a/debugTools/x-ZookeeperTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/ZookeeperToolController.java +++ b/debugTools/x-ZookeeperTool/src/main/java/com/xwintop/xJavaFxTool/controller/debugTools/ZookeeperToolController.java @@ -31,7 +31,7 @@ import java.util.ResourceBundle; @Slf4j public class ZookeeperToolController extends ZookeeperToolView { private ZookeeperToolService zookeeperToolService = new ZookeeperToolService(this); - TextFieldInputHistoryDialog textFieldInputHistoryDialog = new TextFieldInputHistoryDialog(ConfigureUtil.getConfigurePath("zookeeperToolConfigure.properties"), "zkServers", "connectionTimeout"); + TextFieldInputHistoryDialog textFieldInputHistoryDialog = new TextFieldInputHistoryDialog(ConfigureUtil.getConfigurePath("zookeeperToolConfigure.json"), "zkServers", "connectionTimeout"); @Override public void initialize(URL location, ResourceBundle resources) { diff --git a/developTools/x-JsonConvertTool/build.gradle b/developTools/x-JsonConvertTool/build.gradle index 1fe2ea65..e22ce5b0 100644 --- a/developTools/x-JsonConvertTool/build.gradle +++ b/developTools/x-JsonConvertTool/build.gradle @@ -2,6 +2,7 @@ dependencies { // implementation 'com.xwintop:xcore:0.0.6' api project(':xcore') implementation 'commons-betwixt:commons-betwixt:0.8' + implementation 'org.yaml:snakeyaml:1.30' } group = 'com.xwintop' diff --git a/littleTools/x-Mp3ConvertTool/build.gradle b/littleTools/x-Mp3ConvertTool/build.gradle index 870c6a0c..846754b8 100644 --- a/littleTools/x-Mp3ConvertTool/build.gradle +++ b/littleTools/x-Mp3ConvertTool/build.gradle @@ -1,7 +1,7 @@ dependencies { // implementation 'com.xwintop:xcore:0.0.6' api project(':xcore') - implementation 'net.jthink:jaudiotagger:2.2.6-PATHRIK' + implementation 'net.jthink:jaudiotagger:3.0.1' } group = 'com.xwintop' diff --git a/xcore/build.gradle b/xcore/build.gradle index be2c10c1..4f51dc8d 100644 --- a/xcore/build.gradle +++ b/xcore/build.gradle @@ -4,7 +4,7 @@ dependencies { // api 'jaxen:jaxen:1.2.0' api 'org.quartz-scheduler:quartz:2.3.2' api 'org.controlsfx:controlsfx:11.2.0' - api 'com.jfoenix:jfoenix:9.0.10' + api 'org.rationalityfrontline.workaround:jfoenix:21.0.0' // api 'commons-codec:commons-codec:1.16.0' // api 'org.apache.commons:commons-configuration2:2.9.0' api 'commons-io:commons-io:2.15.1' @@ -14,7 +14,6 @@ dependencies { // api 'org.apache.commons:commons-imaging:1.0-alpha3' api 'cn.hutool:hutool-all:5.8.26' api 'com.alibaba.fastjson2:fastjson2:2.0.47' - api 'org.yaml:snakeyaml:1.30' } group = 'com.gitee.xwintop' diff --git a/xcore/src/main/java/com/xwintop/xcore/util/javafx/TextFieldInputHistoryDialog.java b/xcore/src/main/java/com/xwintop/xcore/util/javafx/TextFieldInputHistoryDialog.java index 8b1aaeba..10112775 100644 --- a/xcore/src/main/java/com/xwintop/xcore/util/javafx/TextFieldInputHistoryDialog.java +++ b/xcore/src/main/java/com/xwintop/xcore/util/javafx/TextFieldInputHistoryDialog.java @@ -1,5 +1,7 @@ package com.xwintop.xcore.util.javafx; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONWriter; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.control.*; @@ -9,7 +11,6 @@ import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; -import org.yaml.snakeyaml.Yaml; import java.io.File; import java.util.HashMap; @@ -31,8 +32,11 @@ import java.util.function.Function; @Slf4j public class TextFieldInputHistoryDialog { private ObservableList> tableData = FXCollections.observableArrayList(); + private String saveFilePath = null; + private String[] tableColumns = null; + private ContextMenu contextMenu = new ContextMenu(); public TextFieldInputHistoryDialog(String saveFilePath, String... tableColumns) { @@ -70,8 +74,7 @@ public class TextFieldInputHistoryDialog { if (!CONFIG_FILE.exists()) { FileUtils.touch(CONFIG_FILE); } - Yaml yaml = new Yaml(); - List> list = yaml.load(FileUtils.readFileToString(CONFIG_FILE, "UTF-8")); + List> list = JSON.parseObject(FileUtils.readFileToString(CONFIG_FILE, "UTF-8"), List.class); if (list != null) { this.tableData.addAll(list); } @@ -85,8 +88,7 @@ public class TextFieldInputHistoryDialog { if (StringUtils.isNotEmpty(saveFilePath)) { try { File CONFIG_FILE = new File(saveFilePath); - Yaml yaml = new Yaml(); - FileUtils.writeStringToFile(CONFIG_FILE, yaml.dump(this.tableData), "UTF-8"); + FileUtils.writeStringToFile(CONFIG_FILE, JSON.toJSONString(this.tableData, JSONWriter.Feature.PrettyFormat, JSONWriter.Feature.WriteMapNullValue), "UTF-8"); TooltipUtil.showToast("保存配置成功,保存在:" + CONFIG_FILE.getPath()); } catch (Exception e) { log.error("保存配置失败", e); diff --git a/xcore/src/main/java/module-info.java b/xcore/src/main/java/module-info.java index a4aff25c..f4b717ec 100644 --- a/xcore/src/main/java/module-info.java +++ b/xcore/src/main/java/module-info.java @@ -17,7 +17,6 @@ open module com.xwintop.xcore { requires com.jfoenix; requires transitive static lombok; requires transitive org.slf4j; - requires org.yaml.snakeyaml; requires quartz; requires transitive javafx.swing; requires org.controlsfx.controls; -- Gitee From ed2706d85776444ae306a48fb8e17545eec23a95 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Sat, 2 Mar 2024 14:59:14 +0800 Subject: [PATCH 22/27] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E6=89=93=E5=8C=85?= =?UTF-8?q?=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeTools/x-FileUnicodeTransformationTool/build.gradle | 5 +++++ .../src/main/java/us/deathmarine/luyten/ConfigSaver.java | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/codeTools/x-FileUnicodeTransformationTool/build.gradle b/codeTools/x-FileUnicodeTransformationTool/build.gradle index a48b8440..8c726e60 100644 --- a/codeTools/x-FileUnicodeTransformationTool/build.gradle +++ b/codeTools/x-FileUnicodeTransformationTool/build.gradle @@ -7,3 +7,8 @@ dependencies { group = 'com.xwintop' version = '0.0.1' description = 'x-FileUnicodeTransformationTool' + +//打jar包需要的配置 +jar { + from { configurations.compileClasspath.findAll { it.name.contains("juniversalchardet") }.collect { zipTree(it) } } +} \ No newline at end of file diff --git a/developTools/x-LuytenTool/src/main/java/us/deathmarine/luyten/ConfigSaver.java b/developTools/x-LuytenTool/src/main/java/us/deathmarine/luyten/ConfigSaver.java index 6d537589..3b70f458 100644 --- a/developTools/x-LuytenTool/src/main/java/us/deathmarine/luyten/ConfigSaver.java +++ b/developTools/x-LuytenTool/src/main/java/us/deathmarine/luyten/ConfigSaver.java @@ -121,11 +121,11 @@ public class ConfigSaver { field.set(newLuytenPrefs, prefs.get(prefId, defaultStr)); } else if (field.getType() == Boolean.class || field.getType() == boolean.class) { - Boolean defaultBool = (Boolean) (defaultVal == null ? new Boolean(false) : defaultVal); + Boolean defaultBool = (Boolean) (defaultVal == null ? Boolean.valueOf(false) : defaultVal); field.setBoolean(newLuytenPrefs, prefs.getBoolean(prefId, defaultBool)); } else if (field.getType() == Integer.class || field.getType() == int.class) { - Integer defaultInt = (Integer) (defaultVal == null ? new Integer(0) : defaultVal); + Integer defaultInt = (Integer) (defaultVal == null ? Integer.valueOf(0) : defaultVal); field.setInt(newLuytenPrefs, prefs.getInt(prefId, defaultInt)); } } @@ -177,10 +177,10 @@ public class ConfigSaver { prefs.put(prefId, (String) (value == null ? "" : value)); } else if (field.getType() == Boolean.class || field.getType() == boolean.class) { - prefs.putBoolean(prefId, (Boolean) (value == null ? new Boolean(false) : value)); + prefs.putBoolean(prefId, (Boolean) (value == null ? Boolean.valueOf(false) : value)); } else if (field.getType() == Integer.class || field.getType() == int.class) { - prefs.putInt(prefId, (Integer) (value == null ? new Integer(0) : value)); + prefs.putInt(prefId, (Integer) (value == null ? Integer.valueOf(0) : value)); } } } -- Gitee From b82e14166c5822721a82c54d0dee80299e632fb5 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Sun, 3 Mar 2024 18:32:30 +0800 Subject: [PATCH 23/27] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xwintop/xJavaFxTool/utils/SealUtil.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/littleTools/x-SealBuilderTool/src/main/java/com/xwintop/xJavaFxTool/utils/SealUtil.java b/littleTools/x-SealBuilderTool/src/main/java/com/xwintop/xJavaFxTool/utils/SealUtil.java index aae5382c..a246af6f 100644 --- a/littleTools/x-SealBuilderTool/src/main/java/com/xwintop/xJavaFxTool/utils/SealUtil.java +++ b/littleTools/x-SealBuilderTool/src/main/java/com/xwintop/xJavaFxTool/utils/SealUtil.java @@ -4,13 +4,11 @@ import lombok.Builder; import lombok.Getter; import lombok.Setter; -import javax.imageio.ImageIO; import java.awt.*; import java.awt.font.FontRenderContext; import java.awt.geom.AffineTransform; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; -import java.io.File; /** * @ClassName: SealUtil @@ -322,7 +320,7 @@ public class SealUtil { String c = font.getFontText().substring(subIndex, subIndex + 1); //获取文字高宽 - FontMetrics fm = sun.font.FontDesignMetrics.getMetrics(f); + FontMetrics fm = Toolkit.getDefaultToolkit().getFontMetrics(f); int w = fm.stringWidth(c), h = fm.getHeight(); if (isTop) { -- Gitee From c6e592669f2b614c19c8e830044b179255a0b650 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Mon, 4 Mar 2024 09:47:41 +0800 Subject: [PATCH 24/27] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 18 +-- xJavaFxTool/build.gradle | 154 ++++++++++----------- xJavaFxTool/src/main/java/module-info.java | 3 - xcore/build.gradle | 6 +- 4 files changed, 85 insertions(+), 96 deletions(-) diff --git a/build.gradle b/build.gradle index 090efb21..1b2cbd12 100644 --- a/build.gradle +++ b/build.gradle @@ -12,10 +12,12 @@ buildscript { } plugins { -// id 'application' id "org.gradlex.extra-java-module-info" version "1.7" id "org.beryx.jlink" version "2.26.0" id "org.openjfx.javafxplugin" version "0.1.0" + id 'idea' + id 'application' + id 'maven-publish' } allprojects { ext { @@ -27,7 +29,7 @@ allprojects { apply plugin: 'application' apply plugin: 'maven-publish' // 引入maven插件 apply plugin: 'org.openjfx.javafxplugin' -// sourceCompatibility = 17 + sourceCompatibility = 17 test {//跳过测试 enabled = false } @@ -46,7 +48,7 @@ allprojects { } mavenCentral() } - group = 'com.xwintop' +// group = 'com.xwintop' // version = '0.0.0.1' [compileJava, compileTestJava, javadoc]*.options*.encoding = "UTF-8" dependencies { @@ -71,12 +73,4 @@ allprojects { java { modularity.inferModulePath = true } -} - -//plugins { -// id 'java' -// id 'application' -// id 'maven-publish' -// id 'org.openjfx.javafxplugin' version '0.0.12' -// id 'org.beryx.jlink' version '2.24.4' -//} +} \ No newline at end of file diff --git a/xJavaFxTool/build.gradle b/xJavaFxTool/build.gradle index c598cb28..eeda1d13 100644 --- a/xJavaFxTool/build.gradle +++ b/xJavaFxTool/build.gradle @@ -5,81 +5,79 @@ plugins { dependencies { api project(':xcore') - api project(":littleTools:x-EncryptAndDecrypt") - api project(":littleTools:x-ZHConverter") - api project(":littleTools:x-ImageTool") - api project(":littleTools:x-IconTool") - api project(":littleTools:x-PdfConvertTool") - api project(":littleTools:x-QRCodeBuilder") - api project(":littleTools:x-FileCopy") - api project(":littleTools:x-FileMergeTool") - api project(":littleTools:x-TimeTool") - api project(":littleTools:x-CharacterConverter") - api project(":littleTools:x-BookManageSystem") - api project(":littleTools:x-CoordinateTransformTool") - api project(":littleTools:x-ElementaryArithmeticProblemTool") - api project(":littleTools:x-CronExpBuilder") - api project(":littleTools:x-EmailTool") - api project(":littleTools:x-ExcelSplitTool") - api project(":littleTools:x-FileBuildTool") - api project(":littleTools:x-FileCompressTool") - api project(":littleTools:x-FileRenameTool") - api project(":littleTools:x-FileSearchTool") - api project(":littleTools:x-HdfsTool") - api project(":littleTools:x-ImageAnalysisTool") - api project(":littleTools:x-JavaService") - api project(":littleTools:x-LinuxPathToWindowsPath") - api project(":littleTools:x-Mp3ConvertTool") - api project(":littleTools:x-RelationshipCalculator") - api project(":littleTools:x-SealBuilderTool") - api project(":littleTools:x-SedentaryReminderTool") - api project(":littleTools:x-SmsTool") - api project(":debugTools:x-CmdTool") - api project(":debugTools:x-ScanPortTool") - api project(":debugTools:x-SwitchHostsTool") - api project(":debugTools:x-SocketTool") - api project(":debugTools:x-ActiveMqTool") - api project(":debugTools:x-ExpressionParserTool") - api project(":debugTools:x-FtpClientTool") - api project(":debugTools:x-FtpServer") - api project(":debugTools:x-HbaseTool") - api project(":debugTools:x-HttpTool") - api project(":debugTools:x-KafkaTool") - api project(":debugTools:x-KeyTool") - api project(":debugTools:x-RedisTool") - api project(":debugTools:x-ScriptEngineTool") - api project(":debugTools:x-ZookeeperTool") - api project(":codeTools:x-RegexTester") - api project(":codeTools:x-RandomGeneratorTool") - api project(":codeTools:x-IdCardGenerator") - api project(":codeTools:x-CharsetDetectTool") - api project(":codeTools:x-ColorCodeConverterTool") - api project(":codeTools:x-EscapeCharacter") - api project(":codeTools:x-FileUnicodeTransformationTool") - api project(":codeTools:x-WebSourcesTool") - api project(":developTools:x-AsciiPicTool") - api project(":developTools:x-JsonConvertTool") - api project(":developTools:x-ClipboardHistoryTool") - api project(":developTools:x-DirectoryTreeTool") - api project(":developTools:x-LuytenTool") - api project(":developTools:x-PathWatchTool") - api project(":assistTools:x-TextToSpeechTool") - api project(":assistTools:x-DecompilerWxApkgTool") - api project(":assistTools:x-IdiomDataTool") - api project(":assistTools:x-WechatJumpGameTool") - api project(":games:x-X2048") - api project(":games:x-BullsAndCowsGame") - api project(":games:x-Sudoku") - api project(":games:x-ChineseChess") - api project(":games:x-SnakeJavaFx") - api project(":games:x-pet") - api project(":javaFxTools:x-JavaFxXmlToObjectCode") - api project(":javaFxTools:x-ShowSystemInfo") - api project(":webTools:x-ShortURL") - api project(":netWorkTools:x-WebCronExpBuilder") - api project(":netWorkTools:x-WebJsonEditor") -// implementation 'io.github.classgraph:classgraph:4.8.100' -// implementation 'com.gitee.xwintop:xcore:0.0.6-jdk17' +// api project(":littleTools:x-EncryptAndDecrypt") +// api project(":littleTools:x-ZHConverter") +// api project(":littleTools:x-ImageTool") +// api project(":littleTools:x-IconTool") +// api project(":littleTools:x-PdfConvertTool") +// api project(":littleTools:x-QRCodeBuilder") +// api project(":littleTools:x-FileCopy") +// api project(":littleTools:x-FileMergeTool") +// api project(":littleTools:x-TimeTool") +// api project(":littleTools:x-CharacterConverter") +// api project(":littleTools:x-BookManageSystem") +// api project(":littleTools:x-CoordinateTransformTool") +// api project(":littleTools:x-ElementaryArithmeticProblemTool") +// api project(":littleTools:x-CronExpBuilder") +// api project(":littleTools:x-EmailTool") +// api project(":littleTools:x-ExcelSplitTool") +// api project(":littleTools:x-FileBuildTool") +// api project(":littleTools:x-FileCompressTool") +// api project(":littleTools:x-FileRenameTool") +// api project(":littleTools:x-FileSearchTool") +// api project(":littleTools:x-HdfsTool") +// api project(":littleTools:x-ImageAnalysisTool") +// api project(":littleTools:x-JavaService") +// api project(":littleTools:x-LinuxPathToWindowsPath") +// api project(":littleTools:x-Mp3ConvertTool") +// api project(":littleTools:x-RelationshipCalculator") +// api project(":littleTools:x-SealBuilderTool") +// api project(":littleTools:x-SedentaryReminderTool") +// api project(":littleTools:x-SmsTool") +// api project(":debugTools:x-CmdTool") +// api project(":debugTools:x-ScanPortTool") +// api project(":debugTools:x-SwitchHostsTool") +// api project(":debugTools:x-SocketTool") +// api project(":debugTools:x-ActiveMqTool") +// api project(":debugTools:x-ExpressionParserTool") +// api project(":debugTools:x-FtpClientTool") +// api project(":debugTools:x-FtpServer") +// api project(":debugTools:x-HbaseTool") +// api project(":debugTools:x-HttpTool") +// api project(":debugTools:x-KafkaTool") +//// api project(":debugTools:x-KeyTool") +// api project(":debugTools:x-RedisTool") +// api project(":debugTools:x-ScriptEngineTool") +// api project(":debugTools:x-ZookeeperTool") +// api project(":codeTools:x-RegexTester") +// api project(":codeTools:x-RandomGeneratorTool") +// api project(":codeTools:x-IdCardGenerator") +// api project(":codeTools:x-CharsetDetectTool") +// api project(":codeTools:x-ColorCodeConverterTool") +// api project(":codeTools:x-EscapeCharacter") +// api project(":codeTools:x-FileUnicodeTransformationTool") +// api project(":codeTools:x-WebSourcesTool") +// api project(":developTools:x-AsciiPicTool") +// api project(":developTools:x-JsonConvertTool") +// api project(":developTools:x-ClipboardHistoryTool") +// api project(":developTools:x-DirectoryTreeTool") +// api project(":developTools:x-LuytenTool") +// api project(":developTools:x-PathWatchTool") +// api project(":assistTools:x-TextToSpeechTool") +// api project(":assistTools:x-DecompilerWxApkgTool") +// api project(":assistTools:x-IdiomDataTool") +// api project(":assistTools:x-WechatJumpGameTool") +// api project(":games:x-X2048") +// api project(":games:x-BullsAndCowsGame") +// api project(":games:x-Sudoku") +// api project(":games:x-ChineseChess") +// api project(":games:x-SnakeJavaFx") +// api project(":games:x-pet") +// api project(":javaFxTools:x-JavaFxXmlToObjectCode") +// api project(":javaFxTools:x-ShowSystemInfo") +// api project(":webTools:x-ShortURL") +// api project(":netWorkTools:x-WebCronExpBuilder") +// api project(":netWorkTools:x-WebJsonEditor") } group = 'com.xwintop' @@ -108,12 +106,12 @@ application { jlink { mergedModule { requires 'java.naming' - requires 'java.xml' +// requires 'java.xml' } - addExtraDependencies("javax.servlet") + addExtraDependencies("javafx") launcher { name = 'xJavaFxTool' -// mainClassName = 'com.xwintop.xJavaFxTool.XJavaFxToolMain' + mainClassName = 'com.xwintop.xJavaFxTool.XJavaFxToolMain' jvmArgs = ['-Dlogback.configurationFile=./logback.xml'] } } \ No newline at end of file diff --git a/xJavaFxTool/src/main/java/module-info.java b/xJavaFxTool/src/main/java/module-info.java index 4269accc..aa1fedfb 100644 --- a/xJavaFxTool/src/main/java/module-info.java +++ b/xJavaFxTool/src/main/java/module-info.java @@ -10,9 +10,6 @@ module com.xwintop.xJavaFxTool { requires com.xwintop.xcore; requires java.sql; - requires java.xml; -// requires io.github.classgraph; -// requires okio; requires ch.qos.logback.classic; requires ch.qos.logback.core; } \ No newline at end of file diff --git a/xcore/build.gradle b/xcore/build.gradle index 4f51dc8d..4a9682eb 100644 --- a/xcore/build.gradle +++ b/xcore/build.gradle @@ -24,7 +24,7 @@ compileJava { options.compilerArgs += ['--module-path', classpath.asPath] } -extraJavaModuleInfo { +//extraJavaModuleInfo { // module('quartz-2.3.2.jar','quartz','2.3.2') // module('jaxen-1.2.0.jar','jaxen','1.2.0') // module('commons-configuration-1.10.jar','commons-configuration','1.10') @@ -34,8 +34,8 @@ extraJavaModuleInfo { // module('c3p0-0.9.5.4.jar','c3p0','0.9.5.4') // module('mchange-commons-java-0.2.15.jar','mchange-commons-java','0.2.15') // module('dom4j-2.1.3.jar','dom4j','2.1.3') - deriveAutomaticModuleNamesFromFileNames.set(true) -} +// deriveAutomaticModuleNamesFromFileNames.set(true) +//} publishing { publications { -- Gitee From a600ada0d20243776cf43d9b3915f0bd3e186430 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Sun, 10 Mar 2024 21:57:48 +0800 Subject: [PATCH 25/27] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 1 + xJavaFxTool/build.gradle | 13 ++++++++++--- xcore/build.gradle | 28 ++++++++++++++-------------- xcore/src/main/java/module-info.java | 2 +- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/build.gradle b/build.gradle index 1b2cbd12..27dd8565 100644 --- a/build.gradle +++ b/build.gradle @@ -15,6 +15,7 @@ plugins { id "org.gradlex.extra-java-module-info" version "1.7" id "org.beryx.jlink" version "2.26.0" id "org.openjfx.javafxplugin" version "0.1.0" + id "com.gluonhq.gluonfx-gradle-plugin" version "1.0.22" id 'idea' id 'application' id 'maven-publish' diff --git a/xJavaFxTool/build.gradle b/xJavaFxTool/build.gradle index eeda1d13..ba7901db 100644 --- a/xJavaFxTool/build.gradle +++ b/xJavaFxTool/build.gradle @@ -110,8 +110,15 @@ jlink { } addExtraDependencies("javafx") launcher { - name = 'xJavaFxTool' - mainClassName = 'com.xwintop.xJavaFxTool.XJavaFxToolMain' - jvmArgs = ['-Dlogback.configurationFile=./logback.xml'] + name = application.applicationName + mainClassName = application.mainClass +// jvmArgs = ['-Dlogback.configurationFile=./logback.xml'] + } + jpackage { + outputDir = "build-package" + imageName = application.applicationName + skipInstaller = false + installerName = application.applicationName + appVersion = version.toString() } } \ No newline at end of file diff --git a/xcore/build.gradle b/xcore/build.gradle index 4a9682eb..85e35c18 100644 --- a/xcore/build.gradle +++ b/xcore/build.gradle @@ -17,12 +17,12 @@ dependencies { } group = 'com.gitee.xwintop' -version = '0.0.8-jdk17' +version = '0.0.8' description = 'xcore' -compileJava { - options.compilerArgs += ['--module-path', classpath.asPath] -} +//compileJava { +// options.compilerArgs += ['--module-path', classpath.asPath] +//} //extraJavaModuleInfo { // module('quartz-2.3.2.jar','quartz','2.3.2') @@ -37,14 +37,14 @@ compileJava { // deriveAutomaticModuleNamesFromFileNames.set(true) //} -publishing { - publications { - maven(MavenPublication) { - from(components.java) - } - } -} +//publishing { +// publications { +// maven(MavenPublication) { +// from(components.java) +// } +// } +//} -tasks.withType(JavaCompile) { - options.encoding = 'UTF-8' -} +//tasks.withType(JavaCompile) { +// options.encoding = 'UTF-8' +//} diff --git a/xcore/src/main/java/module-info.java b/xcore/src/main/java/module-info.java index f4b717ec..a388f119 100644 --- a/xcore/src/main/java/module-info.java +++ b/xcore/src/main/java/module-info.java @@ -17,7 +17,7 @@ open module com.xwintop.xcore { requires com.jfoenix; requires transitive static lombok; requires transitive org.slf4j; - requires quartz; + requires transitive quartz; requires transitive javafx.swing; requires org.controlsfx.controls; requires transitive cn.hutool; -- Gitee From e2aac6a2adf8b29df397d633ffffda94696a715a Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Sat, 16 Mar 2024 22:55:56 +0800 Subject: [PATCH 26/27] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9jlink=E6=89=93?= =?UTF-8?q?=E5=8C=85=E5=B7=A5=E5=85=B7=E7=B1=BB=E4=B8=BAruntime=E6=8F=92?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- xJavaFxTool/build.gradle | 217 ++++++++++-------- ...{module-info.java => module-info.java-bak} | 0 ...{module-info.java => module-info.java-bak} | 0 4 files changed, 128 insertions(+), 91 deletions(-) rename xJavaFxTool/src/main/java/{module-info.java => module-info.java-bak} (100%) rename xcore/src/main/java/{module-info.java => module-info.java-bak} (100%) diff --git a/build.gradle b/build.gradle index 27dd8565..d1d0c896 100644 --- a/build.gradle +++ b/build.gradle @@ -13,7 +13,7 @@ buildscript { plugins { id "org.gradlex.extra-java-module-info" version "1.7" - id "org.beryx.jlink" version "2.26.0" +// id "org.beryx.jlink" version "2.26.0" id "org.openjfx.javafxplugin" version "0.1.0" id "com.gluonhq.gluonfx-gradle-plugin" version "1.0.22" id 'idea' diff --git a/xJavaFxTool/build.gradle b/xJavaFxTool/build.gradle index ba7901db..75b37e27 100644 --- a/xJavaFxTool/build.gradle +++ b/xJavaFxTool/build.gradle @@ -1,87 +1,88 @@ plugins { - id "org.beryx.jlink" version "2.26.0" +// id "org.beryx.jlink" version "2.26.0" + id 'org.beryx.runtime' version '1.12.7' id "org.openjfx.javafxplugin" version "0.1.0" } dependencies { api project(':xcore') -// api project(":littleTools:x-EncryptAndDecrypt") -// api project(":littleTools:x-ZHConverter") -// api project(":littleTools:x-ImageTool") -// api project(":littleTools:x-IconTool") -// api project(":littleTools:x-PdfConvertTool") -// api project(":littleTools:x-QRCodeBuilder") -// api project(":littleTools:x-FileCopy") -// api project(":littleTools:x-FileMergeTool") -// api project(":littleTools:x-TimeTool") -// api project(":littleTools:x-CharacterConverter") -// api project(":littleTools:x-BookManageSystem") -// api project(":littleTools:x-CoordinateTransformTool") -// api project(":littleTools:x-ElementaryArithmeticProblemTool") -// api project(":littleTools:x-CronExpBuilder") -// api project(":littleTools:x-EmailTool") -// api project(":littleTools:x-ExcelSplitTool") -// api project(":littleTools:x-FileBuildTool") -// api project(":littleTools:x-FileCompressTool") -// api project(":littleTools:x-FileRenameTool") -// api project(":littleTools:x-FileSearchTool") -// api project(":littleTools:x-HdfsTool") -// api project(":littleTools:x-ImageAnalysisTool") -// api project(":littleTools:x-JavaService") -// api project(":littleTools:x-LinuxPathToWindowsPath") -// api project(":littleTools:x-Mp3ConvertTool") -// api project(":littleTools:x-RelationshipCalculator") -// api project(":littleTools:x-SealBuilderTool") -// api project(":littleTools:x-SedentaryReminderTool") -// api project(":littleTools:x-SmsTool") -// api project(":debugTools:x-CmdTool") -// api project(":debugTools:x-ScanPortTool") -// api project(":debugTools:x-SwitchHostsTool") -// api project(":debugTools:x-SocketTool") -// api project(":debugTools:x-ActiveMqTool") -// api project(":debugTools:x-ExpressionParserTool") -// api project(":debugTools:x-FtpClientTool") -// api project(":debugTools:x-FtpServer") -// api project(":debugTools:x-HbaseTool") -// api project(":debugTools:x-HttpTool") -// api project(":debugTools:x-KafkaTool") -//// api project(":debugTools:x-KeyTool") -// api project(":debugTools:x-RedisTool") -// api project(":debugTools:x-ScriptEngineTool") -// api project(":debugTools:x-ZookeeperTool") -// api project(":codeTools:x-RegexTester") -// api project(":codeTools:x-RandomGeneratorTool") -// api project(":codeTools:x-IdCardGenerator") -// api project(":codeTools:x-CharsetDetectTool") -// api project(":codeTools:x-ColorCodeConverterTool") -// api project(":codeTools:x-EscapeCharacter") -// api project(":codeTools:x-FileUnicodeTransformationTool") -// api project(":codeTools:x-WebSourcesTool") -// api project(":developTools:x-AsciiPicTool") -// api project(":developTools:x-JsonConvertTool") -// api project(":developTools:x-ClipboardHistoryTool") -// api project(":developTools:x-DirectoryTreeTool") -// api project(":developTools:x-LuytenTool") -// api project(":developTools:x-PathWatchTool") -// api project(":assistTools:x-TextToSpeechTool") -// api project(":assistTools:x-DecompilerWxApkgTool") -// api project(":assistTools:x-IdiomDataTool") -// api project(":assistTools:x-WechatJumpGameTool") -// api project(":games:x-X2048") -// api project(":games:x-BullsAndCowsGame") -// api project(":games:x-Sudoku") -// api project(":games:x-ChineseChess") -// api project(":games:x-SnakeJavaFx") -// api project(":games:x-pet") -// api project(":javaFxTools:x-JavaFxXmlToObjectCode") -// api project(":javaFxTools:x-ShowSystemInfo") -// api project(":webTools:x-ShortURL") -// api project(":netWorkTools:x-WebCronExpBuilder") -// api project(":netWorkTools:x-WebJsonEditor") + api project(":littleTools:x-EncryptAndDecrypt") + api project(":littleTools:x-ZHConverter") + api project(":littleTools:x-ImageTool") + api project(":littleTools:x-IconTool") + api project(":littleTools:x-PdfConvertTool") + api project(":littleTools:x-QRCodeBuilder") + api project(":littleTools:x-FileCopy") + api project(":littleTools:x-FileMergeTool") + api project(":littleTools:x-TimeTool") + api project(":littleTools:x-CharacterConverter") + api project(":littleTools:x-BookManageSystem") + api project(":littleTools:x-CoordinateTransformTool") + api project(":littleTools:x-ElementaryArithmeticProblemTool") + api project(":littleTools:x-CronExpBuilder") + api project(":littleTools:x-EmailTool") + api project(":littleTools:x-ExcelSplitTool") + api project(":littleTools:x-FileBuildTool") + api project(":littleTools:x-FileCompressTool") + api project(":littleTools:x-FileRenameTool") + api project(":littleTools:x-FileSearchTool") + api project(":littleTools:x-HdfsTool") + api project(":littleTools:x-ImageAnalysisTool") + api project(":littleTools:x-JavaService") + api project(":littleTools:x-LinuxPathToWindowsPath") + api project(":littleTools:x-Mp3ConvertTool") + api project(":littleTools:x-RelationshipCalculator") + api project(":littleTools:x-SealBuilderTool") + api project(":littleTools:x-SedentaryReminderTool") + api project(":littleTools:x-SmsTool") + api project(":debugTools:x-CmdTool") + api project(":debugTools:x-ScanPortTool") + api project(":debugTools:x-SwitchHostsTool") + api project(":debugTools:x-SocketTool") + api project(":debugTools:x-ActiveMqTool") + api project(":debugTools:x-ExpressionParserTool") + api project(":debugTools:x-FtpClientTool") + api project(":debugTools:x-FtpServer") + api project(":debugTools:x-HbaseTool") + api project(":debugTools:x-HttpTool") + api project(":debugTools:x-KafkaTool") +// api project(":debugTools:x-KeyTool") + api project(":debugTools:x-RedisTool") + api project(":debugTools:x-ScriptEngineTool") + api project(":debugTools:x-ZookeeperTool") + api project(":codeTools:x-RegexTester") + api project(":codeTools:x-RandomGeneratorTool") + api project(":codeTools:x-IdCardGenerator") + api project(":codeTools:x-CharsetDetectTool") + api project(":codeTools:x-ColorCodeConverterTool") + api project(":codeTools:x-EscapeCharacter") + api project(":codeTools:x-FileUnicodeTransformationTool") + api project(":codeTools:x-WebSourcesTool") + api project(":developTools:x-AsciiPicTool") + api project(":developTools:x-JsonConvertTool") + api project(":developTools:x-ClipboardHistoryTool") + api project(":developTools:x-DirectoryTreeTool") + api project(":developTools:x-LuytenTool") + api project(":developTools:x-PathWatchTool") + api project(":assistTools:x-TextToSpeechTool") + api project(":assistTools:x-DecompilerWxApkgTool") + api project(":assistTools:x-IdiomDataTool") + api project(":assistTools:x-WechatJumpGameTool") + api project(":games:x-X2048") + api project(":games:x-BullsAndCowsGame") + api project(":games:x-Sudoku") + api project(":games:x-ChineseChess") + api project(":games:x-SnakeJavaFx") + api project(":games:x-pet") + api project(":javaFxTools:x-JavaFxXmlToObjectCode") + api project(":javaFxTools:x-ShowSystemInfo") + api project(":webTools:x-ShortURL") + api project(":netWorkTools:x-WebCronExpBuilder") + api project(":netWorkTools:x-WebJsonEditor") } group = 'com.xwintop' -version = '0.2.3-jdk17' +version = '1.2.3' description = 'xJavaFxTool' compileJava { @@ -99,26 +100,62 @@ application { "-XX:+ShowCodeDetailsInExceptionMessages", "-Dsun.java2d.opengl=true", // 不添加此参数,打包成exe后,https协议的网络图片资源无法加载 - "-Dhttps.protocols=TLSv1.1,TLSv1.2" + "-Dhttps.protocols=TLSv1.1,TLSv1.2", + '--add-exports=javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED', + '--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED', + '--add-exports=javafx.graphics/com.sun.javafx.util=ALL-UNNAMED', + '--add-exports=javafx.graphics/com.sun.javafx.stage=ALL-UNNAMED', + '--add-exports=javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED', + '--add-exports=javafx.base/com.sun.javafx.event=ALL-UNNAMED', + '--add-opens=java.base/java.lang.reflect=ALL-UNNAMED' ] } -jlink { - mergedModule { - requires 'java.naming' -// requires 'java.xml' - } - addExtraDependencies("javafx") +// 使用 https://badass-runtime-plugin.beryx.org/releases/latest/ +// 插件 Badass-Runtime plugin 需要将主类单独抽离出来,这里使用Launcher作为启动类,不然的话,会提示没有加载Java FX组件 +runtime { + options.set(['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']) + modules.set([ + 'java.desktop', + 'java.xml', + 'jdk.unsupported', + 'jdk.jfr', + 'jdk.unsupported.desktop', + 'java.datatransfer', + 'java.scripting', + 'java.rmi', + 'java.sql', + 'java.naming', + 'java.compiler', + 'java.logging', + 'java.management']) launcher { - name = application.applicationName - mainClassName = application.mainClass -// jvmArgs = ['-Dlogback.configurationFile=./logback.xml'] + // 如果构建后无法启动并且无法知晓异常时,可以将此参数配置为false, + // 然后执行 gradle runtime,会得到bat方式的可执行程序,在cmd中运行对应bat,可以看到对应异常 + noConsole = true } jpackage { - outputDir = "build-package" imageName = application.applicationName - skipInstaller = false - installerName = application.applicationName - appVersion = version.toString() + imageOptions.addAll(['--icon', 'src/main/resources/images/icon.jpg']) } -} \ No newline at end of file +} + +//jlink { +// mergedModule { +// requires 'java.naming' +//// requires 'java.xml' +// } +// addExtraDependencies("javafx") +// launcher { +// name = application.applicationName +// mainClassName = application.mainClass +//// jvmArgs = ['-Dlogback.configurationFile=./logback.xml'] +// } +// jpackage { +// outputDir = "build-package" +// imageName = application.applicationName +// skipInstaller = false +// installerName = application.applicationName +// appVersion = version.toString() +// } +//} \ No newline at end of file diff --git a/xJavaFxTool/src/main/java/module-info.java b/xJavaFxTool/src/main/java/module-info.java-bak similarity index 100% rename from xJavaFxTool/src/main/java/module-info.java rename to xJavaFxTool/src/main/java/module-info.java-bak diff --git a/xcore/src/main/java/module-info.java b/xcore/src/main/java/module-info.java-bak similarity index 100% rename from xcore/src/main/java/module-info.java rename to xcore/src/main/java/module-info.java-bak -- Gitee From 84bcbbc165e1f9d90459f8ea5115eb54a42d2cf4 Mon Sep 17 00:00:00 2001 From: xufeng <1277032935@qq.com> Date: Sun, 17 Mar 2024 17:33:02 +0800 Subject: [PATCH 27/27] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E9=83=A8=E5=88=86?= =?UTF-8?q?=E8=AD=A6=E5=91=8A=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../javaFxTools/ShowSystemInfoService.java | 4 ++-- .../littleTools/FileCopyController.java | 2 ++ xJavaFxTool/build.gradle | 1 + .../xwintop/xcore/util/javafx/AlertUtil.java | 21 ++++++++++++------- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/javaFxTools/x-ShowSystemInfo/src/main/java/com/xwintop/xJavaFxTool/services/javaFxTools/ShowSystemInfoService.java b/javaFxTools/x-ShowSystemInfo/src/main/java/com/xwintop/xJavaFxTool/services/javaFxTools/ShowSystemInfoService.java index 8e56602e..d890ed27 100644 --- a/javaFxTools/x-ShowSystemInfo/src/main/java/com/xwintop/xJavaFxTool/services/javaFxTools/ShowSystemInfoService.java +++ b/javaFxTools/x-ShowSystemInfo/src/main/java/com/xwintop/xJavaFxTool/services/javaFxTools/ShowSystemInfoService.java @@ -44,7 +44,7 @@ public class ShowSystemInfoService { series[i] = new XYChart.Series(); series[i].setName("第" + (i + 1) + "块CPU信息"); } - showSystemInfoController.getOverviewCpuLineChart().getData().addAll(series); + showSystemInfoController.getOverviewCpuLineChart().getData().addAll(new Object[]{series}); showSystemInfoController.getOverviewCpuLineChart().getXAxis().setTickLabelsVisible(false); showSystemInfoController.getOverviewCpuLineChart().getYAxis().setMaxHeight(1); Timer timer = new Timer(); @@ -116,7 +116,7 @@ public class ShowSystemInfoService { series[i * 2 + 1] = new XYChart.Series(); series[i * 2 + 1].setName("磁盘:" + i + "writes"); } - showSystemInfoController.getOverviewDiskLineChart().getData().addAll(series); + showSystemInfoController.getOverviewDiskLineChart().getData().addAll(new Object[]{series}); showSystemInfoController.getOverviewDiskLineChart().getXAxis().setTickLabelsVisible(false); Timer timer = new Timer(); timerList.add(timer); diff --git a/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/FileCopyController.java b/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/FileCopyController.java index 803d5cb8..31bab3d7 100644 --- a/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/FileCopyController.java +++ b/littleTools/x-FileCopy/src/main/java/com/xwintop/xJavaFxTool/controller/littleTools/FileCopyController.java @@ -22,6 +22,7 @@ import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.control.cell.TextFieldTableCell; import javafx.scene.input.MouseButton; import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import java.io.File; @@ -36,6 +37,7 @@ import java.util.ResourceBundle; */ @Slf4j @Data +@EqualsAndHashCode(callSuper=false) public class FileCopyController extends FileCopyView { private FileCopyService fileCopyService = new FileCopyService(this); private ObservableList tableData = FXCollections.observableArrayList(); diff --git a/xJavaFxTool/build.gradle b/xJavaFxTool/build.gradle index 75b37e27..a4812054 100644 --- a/xJavaFxTool/build.gradle +++ b/xJavaFxTool/build.gradle @@ -2,6 +2,7 @@ plugins { // id "org.beryx.jlink" version "2.26.0" id 'org.beryx.runtime' version '1.12.7' id "org.openjfx.javafxplugin" version "0.1.0" + id "com.gluonhq.gluonfx-gradle-plugin" version "1.0.22" } dependencies { diff --git a/xcore/src/main/java/com/xwintop/xcore/util/javafx/AlertUtil.java b/xcore/src/main/java/com/xwintop/xcore/util/javafx/AlertUtil.java index ab33c40c..8e37ca76 100644 --- a/xcore/src/main/java/com/xwintop/xcore/util/javafx/AlertUtil.java +++ b/xcore/src/main/java/com/xwintop/xcore/util/javafx/AlertUtil.java @@ -26,16 +26,18 @@ public class AlertUtil { /** * 信息提示框 - * @deprecated 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} + * 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} */ + @Deprecated public static void showInfoAlert(String message) { showInfoAlert("提示", message); } /** * 信息提示框 - * @deprecated 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} + * 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} */ + @Deprecated public static void showInfoAlert(String title, String message) { new FxDialog<>() .setOwner(FxApp.primaryStage) @@ -48,32 +50,36 @@ public class AlertUtil { /** * 确定提示框 - * @deprecated 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} + * 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} */ + @Deprecated public static boolean confirmYesNo(String title, String message) { return confirm(title, message, ButtonType.YES, ButtonType.NO) == ButtonType.YES; } /** * 确定提示框 - * @deprecated 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} + * 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} */ + @Deprecated public static boolean confirmOkCancel(String title, String message) { return confirm(title, message, ButtonType.OK, ButtonType.CANCEL) == ButtonType.OK; } /** * 确定提示框 - * @deprecated 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} + * 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} */ + @Deprecated public static ButtonType confirmYesNoCancel(String title, String message) { return confirm(title, message, ButtonType.YES, ButtonType.NO, ButtonType.CANCEL); } /** * 确定提示框 - * @deprecated 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} + * 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} */ + @Deprecated public static ButtonType confirm( String title, String message, ButtonType positiveButtonType, ButtonType... negativeButtonTypes ) { @@ -143,8 +149,9 @@ public class AlertUtil { ////////////////////////////////////////////////////////////// /** - * @deprecated 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} + * 使用 {@link com.xwintop.xcore.javafx.dialog.FxAlerts} */ + @Deprecated public static boolean showConfirmAlert(String message) { VBox vBox = new VBox(15); vBox.setAlignment(Pos.CENTER); -- Gitee