Fala Dalton, tudo certo? Cara, o JFrame tem um método bem legal que se chama:
Método: opacity,
Atributo: float,
onde 1.0 é o que vemos, com nenhuma transparência
e 0.0 é o mínimo, de total transparência.
Vamos pensar, você pode pegar o valor e fazer a contagem regressiva, a ideia é que fique assim:
OPACIDADE
1.0
0.9
0.8
0.7
....
FIM
Certo? OK, vamos fazer isso no código, se você simplesmente fizer isso:
float i = 1.0;
while (i >= 0.1){
i--;
}
Ele vai imprimir
Pra arrumar isso vamos fazer de outro jeito:
double opacidade = 1.0;
DecimalFormat df = new DecimalFormat("#.#");
while (opacidade >= 0.1) {
opacidade -= 0.1;
System.out.println(Float.valueOf(df.format(opacidade)));
}
Agora sim, vai certinho, mas está muito rápido, também não é interessante, pq vai fechar como se estivessemos usando o dispose, então vamos usar um Thread.sleep pra dar um intervalo entre cada setOpacity(x), e pra não estender muito esse texto, vamos usar uma Thread, pra o seu programa não travar e ficar parado até terminar o processo.
public void smoothJFrame() {
new Thread() {
@Override
public void run() {
double opacidade = 1.0;
DecimalFormat df = new DecimalFormat("#.#");
System.out.println("OPACIDADE");
while (opacidade >= 0.1) {
try {
opacidade -= 0.1;
System.out.println(Float.valueOf(df.format(opacidade)));
Thread.sleep(100);
setOpacity(Float.valueOf(df.format(opacidade)));
if (Float.valueOf(df.format(opacidade)) == 0.0) {
System.out.println("FIM");
}
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
}.start();
}
Esse 100 no Thread.sleep(); é o tempo de pausa, eu testei com 1000 (1 seg), mas fica parecendo um slide do power point, então se você quiser aumentar o tempo, é só aumentar o valor, se quiser diminuir o tempo, é só diminuir o valor.
Você pode fazer a chamada pro novo JFrame no IF que eu coloquei ali.
E por fim, a saída é:
run:
OPACIDADE
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0.0
FIM
EDIT:
Eu acabei nem pesquisando e também não sei como você está pesquisando, mas o Java Raiz é chamado de Java Swing. Estou dizendo isso apenas pra te ajudar nas suas pesquisas futuras. Isso é tanto nacionalmente falando, quanto internacionalmente.
Tamo junto.