JavaFX:在 MenuItem 中设置图形节点和文本之间的间隙
JavaFX: Set gap between graphic node and text in MenuItem
如何在MenuItem
的文本和图形之间设置间距。
JavaFX Labeled
subclasses 有一个 setGraphicTextGap(double value)
方法完全符合我的要求,但 MenuItem
class 没有继承自 Labeled
.
示例代码:
ImageView newFilterIcon = new ImageView(new Image(newFilterIconUrl));
MenuItem newFilterMenuItem = new MenuItem("New Filter", newFilterIcon);
Menu filterMenu = new Menu("Filter");
filterMenu.getItems().add(newFilterMenuItem);
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();
}
}
菜单-gap.css
.menu-item > .graphic-container {
-fx-padding: 0em 10em 0em 0em;
}
如何在MenuItem
的文本和图形之间设置间距。
JavaFX Labeled
subclasses 有一个 setGraphicTextGap(double value)
方法完全符合我的要求,但 MenuItem
class 没有继承自 Labeled
.
示例代码:
ImageView newFilterIcon = new ImageView(new Image(newFilterIconUrl));
MenuItem newFilterMenuItem = new MenuItem("New Filter", newFilterIcon);
Menu filterMenu = new Menu("Filter");
filterMenu.getItems().add(newFilterMenuItem);
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();
}
}
菜单-gap.css
.menu-item > .graphic-container {
-fx-padding: 0em 10em 0em 0em;
}