banner



How To Create A Login Page In Netbeans

How to Create Login and Register Form in Java NetBeans with MySQL Database

Java SignIn And SignUp Form With MySQL Database

In this Java  Long Tutorial  we will go step by step on How To Make a Design a Login Form And a Register Form, plus how to connect those two form with mysql database so the user can signup and signin.

What We Are Gonna Use In This Project:

- Java Programming Language.
- NetBeans Editor.
- MySQL Database.
- PhpMyAdmin.

What We Will Do In This Project:

- Design Two Forms  For The Login and Signup Using JPanels and Borders.
- Create Two Icons Using JLabels To Minimize and Close The Form.
- Connect Java To MySQL Database, To Add The Registred User Data In The Signup Form or to Check If The User Exist In The Login Form.
- Browse and Select Image From Your Computer and Set The File Path In a JLabel + Save The Image as a Blob in The Database.
- Check If The User Leave Some Fields Empty.
- Check If The User Enter Username That Already Exists.
- Check If The User Enter a Wrong Password In The Confirmation Field.


▶ Download All JAVA Projects Source Code


Project Source Code:

Let's First Start With The Connection.

We Will Create a Class and Let's Call it "My_CNX" To Connect Or Java Program With MySQL Database.

/****************** My_CNX Class Start ****************** /

package login_ragister_design;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import java.sql.Connection;

import java.sql.SQLException;

import java.util.logging.Level;

import java.util.logging.Logger;

/**

 *

 * @author 1BestCsharp

 */

public class My_CNX {

    private static String servername = "localhost";

    private static String username = "root";

    private static String dbname  = "users_db";

    private static Integer portnumber  = 3306;

    private static String password = "";

    public static Connection getConnection()

    {

        Connection cnx = null;

        MysqlDataSource datasource = new MysqlDataSource();

        datasource.setServerName(servername);

        datasource.setUser(username);

        datasource.setPassword(password);

        datasource.setDatabaseName(dbname);

        datasource.setPortNumber(portnumber);

        try {

            cnx = datasource.getConnection();

        } catch (SQLException ex) {

            Logger.getLogger(" Get Connection -> " + My_CNX.class.getName()).log(Level.SEVERE, null, ex);

        }

        return cnx;

    }

}

