对于一个学校项目,我正在用JAVA编写一个BlackJack纸牌游戏。JPanels,听众和线程
经过程序中的几个步骤后,我的整个计算机系统变慢/断断续续,并且JFrame中的一些区域变黑。似乎不会发生重新粉刷。
我会用单词给你一些程序细节,而不是提交代码。
我已经做了几乎每个GUI组件的广泛扩展,以使它具有我想要的外观和感觉。几乎我使用的JComponent的每个孩子都会在适用的情况下将其paintComponent重写为自定义图像背景和消除锯齿。
在我的(自定义)JFrame中加载JPanel的扩展版本。该面板包含该屏幕的所有GUI组件。当我想切换屏幕(转到程序的另一部分)时,我切换到JPanel的另一个扩展版本。我通过从JFrame中删除所有元素并添加新面板来做到这一点。这些不同的面板实现了ActionListener和FocusListener。
在这一点上,我的想法倾向于一个线程处理问题。我目前的理论是这样的:当一个面板被构建为在JFrame中显示时(每个面板在te程序中的不同阶段),先前构建的面板不会被“销毁”,并且这些面板的监听器保持活动状态。
我对你们的问题是,这个理论是否存在......在这种情况下,有没有办法'杀死'这些面板或至少停止听力?
如果我的理论没有意义,还有什么可能导致这些症状?它可能是paintComponent方法的广泛覆盖?
任何想法将高度appriciated!
问候威尔科
没有看到代码,我真的怀疑任何人都可以帮助你。有一件事 - 我不明白为什么要从旧的JPanel中删除所有组件 - 这不是必需的。你内存不足了吗?你描述的行为听起来像你可能。 – Kaffiene 2011-02-28 02:42:01