Java Fade In e Out dois JPanels ao mesmo tempo
Eu tenho uma lista de JPanels que eu quero exibir como uma "apresentação de slides" onde um JPanel desaparece e o próximo JPanel na lista desaparece. Esse é o código com o qual estou mexendo:
public float opacity = 0f;
private Timer fadeTimer;
private boolean out;
public void fadeIn()
{
out = false;
beginFade();
}
public void fadeOut ()
{
out = true;
beginFade();
}
private void beginFade()
{
fadeTimer =
new javax.swing.Timer(75,this);
fadeTimer.setInitialDelay(0);
fadeTimer.start();
}
public void actionPerformed(ActionEvent e)
{
if (out)
{
opacity -= .03;
if(opacity < 0)
{
opacity = 0;
fadeTimer.stop();
fadeTimer = null;
}
}
else
{
opacity += .03;
if(opacity > 1)
{
opacity = 1;
fadeTimer.stop();
fadeTimer = null;
}
}
repaint();
}
public void paintComponent(Graphics g)
{
((Graphics2D) g).setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, opacity));
g.setColor(getBackground());
g.fillRect(0,0,getWidth(),getHeight());
}
O problema é que desaparece algumas vezes, outras vezes, e outras vezes a transição é muito lenta. O que eu preferiria é que haja uma fração de segundo em que a tela fique branca, entre quando um JPanel desaparece e o próximo JPanel desaparece. Alguém sabe como eu posso resolver isso? Desde já, obrigado.