【问题标题】:How to modify the ChoiceBox checkmark in JavaFX?如何修改 JavaFX 中的 ChoiceBox 复选标记?
【发布时间】:2015-11-03 21:38:56
【问题描述】:

首先,是否可以修改 ChoiceBox 复选标记的形状?使用 CSS 类 (.check-box:selected .mark) 完全改变 CheckBox 标记很容易。但是,我在网上找到的关于 ChoiceBox 的 ContextMenu 标记的所有信息是,您可以在 .context-menu CSS 类中使用 -fx-mark-color 修改其颜色。我尝试了几个类名来将形状更改为自定义 SVG,但均无济于事。

.context-menu .menu-item:selected .mark {
    -fx-shape: "M1,1 h4 v4 h-4 v-4 Z";
}

在下图中,我完全重新设计了我的 JavaFX 应用程序以匹配 Mac 的本机 Cocoa GUI,但菜单复选标记是唯一似乎无法修复的缺陷。

【问题讨论】:

  • -fx-shape 是一个 SVG 字符串,您是否尝试提供不同的 SVG 字符串?
  • @jewelsea 是的。我在我的帖子中包含了这个尝试。它不起作用;我也知道它是一个有效的形状 SVG,因为我在 .arrow-button 上尝试过,它是可以更改的。
  • 编辑您的问题以包含您使用的实际 SVG 字符串,而不是像 <SVG String> 这样的不可用值。
  • 我现在没有时间更详细地看这个,但是参考default modena.css stylesheet,其中复选框标记的CSS路径是:.check-box > .box > .mark.check-box:indeterminate > .box > .mark,取决于复选框伪状态。
  • 对不起,山姆,我在阅读您的问题时没有支付足够的问题。在 modena.css 样式表中搜索-fx-shape,你会发现:.check-menu-item:checked > .left-container > .check

标签: java css javafx-8


【解决方案1】:

modena.css 样式表中搜索-fx-shape。对于 Java 8,您会发现:

.check-menu-item:checked > .left-container > .check

这是用于在菜单项内进行复选标记的 CSS 选择器(它还包括对选择框中选定项的检查)。在自定义 CSS 样式表中定义相同的 CSS 选择路径。在该选择器中,放置一个 -fx-shape 规则,该规则为您希望用于检查的形状定义自定义 svg 路径。

【讨论】:

  • ChoiceBox 中的选定项目也可以用 .radio-menu-item:checked > .left-container > .radio 选择器覆盖
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-28
  • 1970-01-01
  • 2020-02-20
  • 1970-01-01
相关资源
最近更新 更多