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