1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public static BufferedImage createTranslucentImageFromListElement(JList list, float transparency) {
Component comp = list.getCellRenderer().getListCellRendererComponent(
list, list.getSelectedValue(), 0, true | false, true | false);
Rectangle rect = list.getCellBounds(0, 0);
comp.setSize(rect.width, rect.height);
return createTranslucentImageFromComponent(comp, transparency);
}
public static BufferedImage createTranslucentImageFromComponent(Component comp, float transparency) {
// création d'une image bufferisée avec un efet de transparence
BufferedImage image = new BufferedImage(comp.getWidth(), comp.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D imageGraphics = (Graphics2D) image.getGraphics();
imageGraphics.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, transparency));
// récupération de l'UI du composant
comp.paint(imageGraphics);
return image;
} |