diff --git a/src/main/java/org/jcnc/jnotepad/ui/LineNumberTextArea.java b/src/main/java/org/jcnc/jnotepad/ui/LineNumberTextArea.java index 5bb431d72f9b4e2dd24fe1813e691741a4f3333f..1391df01f037a8ea943945cb14e1e28c5da3a308 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/LineNumberTextArea.java +++ b/src/main/java/org/jcnc/jnotepad/ui/LineNumberTextArea.java @@ -12,16 +12,17 @@ public class LineNumberTextArea extends BorderPane { static final int[] sizeTable = {9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999, Integer.MAX_VALUE}; + private static final int MIN_LINE_NUMBER_WIDTH = 30; public LineNumberTextArea() { mainTextArea = new TextArea(); lineNumberArea = new TextArea(); lineNumberArea.setEditable(false); - lineNumberArea.setPrefWidth(30); - mainTextArea.setStyle("-fx-border-color:white;-fx-background-color:white;"); - // lineNumberArea.setStyle("-fx-border-color:white;-fx-background-color:white;"); - // 设置显示滚动条样式类 + lineNumberArea.setPrefWidth(MIN_LINE_NUMBER_WIDTH); + lineNumberArea.setMinWidth(MIN_LINE_NUMBER_WIDTH); + // 设定自定义样式 lineNumberArea.getStyleClass().add("text-line-number"); + mainTextArea.getStyleClass().add("main-text-area"); lineNumberArea.textProperty().addListener((observable, oldValue, newValue) -> updateLineNumberWidth()); mainTextArea.textProperty().addListener((observable, oldValue, newValue) -> updateLineNumberArea()); @@ -49,8 +50,8 @@ public class LineNumberTextArea extends BorderPane { } } //单数字宽度10像素,4为padding=左3+右1 - int actualWidth = count * 10 + 4; - if (actualWidth > lineNumberArea.getWidth()) { + int actualWidth = Math.max(count * 10 + 4, MIN_LINE_NUMBER_WIDTH); + if (actualWidth != lineNumberArea.getWidth()) { lineNumberArea.setPrefWidth(actualWidth); } } diff --git a/src/main/resources/css/styles.css b/src/main/resources/css/styles.css index 42b923b01755016d323bfbc6b1091bd20a7638e7..695b47522506201e0140ffe47ae4d3995262c82c 100644 --- a/src/main/resources/css/styles.css +++ b/src/main/resources/css/styles.css @@ -5,15 +5,23 @@ } /* 不显示滚动条 */ -.text-line-number .content{ +.text-line-number .content { -fx-cursor: text; -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: 1; -fx-opacity: 0; +} + +/* 主文本框区域样式 */ +.main-text-area { + -fx-border-color: white; + -fx-background-color: white; } \ No newline at end of file