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)
So versuche ich die Grafik anzuzeigen
Das ist der zugeörige Code aus dem Internet....
Habs auch schon mit einer classe probiert welche JPane erweitert.. hat auch nicht funktioniert...
hm...
Warscheinlich aktualisier ich die grafik fasch ....oder???
glg
Martin
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