在Windows中,您可以组合字符来构建图标:

https://docs.microsoft.com/en-us/windows/uwp/design/style/segoe-ui-symbol-font#layering-and-mirroring

java - 如何在Javafx中组合字符以创建图标?-LMLPHP

在Javafx中是否有等效的方法可以为Javafx Button创建图标?

(最好是在FXML中)

编辑:
这是我当前在FXML中添加按钮的方式:

<Button text="&#xE700;">
  <font>
    <Font name="Segoe MDL2 Assets" size="14.0" />
  </font>
</Button>


回答:

借助以下答案,我使用了此FXML:

<Button>
    <graphic>
        <StackPane style="-fx-background-color: transparent;">
            <Label text="A" />
            <Label text="B" />
        </StackPane>
    </graphic>
</Button>

最佳答案

为了说明这一点,我使用以下两个图像:

java - 如何在Javafx中组合字符以创建图标?-LMLPHP java - 如何在Javafx中组合字符以创建图标?-LMLPHP



构造一个看起来像这样的按钮:

java - 如何在Javafx中组合字符以创建图标?-LMLPHP

堆叠图像并用作按钮的图形节点:

private static final String[] images = {
        "https://i.imgur.com/g52UeNO.png",
        "https://i.imgur.com/kvHOLJ4.jpg",
};

ImageView imageView1 = new ImageView(images[0]);
ImageView imageView2 = new ImageView(images[1]);
StackPane sp = new StackPane(imageView1, imageView2);
Button button = new Button("", sp);


编辑:堆叠字符使用:

Text t1 = new Text(Character.toString('O'));
t1.setFont(Font.font ("Verdana", 20));
t1.setFill(Color.RED);
Text t2 = new Text(Character.toString('x'));
t2.setFont(Font.font ("Verdana", 12));
t1.setFill(Color.BLUE);
StackPane sp = new StackPane(t1, t2);
Button button = new Button("", sp);

09-07 17:50