如何在Javafx中组合字符以创建图标?
在Windows中,您可以组合字符来构建图标: 在Javafx中是否有一种等效的方法来创建Javafx按钮的图标 (最好是FXML格式) 编辑: 下面是我当前在FXML中添加按钮的方式:如何在Javafx中组合字符以创建图标?,java,javafx,fonts,icons,fxml,Java,Javafx,Fonts,Icons,Fxml,在Windows中,您可以组合字符来构建图标: 在Javafx中是否有一种等效的方法来创建Javafx按钮的图标 (最好是FXML格式) 编辑: 下面是我当前在FXML中添加按钮的方式: <Button text=""> <font> <Font name="Segoe MDL2 Assets" size="14.0" /> </font> </Button> 回答: 在下面答案的帮助下
<Button text="">
<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>
为了演示,我使用了以下两幅图像:
要构造如下所示的按钮: 堆叠图像并用作按钮的图形节点:
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);
可能是一个
堆栈窗格?为了得到一个真正的答案,你需要更具体地描述你的需求和实现。我不认为StackPane是正确的方法。为什么它不是正确的方法?您可以向按钮添加一个StackPane
。Zephyr指的是te按钮的使用。graphic
属性。按钮.text
属性不提供将字符置于彼此之上的功能。问题中不清楚您是如何将这些符号集成到按钮中的。我更新了我的问题,以包括我目前是如何做到这一点的。在本例中,使用StackPane嵌入两个字符的FXML表示法是什么?但这是一个图像。合并unicode字符怎么样?另外,在FXML中如何实现这一点?他使用的是特定的字体(Segoe MDL2资产),而不是图像,并希望对这些字形进行分层。我的工作机器没有安装这种字体,或者JavaFX似乎不支持开箱即用的字体。在我的问题中,我使用Segoe MDL2 Assets字体,但您可以使用任何您喜欢的字体。如果它可以使用一种字体,那么它应该可以使用任何字体。所以,即使你可以用Arial字体,请告诉我怎么做。