将JavaFX菜单项文本居中对齐

将JavaFX菜单项文本居中对齐,java,javafx,text-alignment,text-align,Java,Javafx,Text Alignment,Text Align,我正在尝试使用css将下面的自定义MenuItem文本的对齐方式更改为居中,但我无法实现,我得到以下结果: 使用作为文本标签,并且鼠标不悬停在标签项上方: 使用作为文本common,鼠标悬停在LabelMenuItem: 图3[问题在于标签宽度小于上下文菜单宽度: 如您所见,它位于左侧。我尝试过使用css的一切,但它只是不想改变它的位置 我想要实现什么? 我需要在一些上下文菜单菜单项上添加标签。我实现了这一点,但现在我需要将标签的-文本对齐-放在中间 在css analyzer中,此属性

我正在尝试使用css将下面的自定义
MenuItem
文本的对齐方式更改为居中,但我无法实现,我得到以下结果:

使用作为文本
标签
,并且鼠标不悬停在
标签项
上方:

使用作为文本
common
,鼠标悬停在
LabelMenuItem

图3[问题在于标签宽度小于上下文菜单宽度

如您所见,它位于
左侧。我尝试过使用css的一切,但它只是不想改变它的位置


我想要实现什么?

我需要在一些
上下文菜单
菜单项
上添加标签。我实现了这一点,但现在我需要将标签的
-文本对齐-
放在中间

在css analyzer中,此属性默认为左
LEFT


CSS代码(已更新,显示标签宽度问题)


LabelMenuItem.java:

import javafx.scene.control.MenuItem;

/**
 * @author GOXR3PLUS
 *
 */
public class LabelMenuItem extends MenuItem {

    /**
     * Constructor
     * 
     * @param text
     *            The Text of The Menu Item
     * 
     */
    public LabelMenuItem(String text) {
    setText(text);
    setDisable(true);
    getStyleClass().clear();
    getStyleClass().add("label-menu-item");
    }

}
如果您尝试以下方法:

.label-menu-item .label{
       //and here
      -fx-text-alignment:center; 
}

.label-menu-item .label .text{
      //and here
      -fx-text-alignment:center; 
}
与此相反:

.menu-item .label{
       //and here
      -fx-text-alignment:center; 
}

.menu-item .label .text{
      //and here
      -fx-text-alignment:center; 
}
它有用吗


如果没有,则标签
可能直到右边框才展开(即,具有与文本完全相同的大小,因此不同的对齐方式不会改变任何内容)?然后尝试更改
标签的宽度

我使用您的css代码和其他一些代码更新了问题。从第二幅图中可以看到**标签**的宽度与ContextMenu的宽度相同:)
。如果您以编程方式尝试,就像测试一样,那么它是否有效?我的意思是:
label.setTextAlignment(TextAlignment.Center)
MenuItem
没有这样的方法。。。我正在扩展
MenuItem
Label
无法添加到
ContextMenu
。在css中,您将悬停颜色应用于整个标签菜单项,而不仅仅是标签。如果仅将其应用于标签,颜色是否也会一直填充到右边框?我还尝试构建一个
菜单按钮
,并从
场景生成器
中进行检查,文本将居中或向右。但是
弹出菜单上下文菜单中的文本仍然位于左侧。非常奇怪…试图使
菜单项标签宽度==上下文菜单宽度
这似乎是css的一个问题
-fx pref Width:infinity
[],它的意思是“已解决”,但当我添加infinity时,上下文菜单会爆炸(没有显示任何内容):@James\u D你能提供一些帮助吗?:)我将永远高兴。。
.menu-item .label{
       //and here
      -fx-text-alignment:center; 
}

.menu-item .label .text{
      //and here
      -fx-text-alignment:center; 
}