如何通过CSS更改JavaFX ComboBox的箭头按钮中的背景颜色?

时间:2019-02-07 19:32:19

标签: java css javafx java-8

我正在尝试更改ComboBox中箭头按钮的背景颜色。如果重要的话,可以将JavaFX 8与默认的Modena.css主题一起使用。

根据文档(https://docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/cssref.html#combobox),箭头按钮是StackPane,所以我认为以下方法可以工作:

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

这应将背景更改为蓝色,但颜色仍保持不变。

背景可能是图像,所以我尝试在上面添加-fx-background-image: null;,但这似乎不起作用。

不确定现在是什么问题。

更新:发现了问题!

很明显,这是我的CSS代码具有以下问题:

#arrow-button {
    -fx-padding: 5 0 5 0;
    -fx-font: 16 arial;
    -fx-font-weight: bold;
    -fx-background-color: 
        linear-gradient(#FFE4D1 0%, #EED5C2 25%, #EDD2BD 75%, #FFE4D1 100%),
        linear-gradient(#FFE1CC 0%, #FCE2CF 20%, #EDD0BB 80%, #FFE1CC 100%);
    -fx-border-color: #ED9D9C;
    -fx-background-radius: 5;
    -fx-border-radius: 5;
}

显然,JavaFX正在使用我的ID选择器,并使用它来显示.combo-box .arrow-button。

这可能是一个错误,但不确定。会问JavaFX开发人员。

感谢所有帮助!

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法吗:

import pyautogui

print('Press Ctrl-C to quit.')

try:
    while True:
        x, y = pyautogui.position()
        positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
        print(positionStr, end='')
        print('\b' * len(positionStr), end='', flush=True)

except KeyboardInterrupt:
    print('\nDone.')

其中之一应该起作用。