/****************** My_CNX Class End ****************** /

Now Let's Go To The Login Form and See What We Will Do.

/****************** Register Form Start ****************** /

// create a variable to set the image path in it

    String image_path = null;

    public Register_Form() {

        initComponents();

// center the form

        this.setLocationRelativeTo(null);

// create a yellow border for the jpanel_title

        // 0 border in the top

        Border jpanel_title_border = BorderFactory.createMatteBorder(0, 1, 1, 1, Color.yellow);

// set the border to the jPanel_title

        jPanel_title.setBorder(jpanel_title_border);

// create a black border for the close & minimize jlables

        Border label_border = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.black);

        jLabel_minimize.setBorder(label_border);

        jLabel_close.setBorder(label_border);

// create a border for the create acconut jlabel

        Border label_login_border = BorderFactory.createMatteBorder(0, 0, 1, 0, Color.lightGray);

        jLabel_login.setBorder(label_login_border);

// create border for the text and password fields

        Border field_border = BorderFactory.createMatteBorder(1, 5, 1, 1, Color.white);

        jTextField_Username.setBorder(field_border);

        jTextField_Fullname.setBorder(field_border);

        jTextField_Phone.setBorder(field_border);

        jPasswordField_1.setBorder(field_border);

        jPasswordField_2.setBorder(field_border);

// create a button group for the radiobuttons

        ButtonGroup bg = new ButtonGroup();

        bg.add(jRadioButton_Male);

        bg.add(jRadioButton_Female);

    }

// jlabel minimize -> mouse click event

private void jLabel_minimizeMouseClicked(java.awt.event.MouseEvent evt) {

        this.setState(JFrame.ICONIFIED);

    }

// jlabel  minimize -> mouse entered event

    private void jLabel_minimizeMouseEntered(java.awt.event.MouseEvent evt) {

// change the jlabel border color to white

        Border label_border = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.white);

        jLabel_minimize.setBorder(label_border);

// set the jlabel foreground to white

        jLabel_minimize.setForeground(Color.white);

    }

// jlabel minimize -> mouse exited event

    private void jLabel_minimizeMouseExited(java.awt.event.MouseEvent evt) {

// reset the jlabel border color to white

        Border label_border = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.black);

        jLabel_minimize.setBorder(label_border);

// reset the jlabel foreground to white

        jLabel_minimize.setForeground(Color.black);

    }

// jlabel close ->  mouse click event

    private void jLabel_closeMouseClicked(java.awt.event.MouseEvent evt) {

        System.exit(0);

    }

// jlabel close ->  mouse entered event

    private void jLabel_closeMouseEntered(java.awt.event.MouseEvent evt) {

// change the jlabel border color to white

        Border label_border = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.white);

        jLabel_close.setBorder(label_border);

// set the jlabel foreground to white

        jLabel_close.setForeground(Color.white);

    }

// jlabel close ->  mouse exited event

    private void jLabel_closeMouseExited(java.awt.event.MouseEvent evt) {

// reset the jlabel border color to white

        Border label_border = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.black);

        jLabel_close.setBorder(label_border);

// reset the jlabel foreground to black

        jLabel_close.setForeground(Color.black);

    }

// JTextField For The Phone Number -> KeyTyped Event

    private void jTextField_PhoneKeyTyped(java.awt.event.KeyEvent evt) {

// allow only numbers

       if(!Character.isDigit(evt.getKeyChar())){

           evt.consume();

       }

    }

// button select image

    private void jButton_SelectImageActionPerformed(java.awt.event.ActionEvent evt) {

// select an image and set the image path into a jlabel

        String path = null;

        JFileChooser chooser = new JFileChooser();

        chooser.setCurrentDirectory(new File(System.getProperty("user.home")));

// file extension

        FileNameExtensionFilter extension = new FileNameExtensionFilter("*.Images","jpg","png","jpeg");

        chooser.addChoosableFileFilter(extension);

        int filestate = chooser.showSaveDialog(null);

// check if the user select an image

        if(filestate == JFileChooser.APPROVE_OPTION){

            File selectedImage = chooser.getSelectedFile();

            path = selectedImage.getAbsolutePath();

            jLabel_imgpath.setText(path);

            image_path = path;

        }

    }

// a jlabel to open the login form on Mouse Clicked Event

    private void jLabel_loginMouseClicked(java.awt.event.MouseEvent evt) {

        Login_Form lf = new Login_Form();

        lf.setVisible(true);

        lf.pack();

        lf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        this.dispose();

    }

// change the jlabel border color on mouse entered

    private void jLabel_loginMouseEntered(java.awt.event.MouseEvent evt) {

        Border label_border = BorderFactory.createMatteBorder(0, 0, 1, 0, new Color(0,204,0));

        jLabel_login.setBorder(label_border);

    }

// reset the jlabel border color on mouse exited

    private void jLabel_loginMouseExited(java.awt.event.MouseEvent evt) {

        Border label_create_accont_border = BorderFactory.createMatteBorder(0, 0, 1, 0, Color.lightGray);

        jLabel_login.setBorder(label_create_accont_border);

    }

// create a function to verify the empty fields

    public boolean verifyFields()

    {

        String fname = jTextField_Fullname.getText();

        String uname = jTextField_Username.getText();

        String phone = jTextField_Phone.getText();

        String pass1 = String.valueOf(jPasswordField_1.getPassword());

        String pass2 = String.valueOf(jPasswordField_2.getPassword());

// check empty fields

        if(fname.trim().equals("") || uname.trim().equals("") || phone.trim().equals("")

           || pass1.trim().equals("") || pass2.trim().equals(""))

        {

            JOptionPane.showMessageDialog(null, "One Or More Fields Are Empty","Empty Fields",2);

            return false;

        }

// check if the two password are equals or not

        else if(!pass1.equals(pass2))

        {

           JOptionPane.showMessageDialog(null, "Password Doesn't Match","Confirm Password",2);

           return false;

        }

// if everything is ok

        else{

            return true;

        }

    }

// create a function to check if the entered username already exists in the database

    public boolean checkUsername(String username){

        PreparedStatement st;

        ResultSet rs;

        boolean username_exist = false;

        String query = "SELECT * FROM `users` WHERE `username` = ?";

        try {

            st = My_CNX.getConnection().prepareStatement(query);

            st.setString(1, username);

            rs = st.executeQuery();

            if(rs.next())

            {

                username_exist = true;

                JOptionPane.showMessageDialog(null, "This Username is Already Taken, Choose Another One", "Username Failed", 2);

            }

        } catch (SQLException ex) {

            Logger.getLogger(Register_Form.class.getName()).log(Level.SEVERE, null, ex);

        }

        return username_exist;

    }

// button register

private void jButton_RegisterActionPerformed(java.awt.event.ActionEvent evt) {

         // get data from fields

         String fname = jTextField_Fullname.getText();

         String username = jTextField_Username.getText();

         String pass1 = String.valueOf(jPasswordField_1.getPassword());

         String pass2 = String.valueOf(jPasswordField_2.getPassword());

         String phone = jTextField_Phone.getText();

         String gender = "Male";

         if(jRadioButton_Female.isSelected()){

             gender = "Female";

         }

// check if the data are empty

         if(verifyFields())

         {

// check if the username already exists

             if(!checkUsername(username))

             {

                 PreparedStatement ps;

                 ResultSet rs;

                 String registerUserQuery = "INSERT INTO `users`(`full_name`, `username`, `password`, `phone`, `gender`, `picture`) VALUES (?,?,?,?,?,?)";

                 try {

                     ps = My_CNX.getConnection().prepareStatement(registerUserQuery);

                     ps.setString(1, fname);

                     ps.setString(2, username);

                     ps.setString(3, pass1);

                     ps.setString(4, phone);

                     ps.setString(5, gender);

                     try {

// save the image as blob in the database

                         if(image_path != null){

                             InputStream image = new FileInputStream(new File(image_path));

                             ps.setBlob(6, image);

                         }else{

                             ps.setNull(6, java.sql.Types.NULL);

                         }

                         if(ps.executeUpdate() != 0){

                             JOptionPane.showMessageDialog(null, "Your Account Has Been Created");

                         }else{

                             JOptionPane.showMessageDialog(null, "Error: Check Your Information");

                         }

                     } catch (FileNotFoundException ex) {

                         Logger.getLogger(Register_Form.class.getName()).log(Level.SEVERE, null, ex);

                     }

                 } catch (SQLException ex) {

                     Logger.getLogger(Register_Form.class.getName()).log(Level.SEVERE, null, ex);

                 }

             }

         }

    }

/****************** Register Form End ****************** /

Now We Will Make The Login Form To Allow The User Enter To The Application

/****************** Login Form Start ****************** /

public Login_Form() {

        initComponents();

/* - Download The Connector For JAVA & MYSQL database */

        /* LINK -> https://dev.mysql.com/downloads/connector/j/5.1.html */

        /* OPEN XAMPP and Strat Apache & Mysql */

        /* Go to -> http://localhost/phpmyadmin and create a new database */

        /* Create a Connection with the database */

        // center the form

        this.setLocationRelativeTo(null);

