@@ -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