Skip to content
This repository was archived by the owner on May 5, 2025. It is now read-only.

Commit ca57aaa

Browse files
committed
add: add register function and fix some bugs of LoginPart.java
1 parent 96bff56 commit ca57aaa

File tree

2 files changed

+192
-9
lines changed

2 files changed

+192
-9
lines changed

src/main/java/top/mryan2005/managesysteminjava/BasicClass/LoginPart.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,16 +68,23 @@ public void setSQL(SQLLinker sql1) {
6868

6969
public LoginPart() {}
7070

71-
public void register(String username, String password, String Sex, String UName) throws UnsupportedEncodingException {
71+
public String register(String username, String password, String Sex, String UName) throws UnsupportedEncodingException {
7272
readUsersTable();
7373
if (username.matches("") || password.matches("") || UName.matches("")) {
74-
return;
74+
return "用户名、密码或昵称不能为空!";
7575
}
7676
if(users.containsKey(username)) {
77-
return;
77+
return "用户名已存在!";
7878
}
7979
password = runMd5(password);
80-
sql.runSQL("INSERT INTO Users.[user] (id, username, password, Sex, name) VALUES ('" + getMaxId() +"', '" + username + "', '" + password + "', '" + Sex + "', '" + UName + "')");
80+
char sex = 'M';
81+
if(Sex.matches("男")) {
82+
sex = 'M'; // 男
83+
} else {
84+
sex = 'F'; // 女
85+
}
86+
sql.runSQL("INSERT INTO Users.[user] (id, username, password, Sex, name) VALUES ('" + getMaxId() +"', '" + username + "', '" + password + "', '" + sex + "', '" + UName + "')");
87+
return "Success!";
8188
}
8289

8390
public boolean login(String username, String password) throws UnsupportedEncodingException {

src/main/java/top/mryan2005/managesysteminjava/Core.java

Lines changed: 181 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -184,13 +184,35 @@ public void actionPerformed(ActionEvent e) {
184184
gbc.weightx = 0.0; // 当窗口放大时,长度不变
185185
gbc.weighty = 0.0; // 当窗口放大时,高度不变
186186
JButton jButtonLogin = new JButton("Login");
187+
jDialog.add(jButtonLogin, gbc);
188+
gbc.gridx = 0;
189+
gbc.gridy = 1;
190+
gbc.gridwidth = 1; // 横占一个单元格
191+
gbc.gridheight = 1; // 列占一个单元格
192+
gbc.weightx = 0.0; // 当窗口放大时,长度不变
193+
gbc.weighty = 0.0; // 当窗口放大时,高度不变
194+
JButton jButtonRegister = new JButton("Register");
195+
jButtonRegister.addActionListener(new ActionListener() {
196+
@Override
197+
public void actionPerformed(ActionEvent e) {
198+
createRegisterWindow(jDialog);
199+
if(isLogin) {
200+
jButtonLogin.setEnabled(false);
201+
jButtonRegister.setEnabled(false);
202+
}
203+
}
204+
});
187205
jButtonLogin.addActionListener(new ActionListener() {
188206
@Override
189207
public void actionPerformed(ActionEvent e) {
190208
createLoginWindow(jDialog);
209+
if(isLogin) {
210+
jButtonLogin.setEnabled(false);
211+
jButtonRegister.setEnabled(false);
212+
}
191213
}
192214
});
193-
jDialog.add(jButtonLogin, gbc);
215+
jDialog.add(jButtonRegister, gbc);
194216
jDialog.setVisible(true);
195217
});
196218
dockBar.add(button3);
@@ -429,22 +451,22 @@ public void newIssue(ActionEvent e) {
429451
});
430452
jDialog1.setVisible(true);
431453
} else if("Yours".matches(comboBox.getSelectedItem().toString())) {
432-
JDialog jDialog1 = new JDialog(this, "Input Your Token", true);
454+
JDialog jDialog1 = new JDialog(this, "输入你的Token", true);
433455
jDialog1.setSize(200, 300);
434456
jDialog1.setLayout(new GridBagLayout());
435457
Insets insets1 = new Insets(10, 10, 10, 10);
436458
GridBagConstraints gbc1 = new GridBagConstraints();
437459
gbc1.fill = GridBagConstraints.BOTH;
438460
gbc1.insets = insets1;
439-
JButton jButton1 = new JButton("Submit");
461+
JButton jButton1 = new JButton("提交");
440462
gbc1.gridx = 1;
441463
gbc1.gridy = 1;
442464
gbc1.gridwidth = 1; // 横占一个单元格
443465
gbc1.gridheight = 1; // 列占一个单元格
444466
gbc1.weightx = 0.0; // 当窗口放大时,长度不变
445467
gbc1.weighty = 0.0; // 当窗口放大时,高度不变
446468
jDialog1.add(jButton1, gbc1);
447-
JLabel YourToken = new JLabel("Your Token: ");
469+
JLabel YourToken = new JLabel("你的Token: ");
448470
gbc1.gridx = 0;
449471
gbc1.gridy = 0;
450472
gbc1.gridwidth = 1; // 横占一个单元格
@@ -482,6 +504,160 @@ public boolean canLogin() {
482504
return isLogin;
483505
}
484506

507+
public void createRegisterWindow(JDialog owner) {
508+
JDialog jDialogInput = new JDialog(owner, "注册", true);
509+
jDialogInput.setBounds(0, 0, 600, 500);
510+
jDialogInput.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
511+
jDialogInput.setLayout(new GridBagLayout());
512+
GridBagConstraints gbc = new GridBagConstraints();
513+
Insets insets = new Insets(10, 10, 10, 10);
514+
gbc.fill = GridBagConstraints.BOTH;
515+
gbc.insets = insets;
516+
gbc.gridx = 0;
517+
gbc.gridy = 0;
518+
gbc.gridwidth = 1; // 横占一个单元格
519+
gbc.gridheight = 1; // 列占一个单元格
520+
gbc.weightx = 0.0; // 当窗口放大时,长度不变
521+
gbc.weighty = 0.0; // 当窗口放大时,高度不变
522+
JLabel jlabelUsername = new JLabel("用户名: ");
523+
jDialogInput.add(jlabelUsername, gbc);
524+
gbc.fill = GridBagConstraints.BOTH;
525+
gbc.insets = insets;
526+
gbc.gridx = 1;
527+
gbc.gridy = 0;
528+
gbc.gridwidth = 1; // 横占一个单元格
529+
gbc.gridheight = 1; // 列占一个单元格
530+
gbc.weightx = 0.0; // 当窗口放大时,长度不变
531+
gbc.weighty = 0.0; // 当窗口放大时,高度不变
532+
JTextField jTextFieldUsername = new JTextField("", 20);
533+
jlabelUsername.setSize(100, 50);
534+
jDialogInput.add(jTextFieldUsername, gbc);
535+
gbc.fill = GridBagConstraints.BOTH;
536+
gbc.insets = insets;
537+
gbc.gridx = 0;
538+
gbc.gridy = 1;
539+
gbc.gridwidth = 1; // 横占一个单元格
540+
gbc.gridheight = 1; // 列占一个单元格
541+
gbc.weightx = 0.0; // 当窗口放大时,长度不变
542+
gbc.weighty = 0.0; // 当窗口放大时,高度不变
543+
JLabel jlabelDisplayName = new JLabel("昵称: ");
544+
jlabelDisplayName.setSize(100, 50);
545+
jDialogInput.add(jlabelDisplayName, gbc);
546+
gbc.fill = GridBagConstraints.BOTH;
547+
gbc.insets = insets;
548+
gbc.gridx = 1;
549+
gbc.gridy = 1;
550+
gbc.gridwidth = 1; // 横占一个单元格
551+
gbc.gridheight = 1; // 列占一个单元格
552+
gbc.weightx = 0.0; // 当窗口放大时,长度不变
553+
gbc.weighty = 0.0; // 当窗口放大时,高度不变
554+
JTextField jTextFieldDisplayName = new JTextField("", 20);
555+
jTextFieldDisplayName.setSize(100, 50);
556+
jDialogInput.add(jTextFieldDisplayName, gbc);
557+
gbc.fill = GridBagConstraints.BOTH;
558+
gbc.insets = insets;
559+
gbc.gridx = 0;
560+
gbc.gridy = 2;
561+
gbc.gridwidth = 1; // 横占一个单元格
562+
gbc.gridheight = 1; // 列占一个单元格
563+
gbc.weightx = 0.0; // 当窗口放大时,长度不变
564+
gbc.weighty = 0.0; // 当窗口放大时,高度不变
565+
JLabel jlabelPassword = new JLabel("密码: ");
566+
jlabelPassword.setSize(100, 50);
567+
jDialogInput.add(jlabelPassword, gbc);
568+
gbc.fill = GridBagConstraints.BOTH;
569+
gbc.insets = insets;
570+
gbc.gridx = 1;
571+
gbc.gridy = 2;
572+
gbc.gridwidth = 1; // 横占一个单元格
573+
gbc.gridheight = 1; // 列占一个单元格
574+
gbc.weightx = 0.0; // 当窗口放大时,长度不变
575+
gbc.weighty = 0.0; // 当窗口放大时,高度不变
576+
JTextField jTextFieldPassword = new JTextField("", 20);
577+
jDialogInput.add(jTextFieldPassword, gbc);
578+
JLabel jlabelPassword2 = new JLabel("再次输入密码: ");
579+
jlabelPassword2.setSize(100, 50);
580+
gbc.fill = GridBagConstraints.BOTH;
581+
gbc.insets = insets;
582+
gbc.gridx = 0;
583+
gbc.gridy = 3;
584+
gbc.gridwidth = 1; // 横占一个单元格
585+
gbc.gridheight = 1; // 列占一个单元格
586+
gbc.weightx = 0.0; // 当窗口放大时,长度不变
587+
gbc.weighty = 0.0; // 当窗口放大时,高度不变
588+
jDialogInput.add(jlabelPassword2, gbc);
589+
JTextField jTextFieldPassword2 = new JTextField("", 20);
590+
gbc.fill = GridBagConstraints.BOTH;
591+
gbc.insets = insets;
592+
gbc.gridx = 1;
593+
gbc.gridy = 3;
594+
gbc.gridwidth = 1; // 横占一个单元格
595+
gbc.gridheight = 1; // 列占一个单元格
596+
gbc.weightx = 0.0; // 当窗口放大时,长度不变
597+
gbc.weighty = 0.0; // 当窗口放大时,高度不变
598+
jDialogInput.add(jTextFieldPassword2, gbc);
599+
JLabel jlabelSex = new JLabel("性别: ");
600+
jlabelSex.setSize(100, 50);
601+
gbc.fill = GridBagConstraints.BOTH;
602+
gbc.insets = insets;
603+
gbc.gridx = 0;
604+
gbc.gridy = 4;
605+
gbc.gridwidth = 1; // 横占一个单元格
606+
gbc.gridheight = 1; // 列占一个单元格
607+
gbc.weightx = 0.0; // 当窗口放大时,长度不变
608+
gbc.weighty = 0.0; // 当窗口放大时,高度不变
609+
jDialogInput.add(jlabelSex, gbc);
610+
JComboBox jComboBoxSex = new JComboBox();
611+
String[] selections = new String[2];
612+
selections[0] = "男";
613+
selections[1] = "女";
614+
for(String item: selections) {
615+
jComboBoxSex.addItem(item);
616+
}
617+
jComboBoxSex.setSize(100, 50);
618+
gbc.fill = GridBagConstraints.BOTH;
619+
gbc.insets = insets;
620+
gbc.gridx = 1;
621+
gbc.gridy = 4;
622+
gbc.gridwidth = 1; // 横占一个单元格
623+
gbc.gridheight = 1; // 列占一个单元格
624+
gbc.weightx = 0.0; // 当窗口放大时,长度不变
625+
gbc.weighty = 0.0; // 当窗口放大时,高度不变
626+
jDialogInput.add(jComboBoxSex, gbc);
627+
JButton RegisterButton = new JButton("注册");
628+
RegisterButton.addActionListener(new ActionListener() {
629+
@Override
630+
public void actionPerformed(ActionEvent e) {
631+
try {
632+
if(!(jTextFieldPassword.getText().equals(jTextFieldPassword2.getText()))) {
633+
JOptionPane.showMessageDialog(jDialogInput, "密码不一致");
634+
return;
635+
}
636+
String registerResult = loginPart.register(jTextFieldUsername.getText(), jTextFieldPassword.getText(), jComboBoxSex.getSelectedItem().toString(), jTextFieldDisplayName.getText());
637+
if(registerResult.equals("Success!")) {
638+
JOptionPane.showMessageDialog(jDialogInput, "注册成功!");
639+
} else {
640+
JOptionPane.showMessageDialog(jDialogInput, registerResult);
641+
}
642+
isLogin = true;
643+
jDialogInput.dispose();
644+
} catch (UnsupportedEncodingException ex) {
645+
throw new RuntimeException(ex);
646+
}
647+
}
648+
});
649+
gbc.fill = GridBagConstraints.CENTER;
650+
gbc.insets = insets;
651+
gbc.gridx = 0;
652+
gbc.gridy = 5;
653+
gbc.gridwidth = 1; // 横占一个单元格
654+
gbc.gridheight = 1; // 列占一个单元格
655+
gbc.weightx = 0.0; // 当窗口放大时,长度不变
656+
gbc.weighty = 0.0; // 当窗口放大时,高度不变
657+
jDialogInput.add(RegisterButton, gbc);
658+
jDialogInput.setVisible(true);
659+
}
660+
485661
public void createLoginWindow(JDialog owner) {
486662
JDialog jDialogInput = new JDialog(owner, "Login", true);
487663
jDialogInput.setBounds(0, 0, 600, 500);
@@ -529,7 +705,7 @@ public void createLoginWindow(JDialog owner) {
529705
gbc.gridheight = 1; // 列占一个单元格
530706
gbc.weightx = 0.0; // 当窗口放大时,长度不变
531707
gbc.weighty = 0.0; // 当窗口放大时,高度不变
532-
JTextField jTextFieldPassword = new JTextField("", 20);
708+
JPasswordField jTextFieldPassword = new JPasswordField("", 20);
533709
jDialogInput.add(jTextFieldPassword, gbc);
534710
JButton LoginButton = new JButton("Login");
535711
LoginButton.addActionListener(new ActionListener() {

0 commit comments

Comments
 (0)