// create a yellow border for the jpanel_title

        // 0 border in the top

        Border jpanel_title_border = BorderFactory.createMatteBorder(0, 1, 1, 1, Color.yellow);

// set the border to the jPanel_title

        jPanel_title.setBorder(jpanel_title_border);

// create an orange border for the global panel

        Border glob_panel_border = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.orange);

        jPanel1.setBorder(glob_panel_border);

// create a black border for the close & minimize jlables

        Border label_border = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.black);

        jLabel_minimize.setBorder(label_border);

        jLabel_close.setBorder(label_border);

// create a border for the create acconut jlabel

        Border label_create_accont_border = BorderFactory.createMatteBorder(0, 0, 1, 0, Color.lightGray);

        jLabel_Create_Account.setBorder(label_create_accont_border);

// create a border with the color of the parent jpanel for the icons label to remove the move

        Border label_icons_border = BorderFactory.createMatteBorder(1, 1, 1, 1, new Color(153,153,153));

        jLabel_username.setBorder(label_icons_border);

        jLabel_password.setBorder(label_icons_border);

// create border for the username and password field

        Border field_border = BorderFactory.createMatteBorder(1, 5, 1, 1, Color.white);

        jTextField_Username.setBorder(field_border);

        jPasswordField.setBorder(field_border);

    }

