Swing/RatingLabel のバックアップ(No.20)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/RatingLabel へ行く。
- 1 (2006-08-21 (月) 11:55:27)
- 2 (2006-08-21 (月) 14:45:47)
- 3 (2006-08-23 (水) 17:33:51)
- 4 (2006-11-07 (火) 12:38:34)
- 5 (2006-11-09 (木) 20:53:32)
- 6 (2007-08-23 (木) 23:03:37)
- 7 (2008-10-20 (月) 18:20:37)
- 8 (2008-11-25 (火) 11:19:25)
- 9 (2012-10-20 (土) 04:20:53)
- 10 (2013-02-24 (日) 22:31:53)
- 11 (2013-12-10 (火) 20:18:42)
- 12 (2014-01-31 (金) 21:23:15)
- 13 (2014-11-28 (金) 16:31:17)
- 14 (2016-02-16 (火) 19:35:51)
- 15 (2017-07-11 (火) 15:31:58)
- 16 (2018-02-24 (土) 19:51:30)
- 17 (2018-07-12 (木) 18:07:59)
- 18 (2018-12-19 (水) 20:39:43)
- 19 (2020-11-12 (木) 09:41:03)
- 20 (2022-11-16 (水) 16:41:11)
- category: swing
folder: RatingLabel
title: RGBImageFilterでアイコンの色調を変更
tags: [ImageIcon, RGBImageFilter, JLabel]
author: aterai
pubdate: 2006-08-21T11:55:27+09:00
description: RGBImageFilterで色調を変更したアイコンの用意し、評価用コンポーネントを作成します。
image:
hreflang:
href: https://java-swing-tips.blogspot.com/2008/12/jlabel-star-rating-bar.html lang: en
概要
RGBImageFilter
で色調を変更したアイコンの用意し、評価用コンポーネントを作成します。
Screenshot
Advertisement
サンプルコード
private final ImageProducer ip = orgIcon.getImage().getSource();
private static ImageIcon makeStarImageIcon(
ImageProducer ip, float rf, float gf, float bf) {
return new ImageIcon(Toolkit.getDefaultToolkit().createImage(
new FilteredImageSource(ip, new SelectedImageFilter(rf, gf, bf))));
}
class SelectedImageFilter extends RGBImageFilter {
private final float rf;
private final float gf;
private final float bf;
protected SelectedImageFilter(float rf, float gf, float bf) {
super();
this.rf = Math.min(1f, rf);
this.gf = Math.min(1f, gf);
this.bf = Math.min(1f, bf);
canFilterIndexColorModel = false;
}
@Override public int filterRGB(int x, int y, int argb) {
int r = (int) (((argb >> 16) & 0xFF) * rf);
int g = (int) (((argb >> 8) & 0xFF) * gf);
int b = (int) (((argb) & 0xFF) * bf);
return (argb & 0xFF_00_00_00) | (r << 16) | (g << 8) | (b);
}
}
View in GitHub: Java, Kotlin解説
上記のサンプルは、RGBImageFilter
を使用して、1
つのアイコンから複数の色の異なるアイコンを生成し、5
段階の評価を行うコンポーネントを作成しています。クリックしたアイコンの位置が評価レベルになります。
参考リンク
- PI Diagona Icons Pack 1.0 - Download Royalty Free Icons and Stock Images For Web & Graphics Design
- アイコンを引用