【问题标题】:Why is there a line at the bottom of this combo box?为什么这个组合框的底部有一条线?
【发布时间】:2015-07-30 14:39:06
【问题描述】:

我已尽一切努力尝试将其删除,它看起来也不是拆分窗格或分隔符。

添加了一些填充以更好地显示它:

我所拥有的所有代码都是一个ComboBox<String>,其中添加了元素,无需显示。至于css,我有这个:

.combo-box {
    -fx-focus-color: transparent;
    -fx-background-insets: -1, -1, -1, -1;
}

.combo-box .list-cell {
    -fx-text-fill: white;
}

.combo-box-base .arrow-button {
    -fx-background-color: transparent;
}

.combo-box-base .arrow {
    -fx-shape: "M8.124,13.625l4.125-3.375v2.889l-4.125,3.86L4,13.139V10.25L8.124,13.625z";
    -fx-background-color: white;
}

.combo-box-popup .list-view {
    -fx-effect: null;
}

.combo-box {
    -fx-background-color: #2B545E;
    -fx-background-radius: 0;
}

.combo-box-popup .list-view {
    -fx-background-color: #2B545E;
}

.combo-box-popup .list-view .list-cell:filled {
    -fx-background-color: #2B545E;
}

.combo-box-popup .list-view .list-cell:filled:hover {
    -fx-background-color: #2E5A66;
}

.combo-box-popup .list-view .list-cell:filled:selected {
    -fx-background-color: #346673;
}

使用Application.STYLESHEET_CASPIAN

【问题讨论】:

  • 你能显示一些代码吗?至少你的 CSS 和一个单元工厂,如果你有的话?
  • 我的猜测是 border-bottom 设置在最后一个元素上,但这只是没有代码的猜测。
  • @divinecomedian border-bottom 在 JavaFX 中不是有效的 CSS 属性。
  • 啊,我明白了。我以为它是编译的 CSS,但那是在发布代码之前。好吧,无论编译为 CSS border-bottom 的 JavaFX 等效项是什么,我认为这就是在最后一个元素上设置的内容。如果您使用的是某种默认/框架样式表,那么它可能已设置在那里。

标签: css listview combobox javafx javafx-8


【解决方案1】:

问题是这种风格:.combo-box-base .list-view .cell

通过指定较大的listview弹窗高度可以很容易看出它不仅仅是一行,而是listview的未填充内容:

.combo-box-popup .list-view {
    -fx-pref-height:200;
}

然后您的组合框将如下所示:

所以解决方案是通过添加这种样式来为该区域着色:

.combo-box-base .list-view .cell  {
    -fx-background-color: #2B545E; 
}

你会得到这个:

【讨论】:

  • 效果很好,谢谢!时间到了我会提供赏金
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-06
  • 1970-01-01
  • 1970-01-01
  • 2017-06-17
  • 1970-01-01
  • 2023-03-29
相关资源
最近更新 更多