繁体   English   中英

在中心对齐 JavaFX MenuItem 文本

[英]Align JavaFX MenuItem Text on Center

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

使用文本Label并且鼠标不悬停在LabelMenuItem

在此处输入图片说明

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

在此处输入图片说明

图 3 [问题是 Label 宽度小于 ContextMenu 宽度]:

在此处输入图片说明

如您所见,它位于Left 我已经尝试了所有使用 css 的方法,但它只是不想改变它的位置


我想达到什么目标?

我需要在一些ContextMenu MenuItems上方添加标签。 我做到了,但现在我需要该标签的-Text-alignment-位于中心。

从 css 分析器中,此属性默认为LEFT 在此处输入图片说明


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

/*******************************************************************************

*                           Label-Menu-Item                            *

******************************************************************************/

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

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


/* When the Label-Menu-Item is disabled [Always it is cause i don't want the user to be able to click it] */
.label-menu-item:disabled {
    -fx-opacity: 1.0;
    -fx-border-color:transparent white white white;
    -fx-cursor:default;
}

.label-menu-item:disabled:hover{
    -fx-background-color: blue;
}

.label-menu-item:disabled .label {
    -fx-opacity: 1.0;
    -fx-font-size:10.0;
    -fx-font-weight:bold;
    -fx-text-fill:white;
    -fx-text-alignment:center; 
}

.label-menu-item:disabled:hover .label {
    -fx-background-color: firebrick;
}

标签菜单项.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; 
}

它有效吗?

如果不是,也许Label直到右边框才扩展(即具有完全文本的大小,因此不同的对齐方式不会改变任何东西)? 然后尝试更改Label的宽度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM