From 9808d49377b2b78e864a3762ac55308c749115ec Mon Sep 17 00:00:00 2001 From: kb <769801958@qq.com> Date: Sat, 19 Aug 2023 22:57:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E8=A7=A3=E6=9E=90json?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 7 +++--- src/main/java/module-info.java | 5 ++-- .../controller/manager/ShortcutKey.java | 24 +++++++++++-------- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/pom.xml b/pom.xml index f9f3466..e6fde4c 100644 --- a/pom.xml +++ b/pom.xml @@ -33,10 +33,11 @@ test - cn.hutool - hutool-all - 5.8.20 + com.google.code.gson + gson + 2.10.1 + diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index db8498c..c4adc8c 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -1,8 +1,9 @@ module org.jcnc.jnotepad { requires javafx.controls; requires atlantafx.base; - requires cn.hutool; - +// requires cn.hutool.json; +// requires cn.hutool.core; + requires com.google.gson; exports org.jcnc.jnotepad; exports org.jcnc.jnotepad.tool; exports org.jcnc.jnotepad.Interface; diff --git a/src/main/java/org/jcnc/jnotepad/controller/manager/ShortcutKey.java b/src/main/java/org/jcnc/jnotepad/controller/manager/ShortcutKey.java index 6b7e330..1b44ea5 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/manager/ShortcutKey.java +++ b/src/main/java/org/jcnc/jnotepad/controller/manager/ShortcutKey.java @@ -1,9 +1,8 @@ package org.jcnc.jnotepad.controller.manager; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; -import javafx.scene.control.Menu; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.reflect.TypeToken; import javafx.scene.control.MenuItem; import javafx.scene.input.KeyCombination; import org.jcnc.jnotepad.Interface.ShortcutKeyInterface; @@ -26,15 +25,20 @@ public class ShortcutKey implements ShortcutKeyInterface { // 读取json文件 String jsonData = FileUtil.getJsonStr(jsonFile); // 转json对象 - JSONObject shortcutKeyConfig = JSONUtil.parseObj(jsonData); - for (Map.Entry stringObjectEntry : shortcutKeyConfig) { + GsonBuilder gsonBuilder = new GsonBuilder(); + Gson gson = gsonBuilder.create(); + Map shortcutKeyConfig = gson.fromJson(jsonData, new TypeToken>() { + }.getType()); + for (Map.Entry stringObjectEntry : shortcutKeyConfig.entrySet()) { // 保证json的key必须和变量名一致 MenuItem menuItem = ViewManager.itemMap.get(stringObjectEntry.getKey()); - String shortKeyValue = stringObjectEntry.getValue().toString(); - if (ObjectUtil.isNotEmpty(shortKeyValue)&&ObjectUtil.isNotEmpty(menuItem)) { - // 动态添加快捷键 - menuItem.setAccelerator(KeyCombination.keyCombination(shortKeyValue)); + String shortKeyValue = stringObjectEntry.getValue(); + + if ("".equals(shortKeyValue) || Objects.isNull(menuItem)) { + continue; } + // 动态添加快捷键 + menuItem.setAccelerator(KeyCombination.keyCombination(shortKeyValue)); } -- Gitee