我在javafx文本区域中遇到问题。问题是当我专注于文本区域边框时...没关系。
但是当我用滚动条手柄拖动文本区域时,边框的焦点丢失了...
请参见下图:
这是我简单的文本区域
当我像这样聚焦文本区域时,文本区域发生了变化。
但是,当我在带有滚动手柄文本区域边框的文本区域中滚动时,就像以前的状态一样(未聚焦)。像这样。
在滚动区域(在文本区域中)控制文本区域是否是他们的任何建议,都是最好的建议?
非常感谢。
可能会提供更多详细信息...
答案 0 :(得分:0)
一种可能的解决方法是不允许将焦点放在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();