简单地说,JMenu.setHorizontalAligment(SwingConstants.CENTER)什么也不做,文本仍然左对齐(使用Windows LAF)。在JMenu组件中设置标题文本的对齐方式
是否有任何方法对齐菜单标题中的文本(而不是JMenuItem - JMenus自己)?
我正在使用JDK1.7。
什么我与它的JMenus的JMenuBar看起来像目前:
简单地说,JMenu.setHorizontalAligment(SwingConstants.CENTER)什么也不做,文本仍然左对齐(使用Windows LAF)。在JMenu组件中设置标题文本的对齐方式
是否有任何方法对齐菜单标题中的文本(而不是JMenuItem - JMenus自己)?
我正在使用JDK1.7。
什么我与它的JMenus的JMenuBar看起来像目前:
我已经使用CSS
来定位和设置菜单中的文字。 style="text-align:center;"
是CSS
,用于将文本放置在底部示例图像的中心位置。在我的情况下,我在<p>
段落标签中封装了JMenu
标题;
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>");
看起来像这样;
值得一提的是,图像上面我也用的样式属性width:90px;color:blue;
,但我删除了这两个风格从上面简单的代码示例。希望这可以帮助。
这个答案或多或少是我原来的答案here的副本。
谢谢,没有考虑到! – Gorbles 2014-03-06 10:10:31
尝试setHorizontalTextPosition(SwingConstants.CENTER);其次是invalidate();
+1使它成为答案;) – MadProgrammer 2012-07-29 21:06:59
对不起,这对我不起作用。 试图调用它在任何和所有的JMenus你可以看到上面(mainMenu.setHorizontalTextPosition(等),mainMenu.invalidate()),没有骰子。 – Gorbles 2012-08-10 01:11:30
假如你试图对上述JMenu
设置Margin,如果我这样做:
JMenu optionsMenu = new JMenu("Option");
optionsMenu.setMargin(new Insets(5, 50, 5, 5));
这是输出我得到:
这对我的布局也没有任何作用。我认为Windows LAF的默认行为是阻止它做任何事情。 我不认为我可以做很多研究Windows LAF是如何构建和/或定义我自己的(并非我想在一百万年内这样做,*不寒而栗*)。 – Gorbles 2012-08-10 01:13:12
@Gorb:好的,如果我把'LookAndFeel'改为windows,我仍然可以得到和前面一样的结果。请看看最新的编辑,并比较图像,第一个是NIMBUS和第二个是WINDOWS。 – 2012-08-10 10:59:26
正如我所说,它不会改变我的GUI上的任何东西,不幸的是:( 您正在使用Java SE 7? – Gorbles 2012-08-13 10:37:40
请尝试setHorizontalTextPosition? – MadProgrammer 2012-07-29 20:36:31
@MadProgrammer你打我吧 – ghostbust555 2012-07-29 20:40:39
为什么你想让你的用户感到惊讶? – kleopatra 2012-07-30 07:23:36