📄 namepage.java
字号:
/**
* @作者:陈刚
* @Email:glchengang@yeah.net
* @Blog:http://blog.csdn.net/glchengang
*/
package jface.dialog.wizard;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
public class NamePage extends WizardPage {
private Text nameText;
private Text emailText;
private String nameTextValue;
private String emailTextValue;
/**
* 继承父类的构造函数
*/
protected NamePage(String pageName) {
super(pageName);
}
/*
* 改写父类的createControl方法,在此方法里构建页面上的界面组件。注意不要在
* 传入参数parent基础直接创建界面元素,而应在一个新面板topComp上创建
*/
public void createControl(Composite parent) {
//创建一个组件的底层面板,并使用GridLayout布局
Composite topComp = new Composite(parent, SWT.NULL);
topComp.setLayout(new GridLayout());
//创建“姓名”文本框
nameText = new Text(topComp, SWT.BORDER);
nameText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
nameText.setText(nameTextValue == null ? "" : nameTextValue);//防空值
nameText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
dataChanged(); //输入值的合法性判断
}
});
//创建“Email”文本框
emailText = new Text(topComp, SWT.BORDER);
emailText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
emailText.setText(emailTextValue == null ? "" : emailTextValue);
emailText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
dataChanged();
}
});
//每页的提示信息
setTitle("用户信息");
setMessage("请输入您的姓名及Email", INFORMATION);
//必须要的一行
this.setControl(topComp);
}
/**
* 自定义方法。数据变化时对数据的合法性做检查
*/
private void dataChanged() {
if (nameText.getText().length() == 0) {
setErrorMessage("姓名不能为空"); //提示错误信息
setPageComplete(false); //使“完成”和“下一步”两按钮不可用
return;
}
if (emailText.getText().length() > 0) {
if (emailText.getText().indexOf("@") < 0) {
setErrorMessage("Email的格式错误");
setPageComplete(false);
return;
}
}
setErrorMessage(null); //消除对话框上的出错提示文字
setPageComplete(true); //使“完成”和“下一步”两按钮可用
}
/*
* --------相应的set/get方法 ---------------
*/
public String getName() {
nameTextValue = nameText.getText();
return nameTextValue;
}
public void setName(String string) {
nameTextValue = string;
}
public String getEmail() {
emailTextValue = emailText.getText();
return emailTextValue;
}
public void setEmail(String string) {
emailTextValue = string;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -