仅适用于JavaFx中TextArea的第一行的空格/填充
答
你可能有一个专门的TextArea实现,这将防止编辑填充文本。
实施例:
public class FirstLinePaddedTextAread extends javafx.scene.control.TextArea {
private int offset;
public FirstLinePaddedTextAread(String padded) {
this.offset = padded.length();
this.setText(padded);
this.positionCaret(offset);
this.setOnKeyPressed(event -> consumeIfCaretIsOnReadOnlyArea(event));
this.setOnKeyTyped(event -> consumeIfCaretIsOnReadOnlyArea(event));
this.setOnKeyReleased(event -> consumeIfCaretIsOnReadOnlyArea(event));
}
private void consumeIfCaretIsOnReadOnlyArea(javafx.scene.input.KeyEvent event) {
if (getCaretPosition() < offset) {
if (!event.getCode().isNavigationKey())
event.consume();
} else if (getCaretPosition() == offset) {
if (event.getCode() == javafx.scene.input.KeyCode.DELETE
|| event.getCode() == javafx.scene.input.KeyCode.BACK_SPACE) {
event.consume();
}
}
}
}
+0
谢谢skadya它为我工作..我有另一个问题来禁用文本区域的滚动条。 – CTN
的标题文本应当要么一个标签放置了TextArea以上,或[promptText](http://docs.oracle.com/javase/8/javafx/api/javafx/现场/控制/ TextInputControl.html#promptTextProperty--)。至于线条,我怀疑这是可能的。 – VGR
问题的行部分回答如下:[使记事本JavaFX文本区域](http://stackoverflow.com/questions/29636578/make-text-area-like-notepad-javafx)。对每个问题询问单个问题总是最好的(例如,如何处理标题字符串的一个问题以及如何在文本区域中显示行的问题)。 – jewelsea
@VGR它是一个标签。 – CTN