Ciao,
ho un frame, al suo interno c'è un pannello e un bottone. Praticamente quando viene cliccato il bottone, viene chiamato il metodo cambia(). Il problema è dato dalla paintComponent, infatti se la commento non riscontro errori. Sapete dirmi come posso risolvere questo problema?
La classe del pannello in questione è questa:
codice:
public class InputPanel extends JPanel {
private static boolean status=true;
public Image img;
public String file="C:\\input.jpg";
public InputPanel(){
super();
setBorder(BorderFactory.createLineBorder(Color.black));
}
public void cambia() throws InterruptedException{
Thread t = new Thread(new Esecutore());
t.start();
System.out.println("Thread acquisizione avviato");
while(status){
img = Toolkit.getDefaultToolkit().createImage(file);
Thread.currentThread().sleep(1000);
repaint();
}
}
public Dimension getPreferredSize() {
return new Dimension(400,250);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
//g.drawString("Immagine Caricata!",10,20);
g.drawImage(img,20,20,img.getWidth(this),img.getHeight(this),this);
}
private static class Esecutore implements Runnable {
public void run() {
int a;
try {
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("C:\\\BioLib-Test.exe");
status=true;
System.out.println("Acquisizione avviata");
a=p.waitFor();
status=false;
System.out.println("Acquisizione terminata. Ritorna:"+a);
} catch (Exception e) {
System.err.println(e);
}
}
}
}