为了账号安全,请及时绑定邮箱和手机立即绑定

JavaFX8 DatePicker 按钮大小更改

JavaFX8 DatePicker 按钮大小更改

梦里花落0921 2022-06-15 15:59:23
我正在使用DatePicker具有默认样式的 JavaFX。但是,我想Scene通过添加scene.getStyleSheets().add("abc.css").它工作得很好,我申请了:Button {    -fx-font-size: 20;    -fx-font-family: "Arial";    -fx-pref-width: 300;    -fx-pref-height: 60;    -fx-background-radius: 16px;    -fx-background-color: lightgrey;    -fx-text-fill: black;}但是,当我添加DatePicker. DatePicker里面有自己的箭头按钮,可以切换月份或年份。我想为此使用默认样式,DatePicker但由于它在 my 下Scene,它的按钮从 CSS 中获取按钮样式...(胖按钮)有没有办法让我从DatePicker使用默认样式中删除按钮DatePicker样式?我不想从这个场景中删除所有样式,因为我必须自己应用所有其余样式。这是一张照片:
查看完整描述

2 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

这不是一个绝对正确的解决方案,但作为一种解决方法,您可以继承您的 javaFX 样式以进行日期选择器弹出控件

如果你把它添加到你的 abc.css 中,按钮会像默认一样正常

.date-picker-popup > * > .spinner > .button {
    -fx-background-color: transparent;
    -fx-background-radius: 0;
    -fx-pref-width: -1;
    -fx-pref-height: -1;}

//img1.sycdn.imooc.com//62a9917b00014ec006340363.jpg

查看完整回答
反对 回复 2022-06-15
?
GCT1015

TA贡献1827条经验 获得超4个赞

不幸的是,没有办法阻止将样式应用于具有特定祖先的节点。这需要你

  • 想出一种方法来限制以不修改 eg 的后代的方式应用您的样式的节点DatePicker,或者

  • 将您修改的属性重置为modena.css适用于它们的值。

对于第二个选项,您可以使用

Button {

    -fx-font-size: 20;

    -fx-font-family: "Arial";

    -fx-pref-width: 300;

    -fx-pref-height: 60;

    -fx-background-radius: 16px;

    -fx-background-color: lightgrey;

    -fx-text-fill: black;

}


.date-picker-popup > * > .spinner > .button {

    -fx-font-size: 1em;

    -fx-font-family: "System";

    -fx-pref-width: -1;

    -fx-pref-height: -1;

    -fx-background-color: -fx-outer-border, -fx-inner-border, -fx-body-color;

    -fx-background-radius: 0;

}


.date-picker-popup > * > .spinner > .button:focused {

    -fx-background-color: -fx-focus-color, -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color;

}

但是请注意,需要对每个使用按钮的标准控件执行此操作。添加一种方法来选择您想要设置样式的按钮可能要简单得多。例如,您可以向要设置样式的按钮添加样式类:


button.getStyleClass().add("my-style");

Button.my-style {

    -fx-font-size: 20;

    -fx-font-family: "Arial";

    -fx-pref-width: 300;

    -fx-pref-height: 60;

    -fx-background-radius: 16px;

    -fx-background-color: lightgrey;

    -fx-text-fill: black;

}


查看完整回答
反对 回复 2022-06-15
  • 2 回答
  • 0 关注
  • 184 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号