// jlabel minimize -> mouse entered

  private void jLabel_minimizeMouseEntered(java.awt.event.MouseEvent evt) {

        Border label_border = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.white);

        jLabel_minimize.setBorder(label_border);

        jLabel_minimize.setForeground(Color.white);

    }

// jlabel minimize -> mouse exited

    private void jLabel_minimizeMouseExited(java.awt.event.MouseEvent evt) {

        Border label_border = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.black);

        jLabel_minimize.setBorder(label_border);

        jLabel_minimize.setForeground(Color.black);

    }

// jlabel close -> mouse entered

    private void jLabel_closeMouseEntered(java.awt.event.MouseEvent evt) {

Border label_border = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.white);

        jLabel_close.setBorder(label_border);

        jLabel_close.setForeground(Color.white);

    }

// jlabel close -> mouse exited

    private void jLabel_closeMouseExited(java.awt.event.MouseEvent evt) {

   Border label_border = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.black);

        jLabel_close.setBorder(label_border);

        jLabel_close.setForeground(Color.black);

    }

// jtextfield username -> focus gained

    private void jTextField_UsernameFocusGained(java.awt.event.FocusEvent evt) {

// clear the textfield on focus if the text is "username"

        if(jTextField_Username.getText().trim().toLowerCase().equals("username"))

        {

            jTextField_Username.setText("");

            jTextField_Username.setForeground(Color.black);

        }

// set a yellow border to the jlabel icon

        Border jlabel_icon = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.yellow);

        jLabel_username.setBorder(jlabel_icon);

    }

// jtextfield username -> focus lost

    private void jTextField_UsernameFocusLost(java.awt.event.FocusEvent evt) {

// if the text field is equal to username or empty

        // we will set the "username" text in the field

        // on focus lost event

        if(jTextField_Username.getText().trim().equals("") ||

           jTextField_Username.getText().trim().toLowerCase().equals("username"))

        {

            jTextField_Username.setText("username");

            jTextField_Username.setForeground(new Color(153,153,153));

        }

// create a border with the color of the parent jpanel for the icons label to remove the move

        Border label_icons_border = BorderFactory.createMatteBorder(1, 1, 1, 1, new Color(153,153,153));

        jLabel_username.setBorder(label_icons_border);

    }

// password field -> focus gained

    private void jPasswordFieldFocusGained(java.awt.event.FocusEvent evt) {

// clear the password field on focus if the text is "password"

        // get the password text

        String pass = String.valueOf(jPasswordField.getPassword());

        if(pass.trim().toLowerCase().equals("password"))

        {

            jPasswordField.setText("");

            jPasswordField.setForeground(Color.black);

        }

// set a yellow border to the jlabel icon

        Border jlabel_icon = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.yellow);

        jLabel_password.setBorder(jlabel_icon);

    }

// password field -> focus lost

    private void jPasswordFieldFocusLost(java.awt.event.FocusEvent evt) {

// if the password field is equal to password or empty

        // we will set the "password" text in the field

        // on focus lost event

        // get the password text

        String pass = String.valueOf(jPasswordField.getPassword());

        if(pass.trim().equals("") ||

           pass.trim().toLowerCase().equals("password"))

        {

            jPasswordField.setText("password");

            jPasswordField.setForeground(new Color(153,153,153));

        }

// create a border with the color of the parent jpanel for the icons label to remove the move

        Border label_icons_border = BorderFactory.createMatteBorder(1, 1, 1, 1, new Color(153,153,153));

        jLabel_password.setBorder(label_icons_border);

    }

// login button -> mouse entered

    private void jButton_LoginMouseEntered(java.awt.event.MouseEvent evt) {

// set jbutton background

        jButton_Login.setBackground(new Color(0,101,183));

    }

// login button -> mouse exited

    private void jButton_LoginMouseExited(java.awt.event.MouseEvent evt) {

// set jbutton background

        jButton_Login.setBackground(new Color(0,84,104));

    }

// jlabel minimize -> mouse clicked

    private void jLabel_minimizeMouseClicked(java.awt.event.MouseEvent evt) {

this.setState(JFrame.ICONIFIED);

    }

// jlabel close -> mouse clicked

    private void jLabel_closeMouseClicked(java.awt.event.MouseEvent evt) {

        System.exit(0);

    }

// button login

    private void jButton_LoginActionPerformed(java.awt.event.ActionEvent evt) {

PreparedStatement st;

        ResultSet rs;

// get the username & password

        String username = jTextField_Username.getText();

        String password = String.valueOf(jPasswordField.getPassword());

//create a select query to check if the username and the password exist in the database

        String query = "SELECT * FROM `users` WHERE `username` = ? AND `password` = ?";

// show a message if the username or the password fields are empty

        if(username.trim().equals("username"))

        {

            JOptionPane.showMessageDialog(null, "Enter Your Username", "Empty Username", 2);

        }

        else if(password.trim().equals("password"))

        {

            JOptionPane.showMessageDialog(null, "Enter Your Password", "Empty Password", 2);

        }

        else{

            try {

            st = My_CNX.getConnection().prepareStatement(query);

            st.setString(1, username);

            st.setString(2, password);

            rs = st.executeQuery();

            if(rs.next())

            {

// show a new form

                Menu_Form form = new Menu_Form();

                form.setVisible(true);

                form.pack();

                form.setLocationRelativeTo(null);

// close the current form(login form)

                this.dispose();

            }else{

// error message

                JOptionPane.showMessageDialog(null, "Invalid Username / Password","Login Error",2);

            }

        } catch (SQLException ex) {

            Logger.getLogger(Login_Form.class.getName()).log(Level.SEVERE, null, ex);

        }

        }

    }

// jlabel create account -> mouse entered

    private void jLabel_Create_AccountMouseEntered(java.awt.event.MouseEvent evt) {

        Border label_border = BorderFactory.createMatteBorder(0, 0, 1, 0, Color.red);

        jLabel_Create_Account.setBorder(label_border);

    }

// jlabel create account -> mouse exited

    private void jLabel_Create_AccountMouseExited(java.awt.event.MouseEvent evt) {

Border label_create_accont_border = BorderFactory.createMatteBorder(0, 0, 1, 0, Color.lightGray);

        jLabel_Create_Account.setBorder(label_create_accont_border);

    }

// open the register form when the user click on this jlabel with the mouse

    private void jLabel_Create_AccountMouseClicked(java.awt.event.MouseEvent evt) {

Register_Form rf = new Register_Form();

        rf.setVisible(true);

        rf.pack();

        rf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        this.dispose();

    }

/****************** Login Form End ****************** /

The Final Result:

The Login Form
If The User Does Not Enter The Username

If The User Does Not Enter The Password

If The Username Or The Password Does Not Exist
The Register/Signup Form
If The User Left On Field Or More Empty
If The User Select a Username That Already Exist
Add The User If Everything Is Ok

download the source code

How To Create A Login Page In Netbeans

Source: https://1bestcsharp.blogspot.com/2019/03/java-login-and-register-form.html

Posted by: wilketherechat.blogspot.com

0 Response to "How To Create A Login Page In Netbeans"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel