设置JMenu组件中标题文本的对齐方式

时间:2012-07-29 20:30:37

标签: java swing jmenu

简单地说,JMenu.setHorizo​​ntalAligment(SwingConstants.CENTER)什么都不做,文本仍然是左对齐的(使用Windows LAF)。

是否有任何方法可以在菜单标题中对齐文本(而不是JMenuItem - JMenus本身)?

我正在使用JDK1.7。

我的JMenuBar及其JMenus目前看起来像是什么:

Current JMenuBar with JMenus (and a single JMenuItem

3 个答案:

答案 0 :(得分:1)

尝试setHorizo​​ntalTextPosition(SwingConstants.CENTER);然后是invalidate();

答案 1 :(得分:1)

如果我这样做,你是否尝试为JMenu设置Margin

JMenu optionsMenu = new JMenu("Option");
optionsMenu.setMargin(new Insets(5, 50, 5, 5));

这是我得到的输出:

MARGIN OUTPUT

MESSENGER IMAGE

答案 2 :(得分:1)

我使用CSS来定位和设置菜单中的文字样式。 style="text-align:center;"是用于将文本放置在底部示例图像中心的CSS。就我而言,我将JMenu标题封装在<p>段标记中;

clientFilter = new JMenu("<html><p style='text-align:center;'>Client</p></html>");
siteFilter = new JMenu("<html><p style='text-align:center;'>Site</p></html>");
employeeFilter = new JMenu("<html><p style='text-align:center;'>Employee</p></html>");
jobtypeFilter = new JMenu("<html><p style='text-align:center;'>Job Type</p></html>");

看起来像这样;

enter image description here

值得注意的是,在上图中我还在style属性中使用了width:90px;color:blue;,但为了简单起见,我从上面的代码示例中删除了这两个样式。希望这会有所帮助。

此答案或多或少是原始答案的副本here