Мое решение почти такое же, как у ОП, но вместо Label
использует Text
, поэтому он более гибкий для изменения размера кнопки, так как он будет использовать столько строк, сколько необходимо. При необходимости также можно задать ширину обертки, чтобы определить ограничение ширины.
@Override
public void start(Stage primaryStage) {
Button btn = new Button();
ImageView imageView = new ImageView(new Image(getClass().getResource(<image>).toExternalForm()));
Text text=new Text("Some long text that may be line wrapped");
text.setWrappingWidth(100);
VBox vBox = new VBox(5, imageView,text);
vBox.setAlignment(Pos.CENTER);
btn.setGraphic(vBox);
btn.setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
Scene scene = new Scene(new StackPane(btn), 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
}
приятно предложение :) TNX –