Java默认图标集

3
Java提供了任何可以在Swing和JavaFX框架中使用的扩展默认图标包吗?我的意思是箭头、警告、文件、错误、通知、形状、手等等。
我知道有可下载的非官方图标包,并且很容易导入。我想问一下,是否存在于Swing或JavaFX中的一些内置图标包,如果有,如何访问它们。
例如,我想将它们用作ComboBox中可用项目的图标。
我已经找到了这个与Swing中类似问题有关的网页,但它并没有完全回答我的问题,而且我也想找一个JavaFX的东西。
OT:对于那些将这个问题投票关闭的人,我不要求任何推荐工具、软件库、教程或其他站外资源。我要求的是官方的。

1
显然,这些图像驻留在标准的JAR文件中。但是,JavaFX 中的某些内容仅由程序绘制。例如,ScrollBar 箭头的 CSS 样式的一部分:-fx-shape: "M7.071,1L8.5,1.002L4.5,4l-4-2.998L1.93,1L4.5,2.976L7.071,1z";(=SVG 路径)。 - fabian
1
在 [tag:javafx] 中,关于 SVGPath 的更多信息可以在这里找到。 - trashgod
1
对于纯图标而非SVG路径,你最好选择第三方字体访问库,比如FontAwesomeFXControlsFX中的GlyphFonts,因为它们将为你提供比JRE 8分发的(目前非常有限的)字符集更广泛的字体访问。 - jewelsea
1个回答

6

JavaFX答案

JavaFX内置了许多图标,但是使用它们没有文档记录,也不是理想的方式,因为它可能会在未来发生变化。

但是,如果您想要使用这种方法,您首先需要提取JavaFX样式表modena.css,可以在此处找到描述:over here

现在,您将找到各种使用JavaFX CSS的示例和这两种内置图标:

  1. 作为SVG形状的图标,通常使用CSS属性-fx-shape定义
  2. 作为图像的图标,通常使用CSS属性-fx-graphic定义

如果您选择了一个符号并想要使用它,您必须以完全相同的样式类重现完全相同的层次结构以应用相同的样式。

SVG示例:假设您对.default-color3.chart-symbol交叉感兴趣。

@Override
public void start(Stage pPrimaryStage) throws Exception
{
    final StackPane graphic = new StackPane();
    graphic.setMaxSize(25, 25);
    graphic.getStyleClass().addAll("default-color3", "chart-symbol");

    pPrimaryStage.setScene(new Scene(new BorderPane(graphic), 500, 500));
    pPrimaryStage.show();
}

图例:HTML编辑器中的剪切图标:

@Override
public void start(Stage pPrimaryStage) throws Exception
{
    final Label graphic = new Label();
    graphic.getStyleClass().add("html-editor-cut");
    pPrimaryStage.setScene(new Scene(new BorderPane(graphic), 500, 500));
    pPrimaryStage.show();
}

谢谢您的回答。我准备用赏金奖励您的答案并探索两种方法,即使第二种方法似乎更容易理解。是否有这些符号的可观察图表,例如 html-editor-cut?我不知道它们所有的名称,我想在使用之前先看一下它们。 - Nikolas Charalambidis
@NikolasCharalambidis,正如我在回答中所解释的那样:从您的JavaFX jar中提取modena.css并搜索其中的关键字。除此之外,没有官方文档。 - eckig

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接