我正在尝试确定SWT视图的大小,以便可以在插件中正确布置窗口小部件。我正在使用Java 8在Eclipse Neon上运行。我使用的代码如下:import org.eclipse.swt.SWT;import org.eclipse.swt.graphics.Point;import org.eclipse.swt.graphics.Rectangle;import org.eclipse.swt.layout.RowData;import org.eclipse.swt.layout.RowLayout;import org.eclipse.swt.widgets.Composite;import org.eclipse.ui.part.ViewPart;import com.google.common.collect.ImmutableList;import com.google.common.collect.Iterables;public class ClockView extends ViewPart {/** * The constructor. */ public ClockView() { } /** * This is a callback that will allow us * to create the viewer and initialize it. */ @Override public void createPartControl(Composite parent) { final RowLayout layout = new RowLayout(SWT.HORIZONTAL); layout.center = true; layout.justify = true; final Point area = parent.getSize(); final ImmutableList<Integer> clockWidths = ImmutableList.<Integer>of(100, 200, 400); layout.marginWidth = (area.x - Iterables.getLast(clockWidths, null)) / 2; layout.marginHeight = (area.y - Iterables.getLast(clockWidths, null)) / 2; parent.setLayout(layout); clockWidths.forEach(width -> { ClockWidget c = new ClockWidget(parent, SWT.NONE); c.setLayoutData(new RowData(width, width)); }); } /** * Passing the focus request to the viewer's control. */ @Override public void setFocus() { }}我的问题是,我尝试的每个方法都为视图的大小返回0、0。我尝试了scrollable.getClientArea和Composite.getSize。如何确定可使用的区域?
添加回答
举报
0/150
提交
取消