• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JTextFieldの背景色を半透明にする
#navi(../)
#tags(JTextField, Translucent)
RIGHT:Posted by &author(aterai); at 2008-08-11
*JTextFieldの背景色を半透明にする [#x96d09bf]
``JTextField``の背景色を半透明にします。
---
title: JTextFieldの背景色を半透明にする
tags: [JTextField, Translucent]
author: aterai
pubdate: 2008-08-11T12:27:41+09:00
description: JTextFieldの背景色を半透明にします。
---
* 概要 [#x96d09bf]
`JTextField`の背景色を半透明にします。

-&jnlp;
-&jar;
-&zip;
#download(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTV03Q10yI/AAAAAAAAAoQ/xH8xmeARg4k/s800/TranslucentTextField.png)

//#screenshot
#ref(http://lh5.ggpht.com/_9Z4BYR88imo/TQTV03Q10yI/AAAAAAAAAoQ/xH8xmeARg4k/s800/TranslucentTextField.png)

**サンプルコード [#taebf677]
* サンプルコード [#taebf677]
#code(link){{
Color BG_COLOR = new Color(1f,.8f,.8f,.2f);

field0 = new JTextField("aaaaaaaaa");
field0.setBackground(BG_COLOR);

field1 = new JTextField("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
field1.setOpaque(false);
field1.setBackground(BG_COLOR);

field2 = new JTextField("cccccccccccccccccccccc") {
  @Override protected void paintComponent(Graphics g) {
    Graphics2D g2 = (Graphics2D)g;
    g2.setPaint(getBackground());
    g2.fillRect(0, 0, getWidth(), getHeight());
    super.paintComponent(g);
  }
};
field2.setOpaque(false);
field2.setBackground(BG_COLOR);
}}

**解説 [#p23f641d]
上記のサンプルでは、それぞれアルファ値を使った背景色を``JTextField``に設定しています。
* 解説 [#p23f641d]
上記のサンプルでは、それぞれアルファ値を使った背景色を`JTextField`に設定しています。

- 上: ``field0``
- 上: `field0`
-- 文字列を選択すると、再描画がおかしくなる(残像が表示される)
-- ``NimbusLookAndFeel``では、再現しない
- 中: ``field1``
-- ``setOpaque(false)``とすると、背景色は描画されない
-- ``NimbusLookAndFeel``では、背景色が描画される
-- `NimbusLookAndFeel`では、再現しない
- 中: `field1`
-- `setOpaque(false)`とすると、背景色は描画されない
-- `NimbusLookAndFeel`では、背景色が描画される
--- 参考: [http://weblogs.java.net/blog/ljnelson/archive/2008/07/nimbus_and_opac.html Laird Nelson's Blog: Nimbus and Opacity]
- 下: ``field2``
-- ``setOpaque(false)``とし、``paintComponent``をオーバーライドして、背景色を描画している
- 下: `field2`
-- `setOpaque(false)`とし、`paintComponent`をオーバーライドして、背景色を描画している

----
- ``NimbusLookAndFeel``でのスクリーンショット
- `NimbusLookAndFeel`でのスクリーンショット

//#screenshot(,screenshot1.png)
#ref(http://lh5.ggpht.com/_9Z4BYR88imo/TQcFKxPuBpI/AAAAAAAAAqw/1P6cGhtr7FA/s800/TranslucentTextField1.png)
#ref(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQcFKxPuBpI/AAAAAAAAAqw/1P6cGhtr7FA/s800/TranslucentTextField1.png)

-GTK L&F でのスクリーンショット
--[http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6531760 Bug ID: 6531760 JTextField not honoring the background color]
- `GTKLookAndFeel`でのスクリーンショット
-- [http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6531760 Bug ID: 6531760 JTextField not honoring the background color]

//#screenshot(,screenshot2.png)
#ref(http://lh3.ggpht.com/_9Z4BYR88imo/TQTV55zD1gI/AAAAAAAAAoY/0PCTmGDb2AA/s800/TranslucentTextField2.png)
#ref(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTV55zD1gI/AAAAAAAAAoY/0PCTmGDb2AA/s800/TranslucentTextField2.png)

**参考リンク [#s707327e]
-[http://www.viva-edo.com/komon/edokomon.html 江戸の文様(和風素材・デスクトップ壁紙)]
--名物裂から雲鶴をサンプルの壁紙として拝借しています。
* 参考リンク [#s707327e]
- [http://www.viva-edo.com/komon/edokomon.html 江戸の文様(和風素材・デスクトップ壁紙)]
-- 名物裂から雲鶴をサンプルの壁紙として拝借しています。

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