标题已经描述了我的问题。我想为 JFX 按钮中的单个字母或字母序列着色,而不是整个文本。我找到了摆动组件的解决方案Is it possible to change the text color in a string to multiple colors in Java?但还不适用于 javafx。有人可以帮我吗?
最佳答案
看看这个
public class ColoredButtonTextDemo extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button();
btn.setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
HBox coloredTextBox = HBoxBuilder.create().spacing(0).children(
LabelBuilder.create().text("Say ").textFill(Color.YELLOW).build(),
LabelBuilder.create().text("'").textFill(Color.DARKBLUE).build(),
LabelBuilder.create().text("Hell").textFill(Color.RED).build(),
LabelBuilder.create().text("o ").textFill(Color.GREEN).build(),
LabelBuilder.create().text("W").textFill(Color.BLUE).build(),
LabelBuilder.create().text("orld!").textFill(Color.DARKMAGENTA).build(),
LabelBuilder.create().text("'").textFill(Color.DARKBLUE).build()//
).build();
btn.setGraphic(coloredTextBox);
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
输出
关于button - JavaFX 按钮文本中的彩色单个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12915141/