Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Canvas 扩展或增加水平滚动条宽度_Canvas_Eclipse Plugin_Swt_Scrollbar_Eclipse Rcp - Fatal编程技术网

Canvas 扩展或增加水平滚动条宽度

Canvas 扩展或增加水平滚动条宽度,canvas,eclipse-plugin,swt,scrollbar,eclipse-rcp,Canvas,Eclipse Plugin,Swt,Scrollbar,Eclipse Rcp,我使用下面的代码来组合两个画布 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.NO

我使用下面的代码来组合两个画布

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();
}

是否可以按此处所示增加水平滚动条的宽度(长度)

尝试将滚动条移动到包含两个画布组件的组件上,这样水平滚动条就可以控制两个画布组件的总宽度:

Composite mainComp = new Composite(shell, SWT.H_SCROLL | SWT.V_SCROLL);
:
final Canvas hwCanvas = new Canvas(mainComp, SWT.NO_REDRAW_RESIZE);
:
final Canvas traceCanvas = new Canvas(mainComp, SWT.NO_REDRAW_RESIZE);

是的,我可以这样做,但如果我隐藏第二个画布的水平滚动条,并将水平滚动条添加到主组合中,那么当我滚动主组合的水平滚动条时,它会同时滚动第一个和第二个画布。我不想滚动第一个画布及其内容。我想冻结第一张画布,第二张画布只能滚动。我误解了你原来的问题。你是说当第二个画布的水平滚动条没有画布本身那么宽时?