Swing/TranslucentLabelForeground のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TranslucentLabelForeground へ行く。
- 1 (2020-11-30 (月) 01:19:58)
- 2 (2023-02-28 (火) 13:30:32)
- category: swing folder: TranslucentLabelForeground title: JLabelのテキスト色を半透明にする tags: [JLabel] author: aterai pubdate: 2020-11-30T01:19:16+09:00 description: JLabelのテキスト色、背景色を半透明に設定する方法をテストします。 image: https://drive.google.com/uc?id=1LUNZmwOOoppxlc-taPMMAlp4u2U9SjtD
概要
JLabel
のテキスト色、背景色を半透明に設定する方法をテストします。
Screenshot
Advertisement
サンプルコード
JLabel label1 = new JLabel("ABC", SwingConstants.CENTER);
label1.setForeground(new Color(0x64_FF_AA_AA, true));
label1.setBackground(new Color(0x64_64_C8));
label1.setFont(new Font(Font.MONOSPACED, Font.BOLD, 140));
String style = "color:rgba(255,170,170,0.4);font-size:140pt";
JLabel label2 = new JLabel(String.format("<html><span style='%s'>ABC", style));
label2.setBackground(new Color(0x64_64_C8));
label2.setHorizontalAlignment(SwingConstants.CENTER);
View in GitHub: Java, Kotlin解説
- 一行目
JLabel#setForeground(...)
メソッドでテキスト色に半透明色を設定- 親の
JPanel
までテキスト色を透過させる場合はJLabel#setOpaque(true)
でコンポーネントの背景を透明化(描画しない)する、またはJLabel#setBackground(...)
メソッドで透明・半透明の背景色を設定する必要がある
- 二行目
<html>
タグを使用してCSS
でcolor:rgba(255,170,170,0.4);
のようにテキスト色を設定しても半透明にならない- 8256019: JLabel HTML text does not support translucent text colors by prsadhuk · Pull Request #1158 · openjdk/jdkで修正される予定