我在 javafx 文本区域中遇到问题:当我聚焦文本区域时,应用边框...没关系。
但是当我用滚动条 handle 拖动时,文本区域边框焦点丢失。
见下图:
这是我的简单文本区域:
当聚焦时文本区域发生变化,如下所示:
但是当我使用滚动 handle 在文本区域中滚动时,边框会像之前(未聚焦)状态一样发生变化:
有什么方法可以控制滚动 Pane 中的文本区域(在文本区域中)?
最佳答案
一种可能的解决方法是不允许将焦点放在 TextArea 内的 ScrollPane 上。即,当 ScrollPane 获得焦点时,我们强制将焦点集中在 TextArea 上。这样焦点将始终位于 TextArea 上。
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextArea;
public class CustomTextArea extends TextArea {
private ScrollPane textAreaScrollPane;
@Override
protected void layoutChildren() {
super.layoutChildren();
if (textAreaScrollPane == null) {
textAreaScrollPane = (ScrollPane) lookup(".scroll-pane");
textAreaScrollPane.focusedProperty().addListener((obs, oldVal, focused) -> {
if (focused) {
requestFocus();
}
});
}
}
}
您将在您的应用程序中使用此 CustomTextArea。
TextArea textArea = new CustomTextArea();
关于Javafx文本区域滚动 Pane 边框颜色问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53613748/