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); } } } }

Rispondi quotando