簡單地說,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