Tag: listeners

如何解决swing侦听器内存泄漏?

背景 所以我读到,Swing应用程序中的内存泄漏通常源于各种侦听器(鼠标,键,焦点等)的使用。 本质上,因为您将对象注册为侦听器而忘记取消注册该对象,通知程序最终会保留对象的引用,并泄漏一些内存。 我知道我们的应用程序不是取消注册听众,并对潜在的解决方案进行了一些研究: 我发现处理问题的一种方法是使用WeakReference,可以在这里找到关于swing侦听器的方法的完整细节。 然后,我对NetBeans表单编辑器如何生成代码以在监听器添加到表单后清理并发现NetBeans通过包装对象注册侦听器感到好奇,即 argTypeComboBox.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { argTypeComboBoxItemStateChanged(evt); } }); 但是生成的代码似乎没有通过调用removeItemListener来清理。 问题 包装对象是否像弱引用? 对我来说,它看起来可能会泄漏少量内存(包装对象的大小)? 在处理监听器时,您是否有其他方法来确保在完成监听时始终收集垃圾?

“线程中的exception”AWT-EventQueue-0“java.lang.NullPointerException”。 我不知道我做错了什么

我正在为AP计算机科学决赛制作计算器。 我使用Jigloo在Eclipse中构建了GUI,我很快就尝试了解Action Listeners,这样你就可以点击按钮来显示数字。 当我开始输入实际代码进行计算时,问题就开始出现了。 我一直收到以下错误: Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException at NewJFrame.(NewJFrame.java:82) at NewJFrame$1.run(NewJFrame.java:73) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown […]

听众有更好的练习吗?

假设我有一个swing GUI,我想听MouseEvents 。 你认为谁应该是听众课,谁应该负责? 实施它的最佳或首选方式是什么? 任何意见? 我通常会这样: public class MyPanel extends JPanel implements MouseListener{ private JTable table; public void foo(){ table.addMouseListener(this); } /* MouseListener */ //Implement MouseListener here. } 有没有更好的办法? 编辑:谢谢大家的智慧和帮助。 我很感激。

获得JToggleButton的状态

说我有一个 JToggleButton but = new JToggleButton(“OK”) ; 现在我需要状态, but当它被点击时。 我的意思是我需要知道它是否被点击了。