在中心上对齐JavaFX MenuItem文本

时间:2017-02-23 15:35:14

标签: java javafx text-alignment text-align

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

使用文字Label并且鼠标不会悬停在LabelMenuItem上方

enter image description here

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

enter image description here

图片3 [问题是标签宽度小于ContextMenu宽度]:

enter image description here

正如您所看到的那样,它位于Left方面。我已经尝试过使用css的一切,但它只是不想改变它的位置

我想要达到什么目标?

我需要在某些ContextMenu MenuItems之上添加标签。我实现了这一点,但现在我需要-Text-alignment-标签作为中心。

从css分析器开始,此属性默认为LEFT enter image description here

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;
}

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");
    }

}

1 个答案:

答案 0 :(得分:1)

如果你试试这个:

.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的宽度。