MenuItem和图标图形JavaFX的大小调整和对齐

时间:2018-10-25 14:27:59

标签: java javafx javafx-8

我在这里有一个右键菜单,如您所见,它显示得很好:

enter image description here

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

enter image description here

我可以重新对齐图形还是可以强制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;    

}

1 个答案:

答案 0 :(得分:2)

我对此进行了调查:这是由于填充是在默认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;
}