【问题标题】:Setting alignment of title text in a JMenu component在 JMenu 组件中设置标题文本的对齐方式
【发布时间】:2012-07-29 20:30:37
【问题描述】:

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

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

我使用的是 JDK1.7。

我的 JMenuBar 及其 JMenu 目前的样子:

【问题讨论】:

  • 试试 setHorizo​​ntalTextPosition 吗?
  • @MadProgrammer 你打败了我
  • 为什么要给用户惊喜?
  • @Gorb 我正在遭受同样的事情。查看我关于这个问题的帖子:stackoverflow.com/questions/11728574/centering-text-in-a-jmenu
  • 根据下面的答案,这并没有解决问题。在我在这里发布之前,我已经尝试过 setHorizo​​ntalPosition,抱歉,我应该澄清一下。 @kleopatra 我不确定你的意思。我想要的只是一个漂亮的小缩进(或居中,最好是),让菜单看起来更专业。

标签: java swing jmenu


【解决方案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的副本。

【讨论】:

  • 谢谢,还没考虑到!
【解决方案2】:

尝试 setHorizo​​ntalTextPosition(SwingConstants.CENTER);其次是invalidate();

【讨论】:

  • 抱歉,这对我不起作用。尝试在上面可以看到的所有 JMenu 上调用它(mainMenu.setHorizo​​ntalTextPosition(etc)、mainMenu.invalidate()),没有骰子。
【解决方案3】:

如果我这样做,您是否尝试过为上述JMenu 设置Margin

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

这是我得到的输出:

【讨论】:

  • 这对我的布局也没有任何作用。我认为 Windows LAF 的默认行为是阻止它执行任何操作。我认为除了研究 Windows LAF 是如何构建和/或定义我自己的(不是我想在一百万年后这样做,颤抖)之外,我无能为力。
  • @Gorb :好吧,如果我将LookAndFeel 更改为 windows,我仍然会得到与之前所示相同的结果。请查看最新的编辑,并比较图像,第一个是 NIMBUS,第二个是 WINDOWS。
  • 正如我所说,不幸的是,它根本没有改变我的 GUI 上的任何东西 :( 你在使用 Java SE 7 吗?
  • Ejaaaaaaaaactly : 这是 Windows 7 32 位平台上的 java version "1.7.0_03" Java(TM) SE Runtime Environment (build 1.7.0_03-b05) 版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-08
  • 2018-08-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多