• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JSplitPaneでドラッグ中のDividerの背景色を設定する
#navi(../)
#tags(JSplitPane, UIManager)
RIGHT:Posted by &author(aterai); at &time(2014-09-15T00:00:21+09:00);
* 概要 [#o80016ef]
---
category: swing
folder: DividerDraggingColor
title: JSplitPaneでドラッグ中のDividerの背景色を設定する
tags: [JSplitPane, Divider, UIManager]
author: aterai
pubdate: 2014-09-15T00:00:21+09:00
description: JSplitPaneのDividerがドラッグ中の場合に、その移動先を示す矩形の色を変更します。
image: https://lh5.googleusercontent.com/-M9cMsnuWpL0/VBWl0TfGYyI/AAAAAAAACNI/qvejKL7NGVk/s800/DividerDraggingColor.png
---
* 概要 [#summary]
`JSplitPane`の`Divider`がドラッグ中の場合に、その移動先を示す矩形の色を変更します。

#download(https://lh5.googleusercontent.com/-M9cMsnuWpL0/VBWl0TfGYyI/AAAAAAAACNI/qvejKL7NGVk/s800/DividerDraggingColor.png)

* サンプルコード [#ya9caa72]
* サンプルコード [#sourcecode]
#code(link){{
UIManager.put("SplitPaneDivider.draggingColor", new Color(255, 100, 100, 100));
}}

* 解説 [#ff320695]
上記のサンプルでは、`JSplitPane#setContinuousLayout(false)`で、`JSplitPane`の`Divider`がドラッグ中の場合に、`Divider`の移動先を示す矩形の色を変更しています。

----
ドラッグ中ではない`Divider`の色は、`LookAndFeel`によっては、以下のような方法で変更することができます。

* 解説 [#explanation]
- `JSplitPane`の`Divider`がドラッグ中でその移動先を示す矩形の色を変更する場合`SplitPaneDivider.draggingColor`を変更する
-- `JSplitPane#setContinuousLayout(false)`が設定されている`JSplitPane`のみ半透明色は有効
- ドラッグ中ではない`Divider`の色は`LookAndFeel`に依存するが以下のような方法で変更可能
#code{{
BasicSplitPaneDivider divider = ((BasicSplitPaneUI) getUI()).getDivider();
divider.setBackground(Color.ORANGE);
}}

* 参考リンク [#z74232ef]
* 参考リンク [#reference]
- [[JSplitPaneでディバイダの移動を連続的に再描画>Swing/ContinuousLayout]]
- [https://bugs.openjdk.org/browse/JDK-7175397 [JDK-7175397] The divider color is not changed to green when dragging for Nimbus LaF. - Java Bug System]

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