实例呈指数增长 - 吃内存

时间:2012-09-11 20:21:44

标签: java swing memory-leaks jbutton jtogglebutton

我创建了一个Minesweeper游戏,每次启动新游戏时都会生成一个JButtons的二维数组。问题是内存使用量呈指数级增长(JProfiler称它是JButtons)。似乎旧的Jbutton实例不仅保存在内存中,而且实例数量增加了一倍。我怎么能告诉它摆脱旧的JButtons?感谢

private JButton[][] but;
but = new JButton[row][col];
for (int i = 0;i<row;i++)
{    
  for (int j = 0;j<col;j++){
      but[i][j]= new JButton();
      but[i][j].setName(i+":"+j);
      mine.add(but[i][j]);
      but[i][j].addMouseListener(this);
  }
 }

1 个答案:

答案 0 :(得分:4)

这听起来像是游泳池模式的经典用例。

在程序启动时分配ONE grid的按钮值,并为每个游戏重复使用它们。