JavaFX文本区域滚动窗格边框颜色问题,如何解决

时间:2018-12-04 13:10:06

标签: java javafx javafx-8 scenebuilder javafx-css

我在javafx文本区域中遇到问题。问题是当我专注于文本区域边框时...没关系。

但是当我用滚动条手柄拖动文本区域时,边框的焦点丢失了...

请参见下图:

这是我简单的文本区域

enter image description here

当我像这样聚焦文本区域时,文本区域发生了变化。

enter image description here

但是,当我在带有滚动手柄文本区域边框的文本区域中滚动时,就像以前的状态一样(未聚焦)。像这样。

enter image description here

在滚动区域(在文本区域中)控制文本区域是否是他们的任何建议,都是最好的建议?

非常感谢。

可能会提供更多详细信息...

1 个答案:

答案 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();