Swing/TranslucentTextField のバックアップ(No.6)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - 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の背景色を半透明にする
Posted by terai at 2008-08-11
JTextFieldの背景色を半透明にする
JTextFieldの背景色を半透明にします。
- &jnlp;
- &jar;
- &zip;
サンプルコード
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);
解説
上記のサンプルでは、それぞれアルファ値を使った背景色をJTextFieldに設定しています。
- 上: field0
- 文字列を選択すると、再描画がおかしくなる
- Nimbus L&F では、再現しない
- 中: field1
- setOpaque(false)とすると、背景色は描画されない
- Nimbus L&F では、背景色が描画される
- 下: field2
- setOpaque(false) とし、paintComponentをオーバーライドして、背景色を描画している
- Nimbus L&F (build 1.6.0_10-rc-b28) でのスクリーンショット
- GTK L&F でのスクリーンショット
参考リンク
- 江戸の文様(和風素材・デスクトップ壁紙)
- 名物裂から雲鶴をサンプルの壁紙として拝借しています。