getShell.pack()不适用于自定义Canvas扩展

时间:2014-12-12 09:03:22

标签: java button layout canvas eclipse-rcp

我使用的是自定义"按钮"但是,对于Eclipse RCP的实现,这个实现的问题是,getShell.pack()调用没有正确地考虑到这个"按钮"实例,也就是说,它们就像这些"按钮"对话框中没有实例。这是图片说明:

enter image description here

此外,这里是"按钮的实现":http://pastebin.com/gWufPpb5

正如您所看到的,它是Canvas的扩展,但是如果我尝试将Canvas实例放入我的对话框并且它被正确考虑,那么这个"按钮"实现可能会破坏一些Canvas方法/变量,这有助于getShell.pack()计算对话框的正确大小,但似乎无法找出哪个。

所以,我需要知道的是在计算时getShell().pack()调用的对话框内的每个小部件的属性/方法(我想这是同一个小部件),所以我可以弄清楚这个自定义"按钮"正在破坏对话框布局的计算。

编辑:

布局代码:

    GridData gridData;
    Composite newContainer;

    mainLayout = new GridLayout(2, true);
    mainLayout.marginHeight = 5;
    mainLayout.marginWidth = 5;
    mainLayout.marginLeft = 5;
    mainLayout.marginRight = 5;
    mainLayout.horizontalSpacing = 15;
    mainLayout.verticalSpacing = 10;

    newContainer = new Composite(parent, SWT.NONE);
    newContainer.setLayout(mainLayout);

1 个答案:

答案 0 :(得分:0)

方法

public Point computeSize(int wHint, int hHint, boolean changed)
pack处理期间调用每个控件上的

。具体如何使用大小取决于您使用的布局。