【发布时间】:2016-02-19 07:46:01
【问题描述】:
我正在尝试使用 GC[Graphics Context] 在 SWT Canvas 对象上绘制一些形状和线条。 Canvas 对象以固定大小和 V_SCROLL|H_SCROLL 进行初始化。一旦 GC 超出 Canvas 边界,我希望 Canvas 可以滚动。 虽然滚动条出现了,但它们无法正常工作,并且行的最后一部分被截断。
Group grpSchema = new Group(shell, SWT.NONE);
grpSchema.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
grpSchema.setText("Picture");
Button btnPaint = new Button(shell, SWT.NONE);
btnPaint.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1));
btnPaint.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
if(null != canvas){
canvas.dispose();
}
canvas = new Canvas(grpSchema, SWT.V_SCROLL|SWT.H_SCROLL);
canvas.setBounds(10, 20, 200, 200);
canvas.addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent arg0) {
GC gc = arg0.gc;
gc.drawLine(0, 0, 200, 500);
}
});
}
});
btnPaint.setText("paint");
【问题讨论】:
-
Canvas 不支持这些样式。 stackoverflow.com/q/15133999/2670892 的可能重复项
-
@greg-449 :我无法用 Canvas & Group 做到这一点;相反,我尝试使用 ScrollableComposite、Group 和 Image,它现在可以工作了。
标签: java swt uigraphicscontext