25/10/10 18:50
a_butta
Ciao a tutti
Girando per la rete ho visto come visualizzare un'immagine all'interno di un JPanel e ho partorito semplicemente questo:
@Override
public void paint(Graphics g) {
Image img = Toolkit.getDefaultToolkit().createImage("C:/images/digest.PNG");
g.drawImage(img, 400, 400, jPanel1);
}
@Override
public void update(Graphics g) {
paint(g);
}
L'immagine "non si visualizza", però quando allargo la finestra si vede per qualche millisecondo l'immagine che appare e scompare: non riesce ad essere visualizzata costantemente.
Qual'è il problema? Cosa sbaglio?
Grazie per l'aiuto in anticipo...
Ultima modifica effettuata da a_butta 25/10/10 18:52
aaa
26/10/10 15:43
bububs
Prova così e fammi sapere:
import java.awt.*;
import javax.swing.*;
import javax.imageio.*;
import java.io.*;
#############################
//Attributo generale:
Image img;
//Nel Costruttore JPanel:
try{
img=ImageIo.read(new File("immagine.jpg"));
}
catch(IOException errore){ }
//Nel Metodo paint:
super.paint(g);
Graphics2D g2=(Graphics2D)g;
g2.drawImage(img,0,0,this);
Ultima modifica effettuata da bububs 26/10/10 15:48
aaa
27/10/10 16:56
bububs
Prova così:
Ridefinisci così:
protected void paintComponent(Graphics g) {
setOpaque(false);
g.drawImage(img, 0, 0, null);
super.paintComponent(g);
}
Nel costruttore:
Image img = Toolkit.getDefaultToolkit().createImage("immagine.jpg");
loadImage(img);
Funzione loadImage:
private void loadImage(Image img) {
try {
MediaTracker track = new MediaTracker(this); //aspetta che l'immagini si carichi completamente
track.addImage(img, 0);
track.waitForID(0);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Prova e fammi sapere!
Ultima modifica effettuata da bububs 27/10/10 17:31
aaa