Ciao a tutti ragazzi, ieri facendo un semplice visualizzatore di immagini è venuto fuori un "problemino", spiego e posto il codice, devo visualizzare una immagine e dal main mi chiede la path dell'immagine, qundo do invio, alcune volte mi fa vedere l'immagine, molto spesso invece per una frazione di secondo la fa vedere e poi sparisce subito....non so se mi sono spiegato, se invece attivo il metodo paint mi appare tutto normale...mi sapete spiegare dove sta l'intoppo?
codice
codice:
import java.awt.*;
import javax.swing.*;
public class Visualizzatore extends Frame{
private Image img;
private Insets ins;
public Visualizzatore(String path) throws Exception {
Toolkit tk=Toolkit.getDefaultToolkit();
Dimension dim = tk.getScreenSize();
//posso sostituire queste 4 righe con :
ImageIcon ii=new ImageIcon(path);
img=ii.getImage();
/*
img=tk.getImage(path);
MediaTracker mt=new MediaTracker(this);
mt.addImage(img,0);
mt.waitForAll();
*/
ins=getInsets();//deve andare sempre dopo setVisible
int img_w=img.getWidth(null);
int img_h=img.getHeight(null);
int fr_w=img_w+2*10+ins.left+ins.right;
int fr_h=img_h+2*10+ins.top+ins.bottom;
setSize(fr_w,fr_h);
int x=(dim.width-getWidth())/2;
int y=(dim.height-getHeight())/2;
setLocation(x,y);
setTitle("gorilla");
setVisible(true);
Graphics g= getGraphics();
g.drawImage(img,ins.left+10,ins.top+10,null);
}
/*
public void paint(Graphics g){
g.drawImage(img,ins.left+10,ins.top+10,null);
}
*/
//home/domenico/Scrivania/gorilla.jpg
public static void main(String[] args) throws Exception{
String path=JOptionPane.showInputDialog("inserisci la path dell'immagine: "); //ha dei metodi statici mi crea finestre di dialogo al volo
new Visualizzatore(path);
}
}