Aar*_*ger 2 java swt resize screen
我在这里的尝试基本上是在程序运行时热切换组件。如果用户按下按钮,则作为浏览器的控件将变成文本控件。我使用一个控件指向浏览器,然后将其切换为指向Text控件(该控件在非显示外壳上画在屏幕外)但是,我遇到了一些问题。当前,当按下按钮时,浏览器消失,但在调整外壳大小之前,该位置没有任何显示。
以下是相关的代码段:
切换例程:
private void switchWindow(Control cont) {
bottomPointer.setParent(offDraw);
bottomPointer = cont;
bottomPointer.setParent(outer);
bottomPointer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
outer.redraw();
}
Run Code Online (Sandbox Code Playgroud)
创建对象的buttonListener:
class textSelectionListener implements SelectionListener {
public void widgetSelected(SelectionEvent event) {
Text bottomText = new Text(offDraw, SWT.MULTI | SWT.WRAP | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
gd.grabExcessVerticalSpace = true;
gd.grabExcessHorizontalSpace = true;
bottomText.setLayoutData(gd);
switchWindow(bottomText);
}
Run Code Online (Sandbox Code Playgroud)
我的大小调整后的监听器:
outer.addListener (SWT.Resize, new Listener () {
//add resize listener to automatically resize both browsers
public void handleEvent (Event e) {
Rectangle clientArea = outer.getClientArea ();
browser.setLayoutData(new GridData(clientArea.width, 3*clientArea.height/5));
bottomPointer.setLayoutData(new GridData(GridData.FILL_BOTH));
}
});
Run Code Online (Sandbox Code Playgroud)
我已经尽一切努力解决了这种情况,但是唯一有效的方法是调整外壳大小。
我可能正在解决这个可怕的错误,但这是我的第一个主要项目之一,所以我只是一窍不通。
| 归档时间: |
|
| 查看次数: |
4029 次 |
| 最近记录: |