---
category: swing
folder: MenuItemToolTipText
title: JMenuItemにToolTipテキストを設定する
tags: [JToolTip, JMenuItem, JMenu, JCheckBoxMenuItem, JRadioButtonMenuItem, JMenuBar, LookAndFeel]
author: aterai
pubdate: 2023-06-26T02:57:21+09:00
description: JMenuItemやJMenu、JCheckBoxMenuItemなどのMenuElementにToolTipテキストを設定します。
image: https://drive.google.com/uc?id=1bQbmZoUzxYPFYxgUeEql4ont7_e_w2o5
---
* 概要 [#summary]
`JMenuItem`や`JMenu`、`JCheckBoxMenuItem`などの`MenuElement`に`ToolTip`テキストを設定します。

#download(https://drive.google.com/uc?id=1bQbmZoUzxYPFYxgUeEql4ont7_e_w2o5)

* サンプルコード [#sourcecode]
#code(link){{
private static JMenuBar createMenuBar() {
  JMenu menu = new JMenu("File");
  menu.setToolTipText("File JMenu ToolTipText");
  menu.add("JMenuItem").setToolTipText("JMenuItem ToolTipText");
  JMenu sub1 = new JMenu("JMenu(Default)");
  sub1.setToolTipText("JMenu Default ToolTipText");
  sub1.add("JMenuItem1").setToolTipText("JMenuItem1 ToolTipText");
  sub1.add("JMenuItem2").setToolTipText("JMenuItem2 ToolTipText");
  menu.add(sub1);
  JMenu sub2 = new JMenu("JMenu()") {
    @Override public String getToolTipText() {
      return getPopupMenu().isVisible() ? null : super.getToolTipText();
    }
  };
  sub2.setToolTipText("JMenu ToolTipText");
  sub2.add("JMenuItem1").setToolTipText("JMenuItem1 ToolTipText");
  sub2.add("JMenuItem2").setToolTipText("JMenuItem2 ToolTipText");
  menu.add(sub2);
  JMenuItem item2 = new JCheckBoxMenuItem("JCheckBoxMenuItem", true);
  item2.setToolTipText("JCheckBoxMenuItem ToolTipText");
  menu.add(item2);
  JMenuItem item3 = new JRadioButtonMenuItem("JRadioButtonMenuItem", true);
  item3.setToolTipText("JRadioButtonMenuItem ToolTipText");
  menu.add(item3);
  JMenuBar mb = new JMenuBar();
  mb.setToolTipText("JMenuBar ToolTipText");
  mb.add(menu);
  mb.add(LookAndFeelUtils.createLookAndFeelMenu());
  return mb;
}
}}

* 解説 [#explanation]
- `JMenuItem`、`JCheckBoxMenuItem`、`JRadioButtonMenuItem`、`JMenuBar`
-- `JComponent#setToolTipText(...)`で`ToolTip`テキストを設定可能
- `JMenu`
-- `JComponent#setToolTipText(...)`で`ToolTip`テキストを設定可能
-- `JMenu(Default)`: `JMenu`をクリックするまで`JPopupMenu`が表示されない`MotifLookAndFeel`以外では`JMenu`の`JPopupMenu`表示のタイミングによってその背後に`JToolTip`が表示される場合がある
-- `JMenu#getToolTipText()`: `JMenu#getToolTipText()`をオーバーライドして`JMenu`の`JPopupMenu`が表示されている場合は`ToolTip`テキストを表示しないよう設定
--- 別メニューの`ToolTip`テキストが表示されている状態でこの`JMenu`上にマウスカーソルを移動すると`JPopupMenu`と`JToolTip`の両方が表示状態になる場合がある
- `ToolTip`テキストを設定した`JMenu(Default)`:
-- `JMenu`をクリックするまで`JPopupMenu`が表示されない`MotifLookAndFeel`以外では`JMenu`の`JPopupMenu`表示のタイミングによってその背後に`JToolTip`が表示される場合がある
- `JMenu#getToolTipText()`をオーバーライドした`JMenu`:
-- `JMenu#getToolTipText()`をオーバーライドして`JMenu`の`JPopupMenu`が表示されている場合は`ToolTip`テキストを表示しないよう設定
-- 別メニューの`ToolTip`テキストが表示されている状態でこの`JMenu`上にマウスカーソルを移動すると`JPopupMenu`と`JToolTip`の両方が表示状態になる場合がある

* 参考リンク [#reference]
- [[JMenuの領域内にマウスカーソルでポップアップメニューを表示する>Swing/PopupWithoutClickOnMenu]]

* コメント [#comment]
#comment
#comment