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?