Grafiken anzeigen

Status
Nicht offen für weitere Antworten.

rogi1

Mitglied
Sorry... ich weis, es existieren schon jede menge posts darüber.... Ich bekomms aber trotzdem nicht hin

Ich möchte ein Panel, von einem Thread kontinuierlich updaten. In dem Panel sollen grafiken angezeigt werden. Diese grafiken sollen schließlich die CPU last, Netzwerk und Ram veranschalulichen. Dafür übergebe ich das JPanel dem Thread, welcher dann die Grafik im Panel zeichnen/aktualisieren soll.

Das problem dabei ist, glaube ich, dass die Grafik nach dem starten der GUI erstellt wird, also muss ich das irgendwie aktualisieren. validate & repaint haben keine lösung ergeben.


so rufe ich den Thread auf... (müsste richtig sien)
Code:
refresh fresh = new refresh();
            fresh.refresh(smblog,kernellog,graph,smbstatus,ssho);
            
            Thread th = new Thread(fresh);
            th.start();

So versuche ich die Grafik anzuzeigen
Code:
class refresh implements Runnable {
    JTextArea smbstatus;
    ssh ssh;
    JPanel grapho;
    JTextArea smblog;
    JTextArea kernellog;
    
   Image image = Toolkit.getDefaultToolkit().getImage( "/home/roxi/leiste.gif" );
   jpanelimage jimage = new  jpanelimage();
    
   
    public void refresh(JTextArea smblog1,JTextArea kernellog1, JPanel graph, JTextArea param1, ssh param2){
    grapho = graph;
    smbstatus = param1;
    ssh = param2;
    smblog = smblog1;
    kernellog = kernellog1;
    

    }
    
    public void run(){
        System.out.println("tread started");
        while(true)
        {
        
           
           try{
           
             String pic = "/home/roxi/leiste.gif";
             jpanelimage test = new jpanelimage();
             test.jpanelimage(pic);
             grapho.add(test);
             grapho.validate();
             grapho.repaint();
             test.validate();
             test.repaint();

                Thread.sleep(2000);
           } catch(InterruptedException e){}
            
        }
    }
    
}



Das ist der zugeörige Code aus dem Internet....
Habs auch schon mit einer classe probiert welche JPane erweitert.. hat auch nicht funktioniert...
Code:
class jpanelimage extends Canvas
{
  private Image img = null;

  public void jpanelimage( String sFile )
  {
    img = getToolkit().getImage( sFile );
    MediaTracker mt = new MediaTracker( this );
    mt.addImage( img, 0 );
    try { mt.waitForAll(); } catch( InterruptedException ex ) { }
  }

  public void paint( Graphics g )
  {
    g.drawImage( img, 0, 0, this );
  }

  public Dimension getPreferredSize()
  {
    return new Dimension( img.getWidth( this ), img.getHeight( this ) );
  }

  public Dimension getMinimumSize()
  {
    return getPreferredSize();
  }
}

hm...
Warscheinlich aktualisier ich die grafik fasch ....oder???
glg
Martin
 
naja, ich frag mich auch was sich da an der Grafik ändern sollte... du lädst ja ein statisches Bild und stellst dieses dar (dieses hier ~leiste.gif).. oder hab ich da was übersehen?

btw. Klassennamen bitte gross... CodeConvention...
 
Die grafik soll natürlich dann auch verändert werden, aber wenn sich diese schon nicht anzeigen lässt, für was der restliche code??

Anfangs gehts also darum, die Grafik fürs erste anzuzeigen....
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben