CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 4 of 4
  1. #1
    Join Date
    Sep 2019
    Posts
    2

    Login window closes upon verifying credentials and opens main window

    any help would be greatly appreciated.

    I've created 2 JFrames, one is a login window which verifies user credentials and I've linked it with my website's mySQL(This works and was hard since I'm very new to Java), and the other one is my main window which contains the main user interface where the user will work from.

    I am trying to find a way that when user credentials are verified, the login window closes and opens the Main window. The more I dig into this, the more I think I've built this whole thing wrong, because both JFrames are built in main methods (I though this was how you did it, every tutorial begins with a main method).

    to the actionPerform I've created on the JButton or textField_Password, but that does not work at all.Any idea how to open another class from actionPerform?

    I would like to open the main window once user credentials are verified. Any ideas on how to proceed. This is all new to me and any help would be greaty appreciated. Thanks in advance to anyone who helps me with this one, because I'm kind of stuck!

    I was trying to add the following to a Jbutton actionPerformed:

    Code:
    Main window = new Main();
    window.frame.setVisible();
    This does not open the other Jframe I made and I am alittle loss. Any help would be greatly appreciated.

    Code:
    import javax.swing.JFrame;
    import java.awt.SystemColor;
    import javax.swing.JTextField;
    import javax.swing.JButton;
    import javax.swing.JLabel;
    
    import java.awt.Font;
    
    import java.awt.GridBagLayout;
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import javax.swing.SwingConstants;
    
    //import com.mysql.jdbc.Connection;
    //import com.mysql.jdbc.PreparedStatement;
    
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.io.IOException;
    import java.net.URI;
    import java.net.URISyntaxException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    import javax.swing.JSeparator;
    import javax.swing.JPasswordField;
    import javax.swing.JCheckBox;
    import java.awt.Cursor;
    import java.awt.Desktop;
    import java.awt.EventQueue;
    
    import java.sql.SQLException;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    
    public class Login {
    
    private JFrame frame;
    private JTextField txtUsername;
    private JPasswordField txtPassword;
    final String signUp = ("https://www.google.com");
    Connection con = null;
    PreparedStatement pst = null;
    ResultSet rs = null;
    
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    Login window = new Login();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
    
    /**
     * Create the application.
     */
    public Login() {
        initialize();
    
    }
    
    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.getContentPane().setBackground(Color.BLACK);
        frame.setBounds(100, 100, 547, 382);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
        frame.setLocationRelativeTo(null);
        // frame.setUndecorated(true);
    
        txtUsername = new JTextField();
        txtUsername.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                txtUsername.setText(null);
            }
        });
    
        JLabel labelResponse = new JLabel("");
        labelResponse.setHorizontalAlignment(SwingConstants.CENTER);
        labelResponse.setFont(new Font("Dialog", Font.BOLD, 12));
        labelResponse.setForeground(Color.ORANGE);
        labelResponse.setBounds(122, 280, 277, 30);
        frame.getContentPane().add(labelResponse);
        txtUsername.setBorder(null);
        txtUsername.setHorizontalAlignment(SwingConstants.CENTER);
        txtUsername.setFont(new Font("Meiryo", Font.BOLD, 18));
        txtUsername.setForeground(new Color(0, 128, 0));
        txtUsername.setOpaque(false);
        txtUsername.setText("Username");
        txtUsername.setBackground(SystemColor.inactiveCaption);
        txtUsername.setBounds(82, 62, 353, 53);
        frame.getContentPane().add(txtUsername);
        txtUsername.setColumns(10);
    
        /*
         * JLabel labelClose = new JLabel("X");
         * 
        labelClose.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
         * labelClose.addMouseListener(new MouseAdapter() {
         * 
         * @Override public void mouseClicked(MouseEvent e) { 
      System.exit(0); } });
         * labelClose.setFont(new Font("Tahoma", Font.BOLD, 20));
         * labelClose.setForeground(new Color(102, 205, 170)); 
     labelClose.setBounds(493,
         * 11, 22, 22); frame.getContentPane().add(labelClose);
         * 
         * JLabel labelMin = new JLabel("-");
         * 
     labelMin.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
         * labelMin.addMouseListener(new MouseAdapter() {
         * 
         * @Override public void mouseClicked(MouseEvent arg0) {
         * frame.setState(Frame.ICONIFIED); } }); 
     labelMin.setForeground(new Color(102,
         * 205, 170)); labelMin.setFont(new Font("Tahoma", Font.BOLD, 
    20));
         * labelMin.setBounds(470, 11, 22, 22); 
    frame.getContentPane().add(labelMin);
         */
    
        JLabel lblGt = new JLabel("Log In");
        lblGt.setForeground(new Color(0, 128, 0));
        lblGt.setFont(new Font("Meiryo", Font.BOLD, 20));
        lblGt.setBounds(10, 5, 88, 38);
        frame.getContentPane().add(lblGt);
    
        JSeparator separator = new JSeparator();
        separator.setBounds(82, 113, 353, 2);
        frame.getContentPane().add(separator);
    
        JSeparator separator_1 = new JSeparator();
        separator_1.setBounds(82, 190, 353, 2);
        frame.getContentPane().add(separator_1);
    
        JCheckBox chckbxShowPass = new JCheckBox("Show Pass");
    
    
    chckbxShowPass.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
        chckbxShowPass.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent evt) {
                if (chckbxShowPass.isSelected()) {
                    txtPassword.setEchoChar((char) 0);
                } else {
                    txtPassword.setEchoChar('*');
                }
            }
        });
    
        chckbxShowPass.setBorder(null);
        chckbxShowPass.setOpaque(false);
        chckbxShowPass.setForeground(new Color(0, 128, 0));
        chckbxShowPass.setFont(new Font("Meiryo", Font.BOLD, 14));
        chckbxShowPass.setBackground(new Color(0, 128, 0));
        chckbxShowPass.setBounds(409, 281, 106, 23);
        frame.getContentPane().add(chckbxShowPass);
    
        JLabel labelRegister = new JLabel("Register");
    
    labelRegister.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
        labelRegister.setForeground(new Color(0, 128, 0));
        labelRegister.setFont(new Font("Meiryo", Font.BOLD, 14));
        labelRegister.setBounds(10, 285, 76, 16);
        frame.getContentPane().add(labelRegister);
    
        JButton buttonLogin = new JButton("Login");
        buttonLogin.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
    
     Class.forName("com.mysql.jdbc.Driver");
                    Connection con = (Connection) 
    DriverManager.getConnection(
    
    "jdbc:mysql://localhost:3306/test", "root", "password"); // not the actual 
                    String query = "select  EmailAddress, 
    Password from users where EmailAddress LIKE '%"
                            + 
    txtUsername.getText() + "%'";
                    PreparedStatement statement = 
    con.prepareStatement(query);
                    ResultSet result = 
    statement.executeQuery();
                    if (result.next()) {
                        String dbasePassword = 
    result.getString("Password").toString().trim();
                        String enteredPassword = new 
    String(txtPassword.getText().trim());
                        if 
       (dbasePassword.equals(enteredPassword))
    
     labelResponse.setText("User recognized");
    
                        else
    
    labelResponse.setText("Verify credentials");
                    } else {
                        labelResponse.setText("You 
    must be registered to use this software.");
                    }
                    statement.close();
                    con.close();
                } catch (SQLException se) {
                    se.printStackTrace();
                } catch (Exception evt) {
                    evt.printStackTrace();
                    labelResponse.setText("Exception 
    occurred while searching in the users table");
                }
            }
        });
    
        txtPassword = new JPasswordField();
        txtPassword.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent evt) {
                if (evt.getKeyCode() == KeyEvent.VK_ENTER)
                    try {
    
    
        Class.forName("com.mysql.jdbc.Driver");
                        Connection con = (Connection) 
          DriverManager.getConnection(
    
         "jdbc:mysql://localhost:3306/test", "root",
                                "password");
                        String query = "select  
          EmailAddress, Password from users where EmailAddress LIKE '%"
                                + 
          txtUsername.getText() + "%'";
                        PreparedStatement statement = 
          con.prepareStatement(query);
                        ResultSet result = 
         statement.executeQuery();
                        if (result.next()) {
                            String dbasePassword = 
          result.getString("Password").toString().trim();
                            String enteredPassword 
          = new String(txtPassword.getText().trim());
                            if 
         (dbasePassword.equals(enteredPassword))
    
    
        labelResponse.setText("User recognized");
    
                            else
    
         labelResponse.setText("Verify credentials");
                        } else {
    
        labelResponse.setText("You must be registered to use this software.");
                        }
                        statement.close();
                        con.close();
                    } catch (SQLException se) {
                        se.printStackTrace();
                    } catch (Exception evte) {
                        evte.printStackTrace();
    
        labelResponse.setText("Exception occurred while searching in the users 
        table");
                    }
            }
        });
    
        txtPassword.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                txtPassword.setText(null);
    
            }
        });
        txtPassword.setText("Password");
        txtPassword.setBorder(null);
        txtPassword.setHorizontalAlignment(SwingConstants.CENTER);
        txtPassword.setForeground(new Color(0, 128, 0));
        txtPassword.setFont(new Font("Meiryo", Font.BOLD, 18));
        txtPassword.setOpaque(false);
        txtPassword.setBackground(SystemColor.inactiveCaption);
        txtPassword.setBounds(82, 139, 353, 53);
        frame.getContentPane().add(txtPassword);
    
        buttonLogin.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
        buttonLogin.setBorderPainted(false);
        buttonLogin.setBackground(new Color(0, 128, 0));
        buttonLogin.setFont(new Font("Tahoma", Font.PLAIN, 18));
        buttonLogin.setBounds(82, 216, 353, 53);
        frame.getContentPane().add(buttonLogin);
    
        labelRegister.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent me) {
                try {
                    Desktop.getDesktop().browse(new 
      URI("insertURL"));
                } catch (Exception ex) {
                    // System.out.println(ex);
                }
            }
        });
    }
    }

  2. #2
    Join Date
    Jun 1999
    Location
    Eastern Florida
    Posts
    3,877

    Re: Login window closes upon verifying credentials and opens main window

    FYI it is possible to call another class's main method just like any other static method:
    Code:
      TheClassName.main(new String[]{});
    Norm

  3. #3
    Join Date
    Sep 2019
    Posts
    2

    Re: Login window closes upon verifying credentials and opens main window

    Thx for the reply Norm. I fixed my issue by creating a Jframe instead of an application window and then calling the second JFrame after veryfing credentials and it now works. THanks for the info

  4. #4
    Join Date
    Oct 2019
    Posts
    8

    Re: Login window closes upon verifying credentials and opens main window

    Try to choose another static method.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured