Hey, I have a program in which I display PNG and GIF images on JPanel. The code for displaying looks like this:
JPanel panel = (JPanel) CurrentStatus.getFrame().getContentPane().getComponent(43); panel.removeAll(); panel.updateUI(); ImageIcon icon = new ImageIcon(s); ImageIcon scaledicon = new ImageIcon(scaleIcon(icon.getImage(),850,500)); JLabel label = new JLabel(); label.setIcon(scaledicon); label.setBounds(x,y,z,v); panel.add(label); CurrentStatus.getFrame().getContentPane().add(panel); CurrentStatus.getFrame().repaint(); panel.repaint(); panel.revalidate();
The file that is being displayed is deleted from the system's memory after displaying. When I display a different file, the panel changes. However, when I try to display a file with the same name that was displayed beforehand (and deleted afterwards), but with changed parameters, the panel still shows the previous picture.
I tried every JPanel option for removing, revalidating, as you can see in the code, and the file is deleted and I have no idea where does he take the image from.
If I try not deleting the file, the file written in memory is different than the image didplayed.
So, for example: I create an image file in the program named dog.png. I display it on the panel, then I delete the file. After I display another created image file cat.png. The panel's image changes. The file is deleted. Then I create another file named dog.png, but with different parameters than the first dog. In memory the file is written with parameters changed. However, when I try to display it in JPanel, it returns to the previous image with original parameters, even if the file has been deleted previously.
Does anyone have any idea?


LinkBack URL
About LinkBacks
Reply With Quote