logondialog.java

来自「学生成绩管理系统 eclipse rcp开发 swt技术」· Java 代码 · 共 86 行

JAVA
86
字号
package com.zdh.sms.navigator;

import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

import com.zdh.sms.db.DbOperate;
import com.zdh.sms.model.IUser;
import com.zdh.sms.system.Context;
import com.zdh.sms.system.SmsFactory;


public class LogonDialog extends Dialog {
	private Text userIdText; // 用户名文本框

	private Text passwordText;// 密码文本框

	public LogonDialog(Shell parentShell) {
		super(parentShell);
	}

	protected Control createDialogArea(Composite parent) {
		getShell().setText("用户登录");
		Composite c = new Composite(parent, SWT.NONE);

		c.setLayoutData(new GridData(GridData.FILL_BOTH));

		c.setLayout(new GridLayout(2, false));

		new Label(c, SWT.NONE).setText("用户名:");
		userIdText = new Text(c, SWT.BORDER);
		userIdText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

		new Label(c, SWT.NONE).setText("密    码:");
		passwordText = new Text(c, SWT.BORDER);
		passwordText.setEchoChar('*');
		passwordText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

		return c;
	}

	protected void buttonPressed(int buttonId) {
		if (buttonId == IDialogConstants.OK_ID) {
			String userId = userIdText.getText().trim();
			String password = passwordText.getText().trim();
			if (userId == null || userId.equals("")) {
				MessageDialog.openWarning(getShell(), "Message", "用户名不能为空");
				userIdText.setFocus();
				return;
			}
			if (password == null || password.equals("")) {
				MessageDialog.openWarning(getShell(), "Message", "密码不能为空");
				passwordText.setFocus();
				return;
			}
			// 到数据库中验证
			DbOperate db = SmsFactory.getDbOperate();// 得到一个数据库操作类
			IUser user = db.getUser(userId);// 从数据库中根据userId取得此用户

			if (user == null) {
				MessageDialog.openInformation(getShell(), "Message", "用户名不存在");
				userIdText.setFocus();
				userIdText.selectAll();
				return;
			}
			String dbPassword = user.getPassword();
			if (dbPassword == null || !dbPassword.equals(password)) {
				MessageDialog.openInformation(getShell(), "Message", "密码错误");
				passwordText.setFocus();
				passwordText.selectAll();
				return;
			}

			Context.getInstance().setCurrentUser(user); // 将当前登录用户保存起来
		}
		super.buttonPressed(buttonId);
	}
}

⌨️ 快捷键说明

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