Conjunto brecha entre el nodo gráfico y el texto en Menultem: JavaFX

SRA :

¿Cuál es la manera de establecer un espacio entre el texto y gráfico de una MenuItem.

introducir descripción de la imagen aquí

JavaFX Labeledsubclases tienen un setGraphicTextGap(double value)método que hace exactamente lo que estoy buscando, pero MenuItemla clase no hereda de Labeled.

Código de muestra:

ImageView newFilterIcon = new ImageView(new Image(newFilterIconUrl));
MenuItem newFilterMenuItem = new MenuItem("New Filter", newFilterIcon);
Menu filterMenu = new Menu("Filter");
filterMenu.getItems().add(newFilterMenuItem);
Przemek Krysztofiak:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;

public class MenuGapApp extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage stage) throws Exception {
        ImageView imageView = new ImageView("https://image.shutterstock.com/image-vector/home-flat-icon-you-can-260nw-451922449.jpg");
        MenuItem menuItem = new MenuItem("New filter", imageView);
        Menu menu = new Menu("Filter", null, menuItem);
        MenuBar menuBar = new MenuBar(menu);
        Scene scene = new Scene(menuBar);
        scene.getStylesheets().add(getClass().getResource("/menu-gap.css").toExternalForm());
        stage.setScene(scene);
        stage.show();
    }
}

menu-gap.css

.menu-item > .graphic-container {
    -fx-padding: 0em 10em 0em 0em;
}

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=478536&siteId=1
Recomendado
Clasificación