java - 实例呈指数增长 - 消耗内存

标签 java swing memory-leaks jbutton jtogglebutton

我创建了一个扫雷游戏,每次启动新游戏时都会生成一个二维 JButton 数组。问题是内存使用量呈指数增长(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);
  }
 }

最佳答案

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

在程序启动时分配一个网格的按钮,并在每个游戏中重复使用它们。

关于java - 实例呈指数增长 - 消耗内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12377330/

相关文章:

java - 如何创建具有光泽颜色的 JMenuBar?

java - 将鼠标悬停在 JSplitPane 分隔线上时更改光标

java - 复选框节点树,自定义渲染器

c - 在局部函数中动态分配和释放内存

java - 使用全屏按钮在下一个 Activity 中播放视频

java - J2ME 中可以通过字符串值设置日期字段吗?

java - 从 ArrayList 与哈希表中删除的 Big-O 中存在不一致吗?

java - 如何有效管理Android应用程序的内存(堆)

function - Fortran 多态性、函数和分配

java - 使用 Xerces XNI 的简单示例?