发现它会自己适应组件调整初始大小。(类似Swing的pack()方法)
我希望设置自己的大小,但在createDialogArea(Composite parent)方法中
用getShell().setSize()设置后发现有问题。
setSize() 语句后的所有要添加的组件都不往上添加了。
======================== Dialog代码如下 ===================================
/**
* 类名称 [PurposeConfiger]
* 创建日期 2005-3-3
* @author 一品狐 (创建者)
*
* 功能描述:用途信息配置窗口
*/
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
public class PurposeConfiger extends Dialog {
private Shell shell = null;
private Text text = null; /**** 其实我是想让这个文本框显示多行 ****/
public PurposeConfiger(Shell parentShell) {
super(parentShell);
}
protected Control createDialogArea(Composite parent) {
Shell shell = this.getShell();
shell.setText("配置[用途]预制信息");
shell.setStze(300,300); /*** 次语句后的所有要添加的组件都不添加了 ****//
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 1;
gridLayout.horizontalSpacing = 10;
gridLayout.marginHeight = 5;
gridLayout.marginWidth = 5;
gridLayout.makeColumnsEqualWidth = true;
parent.setLayout(gridLayout);
{
Label inf = new Label(parent, SWT.NONE);
inf.setText("预制用途信息,每行一个");
GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 1;
inf.setLayoutData(gridData);
}
{
Text text = new Text(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
GridData gridData = new GridData(GridData.FILL_HORIZONTAL
| GridData.FILL_VERTICAL);
gridData.horizontalSpan = 1;
gridData.verticalSpan = 5;
text.setLayoutData(gridData);
}
return parent;
}
protected int getShellStyle() {
return super.getShellStyle() | SWT.RESIZE;
}
}
5 个解决方案
#1
原来不是没有添加,是无法显示
用鼠标调节大小后就显示出来了,
但如何才能让它自动刷新呢??
用鼠标调节大小后就显示出来了,
但如何才能让它自动刷新呢??
#2
UP
#3
用鼠标调节大小后就显示出来了,
但如何才能让它自动刷新呢??
===================
用了UpdateUI() 么?
但如何才能让它自动刷新呢??
===================
用了UpdateUI() 么?
#4
是 SWT !
#5
又自己解决了…… 每次都这样。
你们连探讨一下的勇气都没有么?
真是的……
你们连探讨一下的勇气都没有么?
真是的……
#1
原来不是没有添加,是无法显示
用鼠标调节大小后就显示出来了,
但如何才能让它自动刷新呢??
用鼠标调节大小后就显示出来了,
但如何才能让它自动刷新呢??
#2
UP
#3
用鼠标调节大小后就显示出来了,
但如何才能让它自动刷新呢??
===================
用了UpdateUI() 么?
但如何才能让它自动刷新呢??
===================
用了UpdateUI() 么?
#4
是 SWT !
#5
又自己解决了…… 每次都这样。
你们连探讨一下的勇气都没有么?
真是的……
你们连探讨一下的勇气都没有么?
真是的……