⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 namepage.java

📁 SWTJFace篇项目源程序该项目包含 包含了Eclipse下构建swt的基本工程
💻 JAVA
字号:
package cn.com.chengang.jface.dialog.wizard;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.validator.EmailValidator;
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 String name;
	private String email;
	private Text nameText;
	private Text emailText;

	// 必须继承父类的构造函数
	protected NamePage(String pageName) {
		super(pageName);
	}

	// 改写自父类的方法,在此方法中构建页面上的界面组件。注意不要在传入参数parent基础直接创建界面元素,而应在一个新面板topComp上创建
	public void createControl(Composite parent) {
		// 每页的提示信息
		setTitle("用户信息");
		setMessage("请输入您的姓名及Email", INFORMATION);
		// 创建一个页面组件的底层面板,并使用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));
		// 将null转化成"",等效于 name== null ? "" : name
		nameText.setText(StringUtils.defaultString(name));
		// 创建“Email”文本框
		emailText = new Text(topComp, SWT.BORDER);
		emailText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
		emailText.setText(StringUtils.defaultString(email));
		// 给两文本框加入监听器
		MyModifyListener listener = new MyModifyListener();
		nameText.addModifyListener(listener);
		emailText.addModifyListener(listener);
		// 必须要的一行
		setControl(topComp);
	}

	// 此监听器,每次文本框里的文本变动都会触发,触发频度较大
	private class MyModifyListener implements ModifyListener {
		public void modifyText(ModifyEvent e) {
			setPageComplete(false); // 先使“完成”和“下一步”两按钮无效
			// 用Apache Commons Lang的StringUtils可以检查出全角空格
			name = nameText.getText().trim();// 设回实例变量name
			if (StringUtils.isBlank(name)) {
				setErrorMessage("姓名不能为空"); // 提示错误信息
				return;
			}
			// 用了Apache Commons Validator的 EmailValidator来检查Email写法的合法性
			EmailValidator validator = EmailValidator.getInstance();
			email = emailText.getText().trim();// 设回实例变量email
			if (!validator.isValid(email)) {
				setErrorMessage("Email的格式错误");
				return;
			}
			// 前面的检查都通过后......
			setErrorMessage(null); // 消除对话框上的出错提示
			setPageComplete(true); // 使“完成”和“下一步”两按钮可用
		}
	}

	// --------相应的Setter/Getter方法 ---------------
	public String getName() {
		return name;
	}

	public void setName(String string) {
		name = string;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String string) {
		email = string;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -