From bd3bff528cd466ae1a25f2d5e019939726895738 Mon Sep 17 00:00:00 2001 From: gewuyou <1063891901@qq.com> Date: Wed, 13 Sep 2023 19:13:55 +0800 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=20=E9=87=8D=E6=9E=84=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/module-info.java | 1 + .../ui/module/LineNumberTextArea.java | 9 ++-- .../center/main/center/tab/CenterTab.java | 3 +- .../left/sidebar/tools/ToolHorizontalBox.java | 1 + src/main/resources/css/styles.css | 43 +++++++++---------- 5 files changed, 28 insertions(+), 29 deletions(-) diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 392cd89..ca143d2 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -16,6 +16,7 @@ module org.jcnc.jnotepad { requires org.kordamp.ikonli.javafx; requires org.kordamp.ikonli.antdesignicons; requires org.fxmisc.richtext; + requires org.fxmisc.flowless; exports org.jcnc.jnotepad; exports org.jcnc.jnotepad.model.enums; exports org.jcnc.jnotepad.app.config; diff --git a/src/main/java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java b/src/main/java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java index 27c969e..02d46cc 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java +++ b/src/main/java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java @@ -1,7 +1,7 @@ package org.jcnc.jnotepad.ui.module; -import org.fxmisc.richtext.CodeArea; import org.fxmisc.richtext.LineNumberFactory; +import org.fxmisc.richtext.StyleClassedTextArea; import org.jcnc.jnotepad.util.LogUtil; import org.jcnc.jnotepad.views.root.center.main.bottom.status.BottomStatusBox; import org.jcnc.jnotepad.views.root.center.main.center.tab.CenterTab; @@ -20,7 +20,7 @@ import java.io.IOException; * * @author luke */ -public class LineNumberTextArea extends CodeArea { +public class LineNumberTextArea extends StyleClassedTextArea { /** @@ -35,10 +35,7 @@ public class LineNumberTextArea extends CodeArea { */ public LineNumberTextArea() { // 设置 LineNumberTextArea 的样式,包括边框和背景颜色 - this.setStyle( - "-fx-border-color:white;" + - "-fx-background-color:white" - ); + getStyleClass().add("line-number-text-area"); this.setParagraphGraphicFactory(LineNumberFactory.get(this)); initListeners(); diff --git a/src/main/java/org/jcnc/jnotepad/views/root/center/main/center/tab/CenterTab.java b/src/main/java/org/jcnc/jnotepad/views/root/center/main/center/tab/CenterTab.java index db93f42..bc4e4b3 100644 --- a/src/main/java/org/jcnc/jnotepad/views/root/center/main/center/tab/CenterTab.java +++ b/src/main/java/org/jcnc/jnotepad/views/root/center/main/center/tab/CenterTab.java @@ -1,6 +1,7 @@ package org.jcnc.jnotepad.views.root.center.main.center.tab; import javafx.scene.control.Tab; +import org.fxmisc.flowless.VirtualizedScrollPane; import org.jcnc.jnotepad.controller.config.AppConfigController; import org.jcnc.jnotepad.ui.module.LineNumberTextArea; @@ -37,7 +38,7 @@ public class CenterTab extends Tab { public CenterTab(String tabTitle, LineNumberTextArea textArea, Charset charset) { super(tabTitle); lineNumberTextArea = textArea; - this.setContent(lineNumberTextArea); + this.setContent(new VirtualizedScrollPane<>(lineNumberTextArea)); setAutoLine(AppConfigController.getInstance().getAutoLineConfig()); this.charset = charset; } diff --git a/src/main/java/org/jcnc/jnotepad/views/root/left/sidebar/tools/ToolHorizontalBox.java b/src/main/java/org/jcnc/jnotepad/views/root/left/sidebar/tools/ToolHorizontalBox.java index 0292664..bb5353b 100644 --- a/src/main/java/org/jcnc/jnotepad/views/root/left/sidebar/tools/ToolHorizontalBox.java +++ b/src/main/java/org/jcnc/jnotepad/views/root/left/sidebar/tools/ToolHorizontalBox.java @@ -25,6 +25,7 @@ public class ToolHorizontalBox extends AbstractHorizontalBox { // 将 JNotepadToolBar 添加为子节点 getChildren().add(SidebarToolBar.getInstance()); + getStyleClass().add("tool-horizontal-box"); } /** diff --git a/src/main/resources/css/styles.css b/src/main/resources/css/styles.css index 1cdab11..1f9270c 100644 --- a/src/main/resources/css/styles.css +++ b/src/main/resources/css/styles.css @@ -4,29 +4,7 @@ -fx-vbar-policy: as-needed; } -/*!* 不显示滚动条 *!*/ -/*.text-line-number .content {*/ -/* -fx-cursor: text;*/ -/* -fx-padding: 8px 1px 8px 5px;*/ -/*}*/ -.text-line-number .content { - -fx-padding: 8px 1px 8px 5px; -} -.text-line-number .scroll-bar:vertical { - -fx-pref-width: 1; - -fx-opacity: 0; -} -.text-line-number .scroll-bar:horizontal { - -fx-pref-height: 10; - -fx-opacity: 0; -} - -/* 主文本框区域样式 */ -.main-text-area { - -fx-border-color: white; - -fx-background-color: white; -} /* tab修改标签样式 */ .tab-title-editable { @@ -35,4 +13,25 @@ -fx-max-height: 20px; -fx-font-size: 14px; -fx-padding: 2px 2px 2px 2px; +} + +/*左侧边栏*/ +.tool-horizontal-box { + -fx-border-width: 0 1 0 0; + -fx-border-color: -color-border-default; +} + + +.paragraph-box .has-caret { + -fx-background-color: -color-neutral-muted +} + +.line-number-text-area .paragraph-box .text { + /*-fx-fill: -color-fg-default;*/ + /* -fx-font-size: 18px;*/ +} + +.lineno { + -fx-background-color: -color-bg-default; + /*-fx-padding: 0 10 0 0;*/ } \ No newline at end of file