【发布时间】:2016-05-03 11:22:02
【问题描述】:
在下面的代码中,我使用了 SWT 和 draw2d。当我运行程序时,没有任何显示。经过一番调试,我发现这是因为容器的大小都是0。我必须手动输入一个大小,如
canvasData.heightHint = 500;
canvasData.widthHint = 500;
这很好,很漂亮,但我需要这些容器来适应形式给它们的空间。有没有办法做到这一点?任何建议都会有所帮助。
/* (non-Javadoc)
* @see org.eclipse.ui.forms.editor.FormPage#createFormContent(org.eclipse.ui.forms.IManagedForm)
*/
@Override
protected void createFormContent( IManagedForm managedForm )
{
super.createFormContent(managedForm);
ScrolledForm form = managedForm.getForm();
Composite tabParent = managedForm.getToolkit().createComposite(form.getBody());
GridData tabParentData = new GridData(SWT.FILL,SWT.FILL,true,true);
tabParent.setLayoutData(tabParentData);
tabParent.setLayout(new GridLayout());
FigureCanvas canvas = new FigureCanvas(tabParent);
GridData canvasData = new GridData(SWT.FILL,SWT.FILL,true,true);
canvas.setLayoutData(canvasData);
//diagramContents is an IFigure from draw2d. it holds other IFigures, Labels, ect.
//Essentially everything being displayed
canvas.setContents(diagramContents);
//This method is what creates everything being displayed (the stuff in diagramContents)
refreshDisplayFromModel();
canvas.pack();
tabParent.pack();
}
【问题讨论】: