Swing/TranslucentTextField のバックアップ差分(No.11)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/TranslucentTextField へ行く。
- 1 (2008-08-11 (月) 12:27:41)
- 2 (2008-08-11 (月) 13:42:33)
- 3 (2008-08-12 (火) 18:33:35)
- 4 (2009-07-07 (火) 19:36:39)
- 5 (2010-12-13 (月) 21:14:03)
- 6 (2010-12-14 (火) 14:49:32)
- 7 (2012-10-24 (水) 13:50:10)
- 8 (2012-10-26 (金) 22:04:40)
- 9 (2013-01-19 (土) 20:14:58)
- 10 (2014-11-01 (土) 00:46:09)
- 11 (2014-11-18 (火) 16:02:45)
- 12 (2015-12-16 (水) 16:42:58)
- 13 (2016-05-27 (金) 13:18:05)
- 14 (2017-08-15 (火) 13:50:02)
- 15 (2017-11-02 (木) 15:32:16)
- 16 (2017-11-02 (木) 15:34:40)
- 17 (2018-08-10 (金) 16:20:11)
- 18 (2020-08-08 (土) 16:31:19)
- 19 (2021-12-28 (火) 12:20:50)
- 20 (2022-08-20 (土) 22:15:25)
- 追加された行はこの色です。
- 削除された行はこの色です。
--- title: JTextFieldの背景色を半透明にする tags: [JTextField, Translucent] author: aterai pubdate: 2008-08-11T12:27:41+09:00 description: JTextFieldの背景色を半透明にします。 --- * 概要 [#x96d09bf] `JTextField`の背景色を半透明にします。 #download(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTV03Q10yI/AAAAAAAAAoQ/xH8xmeARg4k/s800/TranslucentTextField.png) * サンプルコード [#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`に設定しています。 - 上: `field0` -- 文字列を選択すると、再描画がおかしくなる(残像が表示される) -- `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`をオーバーライドして、背景色を描画している ---- - `NimbusLookAndFeel`でのスクリーンショット #ref(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQcFKxPuBpI/AAAAAAAAAqw/1P6cGhtr7FA/s800/TranslucentTextField1.png) - `GTKLookAndFeel`でのスクリーンショット -- [http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6531760 Bug ID: 6531760 JTextField not honoring the background color] -- [http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6531760 Bug ID: 6531760 JTextField not honoring the background color] #ref(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTV55zD1gI/AAAAAAAAAoY/0PCTmGDb2AA/s800/TranslucentTextField2.png) * 参考リンク [#s707327e] - [http://www.viva-edo.com/komon/edokomon.html 江戸の文様(和風素材・デスクトップ壁紙)] -- 名物裂から雲鶴をサンプルの壁紙として拝借しています。 * コメント [#l25f2c0b] #comment #comment