Hej NG
Jeg har skrevet et primitivt prg med swing (hvilket jeg ikke har den store
erfaring med). Programmet skal indlæse henvisninger til billedefiler, og
herefter hente dem og vise dem på skærmen, alt dette virker fint. Mit
problem er dog at billederne bliver i hukommelsen, og ikke forsvinder
(Threads).
Jeg har prøvet at kalde System.gc()
- Jeg har vedlagt en stump
(ret rodet - sorry)
Håber nogle kan hjælpe!
På forhånd tak.
ImageUpdate up = new ImageUpdate();
ImageIcon imageIcon;
JScrollPane jScrollPane1 = new JScrollPane();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
JButton jButton4 = new JButton();
JPanel jPanel1 = new JPanel(true);
JLabel imageControl1 = new JLabel();
public Frame1()
{
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
Image icon = createImage(10,10);
icon = getToolkit().getImage("icon.gif");
this.setIconImage(icon);
this.setSize(1024,768);
this.setTitle("image");
this.getContentPane().setLayout(null);
setResizable(false);
jScrollPane1.setBounds(new Rectangle(20, 40, 950, 650));
jScrollPane1.getViewport().add(jPanel1, null);
jButton1.setText("Load new...");
jButton1.setBounds(new Rectangle(399, 10, 100, 27));
jButton1.addActionListener(this);
jButton2.setText("Exit");
jButton2.setBounds(new Rectangle(509, 10, 100, 27));
jButton2.addActionListener(this);
jButton3.setText("About");
jButton3.setBounds(new Rectangle(809, 10, 100, 27));
jButton3.addActionListener(this);
jButton4.setText("Auto");
jButton4.setBounds(new Rectangle(109, 10, 100, 27));
jButton4.addActionListener(this);
jPanel1.add(imageControl1, null);
this.getContentPane().add(jScrollPane1, null);
this.getContentPane().add(jButton1, null);
this.getContentPane().add(jButton2, null);
this.getContentPane().add(jButton3, null);
this.getContentPane().add(jButton4, null);
}
protected void processWindowEvent(WindowEvent e)
{
super.processWindowEvent(e);
if(e.getID() == WindowEvent.WINDOW_CLOSING)
{
System.exit(0);
}
if(e.getID() == WindowEvent.WINDOW_ACTIVATED)
{
this.repaint();
}
}
protected void finalize()
{
try {
super.finalize();
}
catch(Throwable t) {}
}
void jButton1()
{
nytBillede();
}
void jButton2_actionPerformed(ActionEvent e)
{
System.exit(0);
}
void nytBillede()
{
String temp = up.getNext(); //Henter en tilfældig string
imageIcon = new ImageIcon(getToolkit().getImage(temp));
this.setTitle("Image " + temp);
imageControl1.setIcon(imageIcon);
System.gc();
System.out.println("Tråd er " + Thread.activeCount());
}
|