簡単に言えば、JMenu.setHorizontalAligment(SwingConstants.CENTER) は何もせず、テキストは左揃えのままです (Windows LAF を使用)。
メニュー ヘッダー (JMenuItem ではなく、JMenus 自体) にテキストを配置する方法はありますか?
私はJDK1.7を使用しています。
現在、JMenus を含む JMenuBar は次のようになっています。
私がこれを行う場合、あなたは言われたためにマージンを設定しようとしましたか?JMenu
JMenu optionsMenu = new JMenu("Option");
optionsMenu.setMargin(new Insets(5, 50, 5, 5));
これは私が得る出力です:
setHorizontalTextPosition(SwingConstants.CENTER);を試してください。続いてinvalidate();
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>");
これは次のようになります。
上の画像width:90px;color:blue;
では style 属性も使用していますが、簡単にするために上のコード例からこれら 2 つのスタイルを削除したことに注意してください。お役に立てれば。
この回答は、多かれ少なかれ私の元の回答hereのコピーです。