【问题标题】:Java default icons setJava 默认图标集
【发布时间】:2016-06-19 13:56:07
【问题描述】:

Java 是否提供任何可用于每个 Swing 和 JavaFX 框架的扩展默认图标包?我的意思是箭头、警告、文件、错误、通知、形状、手......

我知道可以下载非官方的并且很容易导入。我问是否确实存在 Swing 或 JavaFX 中包含的一些内容,如果存在,如何访问它们。

例如,我想将它们用作 ComboBox 等中可用项目的图标。


我发现this 网页在 Swing 中处理类似问题,但它并没有完全回答我的问题,而且我也在寻找 JavaFX 的东西。


OT:对于那些将这个问题投票为 OT 的人,我不要求任何推荐工具、软件库、教程或其他场外资源。我要的是官方的。

【问题讨论】:

  • 显然这些图像驻留在标准 jar 中。然而jafafx中的一些东西只是由程序绘制的。例如ScrollBar 箭头的 CSS 样式的一部分:-fx-shape: "M7.071,1L8.5,1.002L4.5,4l-4-2.998L1.93,1L4.5,2.976L7.071,1z";(=SVG 路径)
  • javafx,更多关于SVGPath的信息可以在here找到。
  • 对于纯图标而不是 svgpath,您可能最好使用第 3 方字体访问库,例如 FontAwesomeFXGlyphFonts from ControlsFX,因为它们可以让您访问更广泛的字体比随 JRE 8 分发的(当前极其有限的)字体集。

标签: java swing javafx icons


【解决方案1】:

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 编辑器 cut 图标:

@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 是?我不知道他们所有的名字,我想在使用前看看他们。
  • @NikolasCharalambidis 正如我在回答中解释的那样:从您的 JavaFX jar 中提取 modena.css 并在其中搜索关键字。除此之外没有官方文档。
猜你喜欢
  • 2017-06-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2012-04-30
  • 1970-01-01
  • 2014-10-11
  • 2012-07-01
  • 1970-01-01
相关资源
最近更新 更多