概要

JToolBarが移動中、または移動中でドッキング可能な位置に存在する場合の背景色とボーダー色を変更します。

スクリーンショット

Swing/ToolBarDockingBackground.png

サンプルコード

UIManager.put("ToolBar.dockingBackground", new Color(0x64_FF_00_00, true));
UIManager.put("ToolBar.floatingBackground", new Color(0x64_00_00_FF, true));
UIManager.put("ToolBar.dockingForeground", Color.BLUE);
UIManager.put("ToolBar.floatingForeground", Color.RED);

check.addActionListener(e -> {
  BasicToolBarUI ui = (BasicToolBarUI) toolBar.getUI();
  if (((JCheckBox) e.getSource()).isSelected()) {
    ui.setDockingColor(new Color(0x64_FF_00_00, true));
    ui.setFloatingColor(new Color(0x64_00_00_FF, true));
  } else {
    ui.setDockingColor(Color.RED);
    ui.setFloatingColor(Color.BLUE);
  }
});
View in GitHub: Java, Kotlin

解説

  • ToolBar.dockingBackground
    • JToolBarがドッキング可能な位置に存在する場合の背景色をUIManager.put("ToolBar.dockingBackground", bgc1)で設定
    • BasicToolBarUI#setDockingColor(...)で変更することも可能
    • 半透明色を設定するとボーダー色が非表示になる?
  • ToolBar.floatingBackground
    • JToolBarが移動中の場合の背景色をUIManager.put("ToolBar.floatingBackground", bgc2)で設定
    • BasicToolBarUI#setFloatingColor(...)で変更することも可能
    • 半透明色を設定するとボーダー色が非表示になる?
  • ToolBar.dockingForeground
    • JToolBarがドッキング可能な位置に存在する場合のボーダー色をUIManager.put("ToolBar.dockingForeground", fgc1)で設定
  • ToolBar.floatingForeground
    • JToolBarが移動中の場合のボーダー色をUIManager.put("ToolBar.floatingForeground", fgc2)で設定

参考リンク

コメント