package propertymanagement.view;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import propertymanagement.model.User;
public class RegisterFrame extends BaseFrame {
private JTextField usernameField;
private JPasswordField passwordField;
private JPasswordField secPasswordField;
private JTextField emailField;
private JLabel register;
private JLabel reset;
private JLabel nameErrorLabel;
private JLabel pwdErrorLabel;
private JLabel secPwdErrorLabel;
private JLabel emailErrorLabel;
private LoginFrame loginFrame;
private SQLHelper sqlHelper = new SQLHelper();
/**
* Create the frame.
*/
public RegisterFrame() {
initEvent();
}
public RegisterFrame(LoginFrame loginFrame) {
this.loginFrame = loginFrame;
initEvent();
}
private void initEvent() {
usernameField.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
super.focusGained(e);
nameErrorLabel.setVisible(false);
usernameField.selectAll();
}
@Override
public void focusLost(FocusEvent e) {
super.focusLost(e);
if (!RegexUtil.checkUsername(usernameField.getText())) {
nameErrorLabel.setVisible(true);
}
}
});
passwordField.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
super.focusGained(e);
pwdErrorLabel.setVisible(false);
passwordField.selectAll();
}
@Override
public void focusLost(FocusEvent e) {
super.focusLost(e);
if (!RegexUtil.checkPassword(new String(passwordField.getPassword()))) {
pwdErrorLabel.setVisible(true);
}
}
});
secPasswordField.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
super.focusGained(e);
secPwdErrorLabel.setVisible(false);
secPasswordField.selectAll();
}
@Override
public void focusLost(FocusEvent e) {
super.focusLost(e);
if (!RegexUtil.checkSecPassword(new String(passwordField.getPassword()),
new String(secPasswordField.getPassword()))) {
secPwdErrorLabel.setVisible(true);
}
}
});
emailField.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
super.focusGained(e);
emailErrorLabel.setVisible(false);
emailField.selectAll();
}
@Override
public void focusLost(FocusEvent e) {
super.focusLost(e);
if (!RegexUtil.checkEmail(emailField.getText())) {
emailErrorLabel.setVisible(true);
}
}
});
register.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
User user = new User();
// getText()获得JTextField中的文本
user.setUsername(usernameField.getText());
// getPassword()获得JPasswordField中的密码
user.setPassword(new String(passwordField.getPassword()));
user.setEmail(emailField.getText());
if (sqlHelper.checkUser(user)) {
JOptionPane.showConfirmDialog(RegisterFrame.this, "用户已存在!", "警告",
JOptionPane.CLOSED_OPTION, JOptionPane.WARNING_MESSAGE);
} else {
sqlHelper.insertUser(user);
// 关闭注册窗口
RegisterFrame.this.dispose();
// 显示登录窗口
if (loginFrame != null) {
loginFrame.setVisible(true);
}
}
}
@Override
public void mousePressed(MouseEvent e) {
super.mousePressed(e);
// 设置按钮按下时的背景图片
register.setIcon(new ImageIcon(ImageURL.BUTTON_PRESSED));
}
@Override
public void mouseReleased(MouseEvent e) {
super.mouseReleased(e);
// 设置按钮抬起时的背景图片
register.setIcon(new ImageIcon(ImageURL.BUTTON_NORMAL));
}
});
reset.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
usernameField.setText("");
passwordField.setText("");
secPasswordField.setText("");
emailField.setText("");
}
@Override
public void mousePressed(MouseEvent e) {
super.mousePressed(e);
// 设置按钮按下时的背景图片
reset.setIcon(new ImageIcon(ImageURL.BUTTON_PRESSED));
}
@Override
public void mouseReleased(MouseEvent e) {
super.mouseReleased(e);
// 设置按钮抬起时的背景图片
reset.setIcon(new ImageIcon(ImageURL.BUTTON_NORMAL));
}
});
}
@Override
public void initFrame() {
JLabel titleLabel = new JLabel("");
titleLabel.setIcon(new ImageIcon(ImageURL.TITLE));
titleLabel.setBounds(100, 10, 210, 30);
getContentPane().add(titleLabel);
JLabel subTitleLabel = new JLabel("注 册 页 面");
subTitleLabel.setFont(MyFont.YAHEI_20_BOLD_FONT);
subTitleLabel.setBounds(165, 50, 98, 28);
getContentPane().add(subTitleLabel);
JLabel ussernameLabel = new JLabel("用 户 名:");
ussernameLabel.setFont(MyFont.YAHEI_12_FONT);
ussernameLabel.setBounds(100, 100, 60, 15);
getContentPane().add(ussernameLabel);
usernameField = new JTextField();
usernameField.setBounds(169, 97, 120, 21);
getContentPane().add(usernameField);
usernameField.setColumns(10);
JLabel passwordLabel = new JLabel("密 码:");
passwordLabel.setFont(MyFont.YAHEI_12_FONT);
passwordLabel.setBounds(100, 125, 60, 15);
getContentPane().add(passwordLabel);
passwordField = new JPasswordField();
passwordField.setBounds(169, 122, 120, 21);
getContentPane().add(passwordField);
JLabel secPasswordLabel = new JLabel("重复密码:");
secPasswordLabel.setFont(MyFont.YAHEI_12_FONT);
secPasswordLabel.setBounds(100, 150, 60, 15);
getContentPane().add(secPasswordLabel);
secPasswordField = new JPasswordField();
secPasswordField.setBounds(169, 147, 120, 21);
getContentPane().add(secPasswordField);
JLabel mailLabel = new JLabel("邮 箱:");
mailLabel.setFont(MyFont.YAHEI_12_FONT);
mailLabel.setBounds(100, 175, 60, 15);
getContentPane().add(mailLabel);
emailField = new JTextField();
emailField.setBounds(169, 172, 120, 21);
getContentPane().add(emailField);
emailField.setColumns(10);
register = new JLabel("注册");
register.setFont(MyFont.YAHEI_12_FONT);
register.setIcon(new ImageIcon(ImageURL.BUTTON_NORMAL));
register.setBounds(111, 230, 70, 21);
register.setHorizontalTextPosition(JTextField.CENTER);
getContentPane().add(register);
reset = new JLabel("重置");
reset.setFont(MyFont.YAHEI_12_FONT);
reset.setIcon(new ImageIcon(ImageURL.BUTTON_NORMAL));
reset.setBounds(221, 230, 70, 21);
reset.setHorizontalTextPosition(JTextField.CENTER);
getContentPane().add(reset);
nameErrorLabel = new JLabel("用户名不能为空");
nameErrorLabel.setFont(MyFont.YAHEI_10_FONT);
nameErrorLabel.setForeground(Color.RED);
nameErrorLabel.setBounds(299, 100, 91, 15);
nameErrorLabel.setVisible(false);
getContentPane().add(nameErrorLabel);
pwdErrorLabel = new JLabel("密码必须为6-20位");
pwdErrorLabel.setForeground(Color.RED);
pwdErrorLabel.setFont(MyFont.YAHEI_10_FONT);
pwdErrorLabel.setBounds(299, 125, 91, 15);
pwdErrorLabel.setVisible(false);
getContentPane().add(pwdErrorLabel);
secPwdErrorLabel = new JLabel("密码不一致");
secPwdErrorLabel.setForeground(Color.RED);
secPwdErrorLabel.setFont(MyFont.YA
没有合适的资源?快使用搜索试试~ 我知道了~
物业管理系统JAVA源码
共232个文件
class:194个
png:20个
java:9个
5星 · 超过95%的资源 需积分: 36 154 下载量 175 浏览量
2018-11-28
17:54:03
上传
评论 48
收藏 615KB ZIP 举报
温馨提示
比较适合大学生提交的项目。Java项目。
资源推荐
资源详情
资源评论
收起资源包目录
物业管理系统JAVA源码 (232个子文件)
SQLServerResultSet.class 60KB
SQLServerConnection.class 48KB
SQLServerDatabaseMetaData.class 36KB
SQLServerCallableStatement.class 32KB
SQLServerPreparedStatement.class 29KB
SQLServerStatement.class 24KB
SQLServerResource_ja.class 21KB
SQLServerResource_ko.class 20KB
SQLServerResource_fr.class 20KB
SQLServerResource_de.class 20KB
SQLServerResource_es.class 19KB
SQLServerResource_it.class 19KB
TDSWriter.class 18KB
SQLServerResource_sv.class 18KB
SQLServerResource.class 18KB
TDSChannel.class 16KB
SQLServerResource_zh_TW.class 16KB
SQLServerResource_zh_CN.class 16KB
SQLCollation$WindowsLocale.class 14KB
SQLServerXAResource.class 14KB
TDSReader.class 14KB
SQLServerDataSource.class 13KB
SQLServerSQLXML.class 13KB
SQLCollation$SortOrder.class 12KB
DDC.class 11KB
SQLServerParameterMetaData.class 10KB
ServerDTVImpl.class 10KB
DTV$SendByRPCOp.class 9KB
Util.class 9KB
DTV.class 8KB
TDSCommand.class 8KB
StreamDone.class 8KB
Parameter$GetTypeDefinitionOp.class 8KB
TDS.class 8KB
SQLServerConnectionPoolProxy.class 8KB
AppDTVImpl$SetValueOp.class 8KB
SQLServerClobBase.class 7KB
TypeInfo.class 7KB
SQLServerDriver.class 7KB
SQLServerBlob.class 7KB
TDSChannel$ProxySocket.class 7KB
Parameter.class 7KB
JDBCType.class 7KB
SQLServerPooledConnection.class 6KB
Column.class 6KB
SQLServerResultSetMetaData.class 6KB
RegisterFrame.class 6KB
PLPInputStream.class 5KB
SQLServerException.class 5KB
SSType.class 5KB
JDBCType$UpdaterConversion.class 4KB
SSType$GetterConversion.class 4KB
SimpleInputStream.class 4KB
ReaderInputStream.class 4KB
TDSChannel$HostNameOverrideX509TrustManager.class 4KB
JDBCType$SetterConversion.class 4KB
SQLServerResultSet$FetchBuffer.class 4KB
JavaType.class 4KB
SQLCollation.class 4KB
SQLServerStatement$1NextResult.class 4KB
AppDTVImpl.class 4KB
TDSChannel$SSLHandshakeInputStream.class 4KB
LoginFrame.class 4KB
ScrollWindow.class 3KB
SQLServerClob.class 3KB
DTV$1.class 3KB
BaseInputStream.class 3KB
TDSChannel$ProxyInputStream.class 3KB
FailoverInfo.class 3KB
BaseFrame.class 3KB
SQLHelper.class 3KB
TDSType.class 3KB
Encoding.class 3KB
TDSParser.class 3KB
SQLServerConnection$1LogonProcessor.class 3KB
FailoverMapSingleton.class 3KB
TDSChannel$SSLHandshakeOutputStream.class 3KB
PLPXMLInputStream.class 3KB
SQLServerNClob.class 3KB
JDBCCallSyntaxTranslator.class 3KB
TypeInfo$1.class 3KB
StreamType.class 3KB
RegisterFrame$5.class 3KB
SQLServerXADataSource.class 3KB
AuthenticationJNI.class 3KB
TDSTokenHandler.class 3KB
SQLServerDatabaseMetaData$CallableHandles.class 3KB
AsciiFilteredUnicodeInputStream.class 3KB
SQLServerResultSet$FetchBuffer$FetchBufferTokenHandler.class 2KB
SQLServerResultSet$CursorFetchCommand.class 2KB
StreamColumns.class 2KB
AsciiFilteredInputStream.class 2KB
SQLServerPreparedStatement$1PrepStmtExecOutParamHandler.class 2KB
DDC$1.class 2KB
LoginFrame$2.class 2KB
SQLServerResultSetMetaData$1.class 2KB
SQLServerDataSourceObjectFactory.class 2KB
ServerDTVImpl$1.class 2KB
TimeoutTimer.class 2KB
DataTypes.class 2KB
共 232 条
- 1
- 2
- 3
资源评论
- MMMMango2020-05-08资源还不错
- qq_436683042020-03-31这个怎么打开系统啊
~知至~
- 粉丝: 310
- 资源: 39
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 部署yolov9模型ncnn模型到树莓派4或5嵌入式C++源码.zip
- 2024年上半年三星评定题库(客运) (1).xlsx
- 大学院校基础信息表(3237所大学)
- docker-compose-linux-x86-64
- 基于深度学习的常用显示接口及触摸屏液晶屏测试方法,适合FPGA初学者
- YOLOv9 QT+NCNN实现安卓端部署源码+部署步骤+演示apk.zip
- 【计算机毕业设计】基于SSM+Vue的网上花店系统【源码+lw+部署文档+讲解】
- 使用NCNN在安卓平台上部署YOLOv8实现实时目标检测分割旋转框源码.zip
- C# 调用ComfyUI 接口小案例,可以生成任务,可以获取图片,可以显示图片
- opencv-基于c++实现的opencv图像处理算法之直方图均衡算法.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功