0
我使用下面的代码来组合两个画布。扩展或增加水平滚动条宽度
public static void main(String[] args) {
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
shell.setText("Canvas Test");
Composite mainComp = new Composite(shell, SWT.NONE);
GridLayout layout = new GridLayout(2, false);
layout.horizontalSpacing = 0;
mainComp.setLayout(layout);
mainComp.setLayoutData(new GridData(SWT.BEGINNING, SWT.TOP, true, true));
final Canvas hwCanvas = new Canvas(mainComp, SWT.NO_REDRAW_RESIZE | SWT.V_SCROLL);
hwCanvas.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
hwCanvas.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
hwCanvas.setLayoutData(new GridData(SWT.BEGINNING, SWT.TOP, false, true));
hwCanvas.getVerticalBar().setVisible(false);
final Canvas traceCanvas = new Canvas(mainComp, SWT.NO_REDRAW_RESIZE | SWT.H_SCROLL | SWT.V_SCROLL);
traceCanvas.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
traceCanvas.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
traceCanvas.setLayoutData(new GridData(SWT.BEGINNING, SWT.TOP, true, true));
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
是否有可能增加水平滚动条的宽度(长度)如下所示 snapshot
是的,我可以这样做,但如果我隐藏水平第二个画布的ontal滚动条,并将水平滚动条添加到主要组合中,然后当我滚动主要组合的水平滚动条时,它会滚动第一个和第二个画布。我不想滚动第一个画布及其内容。我想冻结第一个画布,只有滚动应该发生在第二个画布上 –
我误解了您的原始问题。你是说当第二个画布的水平滚动条不像画布本身那样宽时? – stracka