Я пытаюсь нарисовать некоторые фигуры и линии на объекте Canvas SWT, используя GC [Graphics Context]. Объект Canvas инициализируется с фиксированным размером & V_SCROLL | H_SCROLL. Я хочу, чтобы Canvas мог прокручиваться, как только GC превышает границы Canvas. Хотя полосы прокрутки появляются, они не работают, и последняя часть линий усекается.Прокрутка не работает с Canvas & GC в Java SWT
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 не поддерживает эти стили. Возможный дубликат http://stackoverflow.com/q/15133999/2670892 –
@ greg-449: Я не мог сделать это с помощью Canvas & Group; вместо этого я попробовал ScrollableComposite, Group & Image, и теперь он работает. – Cjo