java如何通过JavaFX而不是FXML CSS修改菜单按钮箭头颜色?
我试图修改MenuButton
箭头的颜色,使用的是JavaFX
代码,而不是CSS
我在caspian.css
里面找到了它:
.menu-button > .arrow-button > .arrow {
-fx-background-insets: 1 0 -1 0, 0;
-fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
-fx-padding: 0.25em; /* 3 */
-fx-shape: "M 0 -3.5 v 7 l 4 -3.5 z";
}
我试着用这样的方法:
menubutton.lookup(".arrow");
但是它抛出NullPointerException
当我这么做的时候:
System.out.println(this.getStyleClass().toString());
它只指出:menu-button
那么,有谁能给我一个不用CSS而用Java修改它的方法吗
# 1 楼答案
有几种方法可以做到这一点,这里有四种。代码是Jython和JavaFX。您可以编辑此代码以满足您的需要
例1
例2
不要通过CSS配置组合框箭头,而是通过编程方式进行配置,并更改SVG形状
通过CSS配置组合框箭头并更改SVG形状
通过CSS配置组合框箭头,但只需通过设置透明度/不透明度值和设置背景来隐藏箭头
不要通过CSS配置组合框箭头,而是通过编程实现,只需通过设置透明度/不透明度值和设置背景来隐藏箭头
# 2 楼答案
这是有效的:
更新:但这是一个更好的解决方案(如果夏令时没有扰乱我的睡眠,我可能第一次会得到这个解决方案;)