Я использую java swing для создания интерфейса, в котором пользователь рисует пару точек. Я хочу, чтобы после того, как эти точки были сделаны, чтобы автоматически изменить интенсивность цвета от действительно яркого до темного, пока точка не исчезнет. Кто-нибудь знает какие-либо руководства по изменению интенсивности цвета, потому что я не могу найти что-то, что может мне помочь.Как изменить интенсивность цвета в приложении java swing
EDIT: Спасибо за ответы, они помогли мне лучше понять, как работать с цветом. Я исправил его, поэтому я загружаю часть потока, чтобы помочь, если кому-то еще нужно что-то сделать ... Я работаю на черном фоне, чтобы затемнить цвета вместо их освещения.
public class MyThread extends Thread {
private Canvas canvas;
private int sleepingTime = 5000;
private Color color;
private int red, green, blue, alpha;
public MyThread(Canvas canvas) {
super();
this.canvas = canvas;
setDaemon(true);
}
public void run(){
while (true){
try {
System.out.println("going to sleep...");
Thread.sleep(sleepingTime);
} catch (InterruptedException e) {
System.out.println("sleep interrupted..");
return;
}
System.out.println("woke up!");
int size = canvas.points_list.size();
int i =0;
while (size > 0) {
color = canvas.points_list.get(i).getForeground();
red = (int) Math.round(Math.max(0, color.getRed() - 255 * 0.25f));
green = (int) Math.round(Math.max(0, color.getGreen() - 255 * 0.25f));
blue = (int) Math.round(Math.max(0, color.getBlue() - 255 * 0.25f));
alpha = color.getAlpha();
canvas.points_list.get(i).setForeground(new Color(red, green, blue, alpha));
size--;
i++;
}
canvas.repaint();
}
}
}
Там десятки способов вы можете достичь этого, для [например] (HTTP: //stackoverflow.com/questions/18648142/creating-brighter-color-java/18648235#18648235) – MadProgrammer
Или этот [пример] (http://stackoverflow.com/a/18691662/230513) с использованием 'Color.getHSBColor() '. – trashgod
Чтобы угаснуть цвет, я увеличил бы альфа-компонент. –