概要

JMenuItemJMenuJCheckBoxMenuItemなどのMenuElementToolTipテキストを設定します。

サンプルコード

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;
}
View in GitHub: Java, Kotlin

解説

  • ToolTipテキストを設定したJMenu(Default):
    • JMenuをクリックするまでJPopupMenuが表示されないMotifLookAndFeel以外ではJMenuJPopupMenu表示のタイミングによってその背後にJToolTipが表示される場合がある
  • JMenu#getToolTipText()をオーバーライドしたJMenu:
    • JMenu#getToolTipText()をオーバーライドしてJMenuJPopupMenuが表示されている場合はToolTipテキストを表示しないよう設定
    • 別メニューのToolTipテキストが表示されている状態でこのJMenu上にマウスカーソルを移動するとJPopupMenuJToolTipの両方が表示状態になる場合がある

参考リンク

コメント