Swing/TranslucentTabbedPane のバックアップ(No.5)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TranslucentTabbedPane へ行く。
- category: swing folder: TranslucentTabbedPane title: JTabbedPaneのタブなどを半透明にする tags: [JTabbedPane, UIManager, LookAndFeel] author: aterai pubdate: 2016-03-14T00:04:15+09:00 description: JTabbedPaneのタブ、タブエリア、コンテンツエリアなどを半透明に設定します。 image:
概要
JTabbedPane
のタブ、タブエリア、コンテンツエリアなどを半透明に設定します。
Screenshot
Advertisement
サンプルコード
Color bgc = new Color(110, 110, 0, 100);
Color fgc = new Color(255, 255, 0, 100);
UIManager.put("TabbedPane.shadow", fgc);
UIManager.put("TabbedPane.darkShadow", fgc);
UIManager.put("TabbedPane.light", fgc);
UIManager.put("TabbedPane.highlight", fgc);
UIManager.put("TabbedPane.tabAreaBackground", fgc);
UIManager.put("TabbedPane.unselectedBackground", fgc);
UIManager.put("TabbedPane.background", bgc);
UIManager.put("TabbedPane.foreground", Color.WHITE);
UIManager.put("TabbedPane.focus", fgc);
UIManager.put("TabbedPane.contentAreaColor", fgc);
UIManager.put("TabbedPane.selected", fgc);
UIManager.put("TabbedPane.selectHighlight", fgc);
UIManager.put("TabbedPane.borderHightlightColor", fgc);
View in GitHub: Java, Kotlin解説
UIManager.put(...)
を使用して、JTabbedPane
のタブやコンテンツ領域などに半透明の色を設定します。
- 注:
Swing
のコンポーネントは、背景色が半透明かどうかを判断して再描画しているわけではないため、例えばマウスカーソルの下の領域を再描画するイベントなどで背景色が重複上書きされて、残像が残ったり、次第に色が濃くなる現象などが発生する- 半透明色で全体を再描画するように
JPanel#paintComponent(...)
をオーバーライドしたコンポーネントを挟んで回避する必要がある - Backgrounds With Transparency « Java Tips Weblog
- JFrameの透明化と再描画
- 半透明色で全体を再描画するように
UIManager.put(...)
で半透明になるかどうかはLookAndFeel
に依存するNimbusLookAndFeel
では、タブなどが半透明にならないClassic
ではないWindowsLookAndFeel
では、半透明にならない