SWT:没有更多控制句柄

时间:2016-06-16 06:13:02

标签: java swt

使用eclipse,我为我的应用程序创建了一个带有2个选项卡的表单编辑器。一个选项卡用于GUI支持,另一个选项卡用于普通文本编辑器。在GUI页面中,我一直在使用数百个SWT控件,如表格,部分,按钮等。

问题是当我在我的应用程序中使用表单编辑器打开超过20个文件时,我得到一个例外“SWT:没有更多句柄”。我可以理解,没有更多的控件句柄可以为表单编辑器创建控件。如果有足够的句柄,我可以检查控制句柄的可用性并继续打开文件。否则我无法打开文件本身。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

你可能已达到极限。请注意,平台(macOS,Linux,Windows)之间的句柄数量差异很大,因此如果您打算在不同的平台上运行它,则需要对所有平台进行测试。

如果您使用的是来自ResourceColorFontImageCursor,....)的SWT课程,那么您必须致电完成后对象上的dispose。如果不这样做会泄漏处理。

您还应尝试共享这些资源 - 例如,不要每次都创建新的Color。使用处理共享颜色的管理器类,管理器类也可以处理资源的处理。

JFace提供可能有用的ColorRegistryFontRegistryImageRegistry等经理类。

如果这还不够,你可以减少这么多的控​​件,也许你可以使用弹出对话框来显示按下按钮时的一些信息。