title image


Smiley Problem mit Graphik-Aktualisierung
Moin.



Folgendes Problem: Ich lasse eine PNG-Graphik in einem eigenen Fenster anzeigen. Funktioniert auch prima.



Problem ist, dass sich die Graphik-Datei im Laufe des Programms ändert - und es ist mir nicht gelungen die angezeigte Graphik dann zu aktualisieren, obwohl auf der Festplatte definitiv die Graphik geändert wurde, zeichnet auch ein repaint() das Teil manchmal(!) nicht neu ... drückt man ca. 5 bis 10 mal den Button, dann wirdsirgendwann aktualisiert ...



So sieht das ungefähr aus:



ShowChart sc = new ShowChart(filename);

sc.repaint();



der Code von ShowChart:



public class ShowChart extends JFrame {

JPanel contentPane;

BorderLayout borderLayout1 = new BorderLayout();

JPanel jPanel1 = new JPanel();

String filename;



public ShowChart(String s) {

try {

filename = s;

//System.out.println("s: " + s);

setDefaultCloseOperation(DISPOSE_ON_CLOSE);

jbInit();

} catch (Exception exception) {

exception.printStackTrace();

}

}





public void MyImgShow( String sFile )

{

//super( sFile );

setSize( 640, 480 );

setVisible( true );

add( new ImgShowComponent( sFile ) );

pack();



addWindowListener(

new WindowAdapter() {

public void windowClosing( WindowEvent ev ) {

dispose();

// System.exit( 0 );

} } );

}



private void jbInit() throws Exception {

contentPane = (JPanel) getContentPane();

contentPane.setLayout(borderLayout1);

this.setIconImage(null);

setSize(new Dimension(640, 480));

setTitle("ShowChart");

contentPane.add(jPanel1, java.awt.BorderLayout.CENTER);



MyImgShow(filename);





}

}





Und dann noch ImgShowComponent:



public class ImgShowComponent extends Canvas {

private Image img = null;



ImgShowComponent( String sFile )

{

img = getToolkit().getImage( sFile );



// img = getToolkit().getImage(getClass().getResource(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();

}



}


------------
http://www.thomas-zastrow.de

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: