如何在Java登录后显示用户名?

时间:2017-01-12 02:09:57

标签: java netbeans login

当用户成功登录时,我想在欢迎Private Sub ProcessRecord() If Me.CB7.Value = "A&R" And Me.CB23.Value = "5x9N" Then WriteRecord "A&R", "C3" If Me.CB7.Value = "A&R" And Me.CB23.Value = "5x10N" Then WriteRecord "A&R", "AM1" End Sub Private Sub WriteRecord(wks As String, rng As String) Dim rowcount As Long rowcount = Worksheets(wks).Range(rng).CurrentRegion.Rows.Count With Worksheets(wks).Range(rng) 'PROJECT .Offset(rowcount, 0) = Me.CB1.Value .Offset(rowcount, 1) = Me.TB2.Value .Offset(rowcount, 2) = Me.TB3.Value .Offset(rowcount, 3) = Me.CB4.Value .Offset(rowcount, 4) = Me.CB7.Value .Offset(rowcount, 5) = Me.TB1.Value 'FINISH DATES .Offset(rowcount, 7) = Me.TB23.Value .Offset(rowcount, 8) = Me.TB24.Value .Offset(rowcount, 9) = Me.TB25.Value .Offset(rowcount, 10) = Me.TB26.Value .Offset(rowcount, 11) = Me.TB27.Value .Offset(rowcount, 12) = Me.TB28.Value .Offset(rowcount, 13) = Me.TB29.Value 'PRODUCTION .Offset(rowcount, 14) = Me.TB8.Value .Offset(rowcount, 15) = Me.TB9.Value .Offset(rowcount, 16) = Me.TB10.Value .Offset(rowcount, 17) = Me.TB11.Value .Offset(rowcount, 18) = Me.TB12.Value .Offset(rowcount, 19) = Me.TB13.Value .Offset(rowcount, 20) = Me.TB14.Value 'ASSETS .Offset(rowcount, 21) = Me.TB16.Value .Offset(rowcount, 22) = Me.TB17.Value .Offset(rowcount, 23) = Me.TB18.Value .Offset(rowcount, 24) = Me.TB19.Value .Offset(rowcount, 25) = Me.TB20.Value .Offset(rowcount, 26) = Me.TB21.Value .Offset(rowcount, 27) = Me.TB22.Value .Offset(rowcount, 28) = Me.CB23.Value .Offset(rowcount, 29) = Me.CB24.Value .Offset(rowcount, 30) = Me.CB25.Value .Offset(rowcount, 31) = Me.CB26.Value .Offset(rowcount, 32) = Me.CB27.Value End With End Sub 上显示jLabel中的用户名。我使用Netbeans进行此项目并使用DBMS是MySQL。基本上我创建了两个jFrame

一个是 login.java ,另一个是 welcome.java jFrames位于 welcome.java ,变量名称初始化为jLabel

以下是我的要求和项目总代码的图片说明:

Requirement

login.java

jLabel_UnameDisplay

welcome.java

public class login extends javax.swing.JFrame {

public login() {
    initComponents();
}

@SuppressWarnings("unchecked")                    
private void initComponents() {

    jPanel = new javax.swing.JPanel();
    jLabel_uname = new javax.swing.JLabel();
    jLabel_pass = new javax.swing.JLabel();
    txt_uname = new javax.swing.JTextField();
    txt_pass = new javax.swing.JPasswordField();
    jButton_login = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

    jPanel.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

    jLabel_uname.setText("User Name");
    jPanel.add(jLabel_uname, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 110, 100, 40));

    jLabel_pass.setText("Password");
    jPanel.add(jLabel_pass, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 170, 100, 40));
    jPanel.add(txt_uname, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 110, 160, 40));
    jPanel.add(txt_pass, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 170, 160, 40));

    jButton_login.setText("Login");
    jButton_login.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton_loginActionPerformed(evt);
        }
    });

    jPanel.add(jButton_login, new org.netbeans.lib.awtextra.AbsoluteConstraints(180, 230, 90, 40));

    getContentPane().add(jPanel, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 400, 300));

    pack();
}                      

private void jButton_loginActionPerformed(java.awt.event.ActionEvent evt) {                                              
     if (txt_uname.getText().equals("admin")&&txt_pass.getText().equals("1234")){
        new welcome().setVisible(true);
        this.dispose();

    }else{
        try {
        Connection c;
        Class.forName("com.mysql.jdbc.Driver");
        c=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root","123");

        Statement s=c.createStatement();
            ResultSet rs= s.executeQuery("SELECT * FROM user WHERE status='1'");

            while (rs.next()) {                    
                String unmae=rs.getString("username");
                String pass=rs.getString("password");

                if(unmae.equals(txtuname.getText()) && pass.equals(txtpass.getText())){
                    new welcome().setVisible(true);
                    this.dispose();
                }


            }

        } catch (Exception ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(rootPane, "Check Your Username or Password","Error",JOptionPane.ERROR_MESSAGE);
        }

    }
}                                             


public static void main(String args[]) {

    try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }

    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new login().setVisible(true);
        }
    });
}

private javax.swing.JButton jButton_login;
private javax.swing.JLabel jLabel_pass;
private javax.swing.JLabel jLabel_uname;
private javax.swing.JPanel jPanel;
private javax.swing.JPasswordField txt_pass;
private javax.swing.JTextField txt_uname;

}

2 个答案:

答案 0 :(得分:1)

你可以通过多种方式实现它,但是你想要的目标是将登录框架与欢迎框架分离,以便显示一个不是由另一个框架决定。

你可以

使用某种观察者/委托/侦听器,在用户进行正确身份验证时通知他,并将用户信息传递给它。然后由它决定下一步做什么,在此,显示欢迎视图,传递用户信息(作为示例)

这是Swing中的常见概念

你可以

使用某种对话框(而不是JFrame),这将允许代码在对话框可见时阻止,并在对话框关闭时继续。

在这种情况下,您需要提供某种getter来获取用户详细信息(如果用户由于某种原因取消了对话框,则需要null),然后您就可以做出关于什么的决定根据结果​​做

有关详细信息,请查看How to use dialogs

在任何情况下,您都需要能够将登录视图中的信息传递给欢迎视图,这种方法通常很常见,可以使用setter和getter以及基本方法调用。

答案 1 :(得分:0)

最简单的方法是在创建时将用户名传递给下一帧。所以像欢迎页面这样的下一个名字可以使用用户名。您还可以传递可以存储更多用户特定数据的整个对象。

以下是代码示例。在欢迎页面中进行细微更改

/**
 * Create the frame and pass the parameter during creation
 */
public welcome (Component parent, String logOnUserName) {
    this.parent = parent; // This is to send the reference of parent login
                          // page. This can be useful if you want to
                          // comeback to loginpage
    this.logOnUserName=logOnUserName;

...

从登录时调用欢迎页面进行此更改

  

新登录(this,username).setVisible(true);

现在,欢迎页面中提供了用户名。在UI中显示它。

相关问题