Estou na dúvida e não consigo nem sequer encontrar um exemplo na NET.
Eu precisava de um exemplo de ter fazer com que algum item da JList pisque … como se estivesse chegado alguma mensagem para o usuário daquela lista e ficar Piscando o item…
pode ser o BackGround mudando de cor, ou alguma imagem piscando no item…
o que for baseado nisso será muito bem vindo para ajudar.
Só melhorando, ao invés de usar o Timer de javax.swing, use o Timer de java.util pois com ele é possível definir a Thread como deamon (para que ela não fique segurando o processo da JVM a toa):
import java.awt.Color;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JList;
public class BlinkJList extends JList {
private static final long serialVersionUID = 1L;
private boolean blink;
private boolean blinking;
private Color blinkColor;
private Color normalColor;
public BlinkJList(boolean isBlinking, Color blinkColor) {
this.blinking = isBlinking;
this.blinkColor = blinkColor;
normalColor = getBackground();
new Timer(true).scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
if (!blinking) {
return;
}
blink = !blink;
updateColor();
}
}, 0, 500);
}
public BlinkJList(boolean isBlinking) {
this(isBlinking, Color.RED);
}
public BlinkJList() {
this(false);
}
public void setBlinkColor(Color blinkColor) {
this.blinkColor = blinkColor;
}
public void setBlinking(boolean blinking) {
this.blinking = blinking;
}
public boolean isBlinking() {
return blinking;
}
public Color getBlinkColor() {
return blinkColor;
}
private void updateColor() {
if (blink) {
setSelectionBackground(blinkColor);
} else {
setSelectionBackground(normalColor);
}
}
public void setNormalColor(Color bg) {
normalColor = bg;
}
}