You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TitledPane输入无效不可折叠时,如何保留并显示禁用状态的箭头?

如何让TitledPane在不可折叠时保留禁用状态的箭头

我需要实现一个TitledPane:当它处于展开状态且内部TextField输入无效时,不允许折叠。目前核心逻辑已经完成,但遇到一个问题——一旦将collapsibleProperty设为false,标题左侧的箭头按钮就会直接消失。

我希望箭头能保留在界面上,只是显示为禁用状态。原本打算通过伪类状态来实现,但TitledPaneSkin类的update()方法里的这段代码直接阻断了这个思路:箭头根本不会被添加到GUI中:

private void update() {
    getChildren().clear();
    final TitledPane titledPane = getSkinnable();

    if (titledPane.isCollapsible()) {
        getChildren().add(arrowRegion);
    }

...

我尝试过几种解决方法,但都没成功:

  • 编写继承自TitledPaneSkin的自定义Skin类,但定义arrowRegion的TitleRegion及其update方法都是不可访问的,无法修改逻辑。
  • 直接禁用TitledPane本身不可行,因为我需要内部的TextField保持可编辑状态。
  • 尝试通过CSS给TitledPane的标题设置自定义箭头图片:
.titled-pane .title {
    -fx-graphic: url("arrow.png");
}

但这个方法也没有效果。

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:52:14