简单地说,JMenu.setHorizontalAligment(SwingConstants.CENTER)什么都不做,文本仍然是左对齐的(使用Windows LAF)。
是否有任何方法可以在菜单标题中对齐文本(而不是JMenuItem - JMenus本身)?
我正在使用JDK1.7。
我的JMenuBar及其JMenus目前看起来像是什么:
答案 0 :(得分:1)
尝试setHorizontalTextPosition(SwingConstants.CENTER);然后是invalidate();
答案 1 :(得分:1)
如果我这样做,你是否尝试为JMenu
设置Margin:
JMenu optionsMenu = new JMenu("Option");
optionsMenu.setMargin(new Insets(5, 50, 5, 5));
这是我得到的输出:
答案 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>");
看起来像这样;
值得注意的是,在上图中我还在style属性中使用了width:90px;color:blue;
,但为了简单起见,我从上面的代码示例中删除了这两个样式。希望这会有所帮助。
此答案或多或少是原始答案的副本here。