【问题标题】:Sizing and alignment of MenuItem and icon graphic JavaFXMenuItem 和图标图形 JavaFX 的大小和对齐方式
【发布时间】:2018-10-25 14:27:59
【问题描述】:

我在这里有一个右键菜单,你可以看到它很好地显示:

当我尝试将右键菜单添加到另一个表时,它显示如下:

我可以重新对齐图形还是强制MenuItems 调整为正确的大小?

这是代码(我以相同的方式将其添加到两个表中):

ContextMenu contextMenu = new ContextMenu(TableCommons.getAttendanceMenuItem(30),
                                          TableCommons.getAttendanceMenuItem(10),
                                          TableCommons.getAttendanceMenuItem(5));

this.table.setContextMenu(contextMenu);

import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIcon;
import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIconView;

static MenuItem getAttendanceMenuItem(int number)
{
    MenuItem attendanceMenuItem = new MenuItem(number + " day Attendance");

    MaterialDesignIconView materialDesignIconView = new MaterialDesignIconView(MaterialDesignIcon.FILE_WORD_BOX);

    materialDesignIconView.setSize("1em");
    materialDesignIconView.setFill(Main.OFFICE_WORD_BLUE_COLOUR);
    attendanceMenuItem.setGraphic(materialDesignIconView);    

    return attendanceMenuItem;    

}

【问题讨论】:

  • 你知道这个问题;) 请提供一个minimal reproducible example 来说明问题。
  • 好的,我会尝试,但我不明白为什么MenuItems 在某些TableViews 中实际上变得更高,而在其他情况下却没有。不知道如何复制它。
  • 我把字形拿出来,看起来高度恢复正常了。所以问题在于将字形设置为图形....
  • 尝试在您的第二个菜单中使用sceneryview 查看谁负责

标签: java javafx javafx-8


【解决方案1】:

我对此进行了调查:这是由于在默认 JavaFX 样式表modena.css 中设置的填充。 OP 并没有明确他们的确切场景,但我在尝试向对话框中的项目添加上下文菜单时遇到了问题;菜单项图形总是有额外的填充。

我不是 CSS 专家,但我认为来自 modena.css 的违规代码行如下:

.dialog-pane:no-header .graphic-container {
    -fx-padding: 0.833em 0 0 0.833em; /* 10px 0px 0px 10px */
}

我可以通过将以下内容添加到我自己的样式表来修复它,以覆盖默认值:

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

【讨论】:

  • 有趣的修复。我想知道是什么让它在某些时候对我有用,而不是在其余时间。
猜你喜欢
  • 2021-08-23
  • 1970-01-01
  • 2014-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多