• 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

概要

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

解説

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

参考リンク

コメント