gpt4 book ai didi

JavaFX : How to change ComboBox/ChoiceBox Drop Down Button Position?

转载 作者:行者123 更新时间:2023-11-28 16:42:34 24 4
gpt4 key购买 nike

伙计们,这应该很简单,但我找不到答案。我对 CSS 的了解非常有限。

我想将 ComboBox/ChoiceBox 的“下拉按钮”或“箭头”移动到组件的左侧,而不是右侧。

如下图所示: ComBox with arrow on left side

我找到了一种使箭头透明的方法,如下所示:

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

这是我将箭头移到左侧的幼稚方法:

.combo-box .arrow-button {
-fx-alignment: LEFT;
}

那么,有人知道这是否有可能实现吗?如何?谢谢!!

最佳答案

ComboBox 本身不支持样式属性“-fx-alignment”——只有编辑器 (textField) 支持。

您可以扩展 ComboBoxBaseSkin (ComboBoxListViewSkin),覆盖 #layoutChildren() 并自行定位箭头按钮,或者像下面的示例一样简单地更改节点方向。但是,更改节点方向会影响完整的内容 - 即编辑器和弹出内容。您可以通过应用相反的(因为 RTL)对齐方式或通过将 NodeOrientation 更改为 LTR 来为编辑器修复此问题,就像对于弹出窗口的 ListView 一样。

combo.setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT);
combo.getEditor().setStyle("-fx-alignment: baseline-right");
combo.setOnShowing(evt -> ((ComboBoxListViewSkin<?>)combo.getSkin()).getListView().setNodeOrientation(NodeOrientation.LEFT_TO_RIGHT));

关于JavaFX : How to change ComboBox/ChoiceBox Drop Down Button Position?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33539150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com