无法在 SWT 中保留 shell 大小

Unable to retain shell size in SWT

我有一个 SWT 应用程序,其中向用户显示了一个记录器 window。这个 window 里面有一个 table 并且被分成几列。我的要求是,如果用户更改列大小或 shell(window 大小)然后关闭 window,则应保留 window 和列的大小下次他打开相同的 window 以便保留他对大小的偏好。我可以通过使用

为 table 的列实现此目的
TableColumn[] columns = viewer.getTable().getColumns();
LogViewerColumnSize.INSTANCE.setColumnProperties(columns);

当我再次打开 shell 时,我正在设置数据中每列的大小。 但是,我无法获得 shell。 我尝试了以下方式 -

LogViewerColumnSize.INSTANCE.setLoggerSize(shell.getSize());

当我再次打开 shell -

Point shellSize = LogViewerColumnSize.INSTANCE.getLoggerSize(); 
if(shellSize != null) 
    shell.setSize(shellSize);

正在重新设置shell尺寸的默认值。

请帮忙。

如果您在此 setSize 调用之后调用 Shell.pack(),则 pack 调用将使用计算的默认大小覆盖 setSize 调用时的大小。

所以如果你设置了大小就不要调用pack