Javafx文本区域滚动 Pane 边框颜色问题

标签 java javafx javafx-8 scenebuilder javafx-css

我在 javafx 文本区域中遇到问题:当我聚焦文本区域时,应用边框...没关系。

但是当我用滚动条 handle 拖动时,文本区域边框焦点丢失。

见下图:

这是我的简单文本区域:

enter image description here

当聚焦时文本区域发生变化,如下所示:

enter image description here

但是当我使用滚动 handle 在文本区域中滚动时,边框会像之前(未聚焦)状态一样发生变化:

enter image description here

有什么方法可以控制滚动 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/

相关文章:

JavaFX : How to close a sub window without getting focus on main window

Java运行时exec不执行批处理脚本

java - 如何将 JTextField 中的值存储到局部变量?

java - Camel 和 Google App Engine 没有 Spring?

JavaFX软件设计

java - 当目标节点改变场景时,Ubuntu 上不会发生鼠标释放事件?

java - JavaFX 中的图像碰撞/交叉

java - 每个上下文一个实例的依赖注入(inject)

java - @Transactional(propagation = Propagation.SUPPORTS) 没有事务正在进行

javafx-2 - JavaFX 一次更新大量按钮的最佳方法是什么?