!101 fix:状态栏的行和列无法根据光标更新
Merge pull request !101 from Luke/release-v1.1.13
This commit is contained in:
commit
5202fc200e
@ -37,7 +37,7 @@ public class LineNumberTextArea extends StyleClassedTextArea {
|
|||||||
public LineNumberTextArea() {
|
public LineNumberTextArea() {
|
||||||
//上、右、下、左
|
//上、右、下、左
|
||||||
setPadding(new Insets(8, 0, 0, 0));
|
setPadding(new Insets(8, 0, 0, 0));
|
||||||
|
setStyle("-fx-font-family: 'Courier New';");
|
||||||
// 设置 LineNumberTextArea 的样式,包括边框和背景颜色
|
// 设置 LineNumberTextArea 的样式,包括边框和背景颜色
|
||||||
getStyleClass().add("line-number-text-area");
|
getStyleClass().add("line-number-text-area");
|
||||||
this.setParagraphGraphicFactory(LineNumberFactory.get(this));
|
this.setParagraphGraphicFactory(LineNumberFactory.get(this));
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package org.jcnc.jnotepad.views.root.center.main.bottom.status;
|
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.Insets;
|
||||||
import javafx.geometry.Pos;
|
import javafx.geometry.Pos;
|
||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
@ -114,10 +116,31 @@ public class BottomStatusBox extends AbstractHorizontalBox {
|
|||||||
CenterTab centerTab = instance.getSelected();
|
CenterTab centerTab = instance.getSelected();
|
||||||
if (centerTab != null) {
|
if (centerTab != null) {
|
||||||
updateEncodingLabel(centerTab.getCharset().name());
|
updateEncodingLabel(centerTab.getCharset().name());
|
||||||
|
|
||||||
|
// 添加光标位置变化监听器
|
||||||
|
LineNumberTextArea textArea = centerTab.getLineNumberTextArea();
|
||||||
|
textArea.caretPositionProperty().addListener(new ChangeListener<Number>() {
|
||||||
|
@Override
|
||||||
|
public void changed(ObservableValue<? extends Number> 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()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取光标所在行号。
|
* 获取光标所在行号。
|
||||||
*
|
*
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user