JavaFX: установить разрыв между узлом graphi c и текстом в MenuItem - PullRequest
2 голосов
/ 14 февраля 2020

Как установить разрыв между текстом и графикой c для MenuItem.

enter image description here

Подклассы JavaFX Labeled имеют метод setGraphicTextGap(double value), который делает именно то, что я ищу, но класс MenuItem не делает наследовать от Labeled.

Пример кода:

ImageView newFilterIcon = new ImageView(new Image(newFilterIconUrl));
MenuItem newFilterMenuItem = new MenuItem("New Filter", newFilterIcon);
Menu filterMenu = new Menu("Filter");
filterMenu.getItems().add(newFilterMenuItem);

1 Ответ

3 голосов
/ 14 февраля 2020
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();
    }
}

пробел в меню. css

.menu-item > .graphic-container {
    -fx-padding: 0em 10em 0em 0em;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...