Java de fondu d'images

Je suis en train d'apprendre à s'estomper dans et hors des images dans une autre image ou d'une autre image. Donc, si j'ai 2 images, et 1 est affichée à l'instant, je veux afficher une autre image en arrière-plan et à la décoloration, la première image dans la 2ème image. OU, je tiens à mettre l'accent sur la nouvelle image et lentement en fondu sur la 1ère image, puis arrêter l'affichage de la 1ère.

Je ne suis pas sûr de savoir comment:

  1. pour définir le focus, si nécessaire.
  2. Je peux fondu si je change l'alpha à 0 et l'incrément et seulement de dessiner une image, mais je ne peux pas l'obtenir à s'estomper avec n'importe quelle variation de ce code. (c'est à dire en commentant une image pour dessiner).

Edit: Vraiment, je suis inquiète, c'est être capable d'avoir 2 images et de rendre l'image actuellement affichée lentement disparaître dans la 2ème image. Comment cela est accompli n'a pas besoin d'être avec cette.

Voici un exemple de code que je vais vous embêter avec:

import java.awt.AlphaComposite;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class FadeIn extends JPanel implements ActionListener {
private Image imagem;
private Image image2;
private Timer timer;
private float alpha = 1f;
public FadeIn() {
imagem = (new ImageIcon(getClass().getResource(
"/resources/1stImage.jpg"))).getImage();
image2 = (new ImageIcon(getClass().getResource(
"/resources/2ndImage.jpg"))).getImage();    
timer = new Timer(20, this);
timer.start();
}
//here you define alpha 0f to 1f
public FadeIn(float alpha) {
imagem = (new ImageIcon(getClass().getResource(
"/resources/1stImage.jpg"))).getImage();
this.alpha = alpha;
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(imagem, 0, 0, 400, 300, null);
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
alpha));
g2d.drawImage(image2, 0, 0, 400, 300, null);
}
public static void main(String[] args) {
JFrame frame = new JFrame("Fade out");
frame.add(new FadeIn());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(420, 330);
//frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
alpha += -0.01f;
if (alpha <= 0) {
alpha = 0;
timer.stop();
}
repaint();
}
}
Qu'entendez-vous par "setFocus"?
Fondamentalement dessiner une image en arrière-plan, et un autre en face de lui. Puis fondu de l'image du haut à l'aide de la minuterie. Au lieu d'un fond blanc, il serait l'image du bas. J'ai été en mesure de le faire si je viens de remplir un rectangle sur l'écran, mais je ne peux pas définir l'image en arrière-plan.

OriginalL'auteur user2079828 | 2013-12-03