From afbbdc650c0fdc491474be29ce5b3b9464a28993 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?= Date: Sun, 17 Sep 2023 20:42:29 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E5=AD=97=E4=BD=93?= =?UTF-8?q?=E4=B8=BA=E7=AD=89=E5=AE=BD=E5=AD=97=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 f3cad56..64b570c 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java +++ b/src/main/java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java @@ -37,7 +37,7 @@ public class LineNumberTextArea extends StyleClassedTextArea { public LineNumberTextArea() { //上、右、下、左 setPadding(new Insets(8, 0, 0, 0)); - + setStyle("-fx-font-family: 'Courier New';"); // 设置 LineNumberTextArea 的样式,包括边框和背景颜色 getStyleClass().add("line-number-text-area"); this.setParagraphGraphicFactory(LineNumberFactory.get(this)); From 88eee5194187c9575f5af49bd749d3e9950f727d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?= Date: Sun, 17 Sep 2023 20:50:57 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=E8=A1=8C=E5=8F=B7=E4=B8=8D=E6=AD=A3?= =?UTF-8?q?=E5=B8=B8=E6=9B=B4=E6=96=B0=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/bottom/status/BottomStatusBox.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/main/java/org/jcnc/jnotepad/views/root/center/main/bottom/status/BottomStatusBox.java b/src/main/java/org/jcnc/jnotepad/views/root/center/main/bottom/status/BottomStatusBox.java index 4a064dc..4cf2baa 100644 --- a/src/main/java/org/jcnc/jnotepad/views/root/center/main/bottom/status/BottomStatusBox.java +++ b/src/main/java/org/jcnc/jnotepad/views/root/center/main/bottom/status/BottomStatusBox.java @@ -1,5 +1,7 @@ package org.jcnc.jnotepad.views.root.center.main.bottom.status; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.control.Label; @@ -114,10 +116,31 @@ public class BottomStatusBox extends AbstractHorizontalBox { CenterTab centerTab = instance.getSelected(); if (centerTab != null) { updateEncodingLabel(centerTab.getCharset().name()); + + // 添加光标位置变化监听器 + LineNumberTextArea textArea = centerTab.getLineNumberTextArea(); + textArea.caretPositionProperty().addListener(new ChangeListener() { + @Override + public void changed(ObservableValue observable, Number oldValue, Number newValue) { + updateRowColumnLabel(textArea.getCaretPosition(), textArea.getText()); + } + }); } } } + /** + * 更新行列信息 + * @param caretPosition 光标位置 + * @param text 文本内容 + */ + private void updateRowColumnLabel(int caretPosition, String text) { + int row = getRow(caretPosition, text); + int column = getColumn(caretPosition, text); + statusLabel.setText(getStatusBarFormattedText(row, column, text.length())); + } + + /** * 获取光标所在行号。 *