在JavaFx中,仅为TextArea的第一行应用空格/填充
我想在标题标签结束后开始编辑文本区域,如下图所示。还有展示衬里。显示文本标签不是textarea的文本在JavaFx中,仅为TextArea的第一行应用空格/填充,java,javafx,javafx-2,javafx-8,Java,Javafx,Javafx 2,Javafx 8,我想在标题标签结束后开始编辑文本区域,如下图所示。还有展示衬里。显示文本标签不是textarea的文本 提前感谢…您可能有一个专门的TextArea实现,它将阻止编辑填充文本 例如: public class FirstLinePaddedTextAread extends javafx.scene.control.TextArea { private int offset; public FirstLinePaddedTextAread(String padded) {
提前感谢…您可能有一个专门的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();
}
}
}
}
public类FirstLinePaddedTextAread扩展了javafx.scene.control.TextArea{
私有整数偏移;
公共FirstLinePaddedTextAread(字符串填充){
this.offset=padded.length();
这个.setText(填充);
此位置插入符号(偏移);
按下此.setOnKeyPressed(事件->consumeIfCaretIsOnReadOnlyArea(事件));
this.setOnKeyTyped(事件->consumeIfCaretIsOnReadOnlyArea(事件));
此.setOnKeyReleased(事件->consumeIfCaretIsOnReadOnlyArea(事件));
}
私有void consumeIfCaretIsOnReadOnlyArea(javafx.scene.input.KeyEvent事件){
if(getCaretPosition()
标题文本应该是放置在文本区域上方的标签,或者。至于行,我怀疑这是可能的。问题的行部分回答为:。每个问题最好只问一个问题(例如,一个关于如何处理标题字符串的问题,另一个关于如何在文本区域显示行的问题)。@VGR它是一个标签。@jewelsea它用于行。但我应该怎么做填充在第一行。谢谢..是否可以使用“-fx形状”?谢谢斯卡迪亚,它对我有效..我还有一个问题要禁用文本区域的滚动条。