/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template */ /** * * @author drago */ import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.swing.JOptionPane; //image packeges public class NewJFrame extends javax.swing.JFrame { /** * Creates new form NewJFrame */ public NewJFrame() { initComponents(); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { username = new javax.swing.JLabel(); in_username = new javax.swing.JTextField(); password = new javax.swing.JLabel(); in_password = new javax.swing.JPasswordField(); btn_login = new javax.swing.JButton(); jLabel3 = new javax.swing.JLabel(); signup = new javax.swing.JButton(); jLabel2 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); username.setText("Username :"); in_username.setBackground(new java.awt.Color(204, 204, 204)); in_username.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { in_usernameActionPerformed(evt); } }); password.setText("Password :"); in_password.setBackground(new java.awt.Color(204, 204, 204)); btn_login.setBackground(new java.awt.Color(102, 153, 255)); btn_login.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N btn_login.setForeground(new java.awt.Color(255, 255, 255)); btn_login.setText("Login"); btn_login.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btn_loginActionPerformed(evt); } }); jLabel3.setText("Don't have an account?"); signup.setForeground(new java.awt.Color(51, 153, 255)); signup.setText("Sign up"); signup.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { signupActionPerformed(evt); } }); jLabel2.setFont(new java.awt.Font("Sitka Text", 3, 36)); // NOI18N jLabel2.setText("Login Form"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(94, 94, 94) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(password) .addComponent(username)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(in_password, javax.swing.GroupLayout.PREFERRED_SIZE, 249, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(in_username, javax.swing.GroupLayout.PREFERRED_SIZE, 249, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btn_login, javax.swing.GroupLayout.PREFERRED_SIZE, 249, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(layout.createSequentialGroup() .addGap(100, 100, 100) .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(signup))) .addContainerGap(160, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel2) .addGap(180, 180, 180)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(54, 54, 54) .addComponent(jLabel2) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(username) .addComponent(in_username, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(password) .addComponent(in_password, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(btn_login, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(signup)) .addContainerGap(190, Short.MAX_VALUE)) ); pack(); }// //GEN-END:initComponents private void in_usernameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_in_usernameActionPerformed // TODO add your handling code here: }//GEN-LAST:event_in_usernameActionPerformed private void btn_loginActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_loginActionPerformed String userInput = in_username.getText(); String password = new String(in_password.getPassword()); // JDBC connection parameters String url = "jdbc:mysql://localhost:3306/login_form"; String user = "root"; String pass = ""; try { // Explicitly load the MySQL JDBC driver Class.forName("com.mysql.cj.jdbc.Driver"); try (Connection connection = DriverManager.getConnection(url, user, pass)) { // SQL query to check if the user with the given credentials exists (using either username or email) String query = "SELECT * FROM user WHERE (username = ? OR email = ?) AND password = ?"; try (PreparedStatement preparedStatement = connection.prepareStatement(query)) { preparedStatement.setString(1, userInput); preparedStatement.setString(2, userInput); preparedStatement.setString(3, password); // Execute the query try (ResultSet resultSet = preparedStatement.executeQuery()) { if (resultSet.next()) { // User exists, login successful JOptionPane.showMessageDialog(this, "Login successful!"); welcome wl = new welcome(); wl.setVisible(true); this.dispose(); } else { // User does not exist or invalid credentials JOptionPane.showMessageDialog(this, "Invalid username or email, or password. Please try again."); } } } } } catch (ClassNotFoundException | SQLException ex) { // Handle exceptions ex.printStackTrace(); } }//GEN-LAST:event_btn_loginActionPerformed private void signupActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_signupActionPerformed regg reg = new regg(); reg.setVisible(true); // Close or hide the registration form this.dispose(); }//GEN-LAST:event_signupActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ // /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ 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(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } // /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new NewJFrame().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btn_login; private javax.swing.JPasswordField in_password; private javax.swing.JTextField in_username; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel password; private javax.swing.JButton signup; private javax.swing.JLabel username; // End of variables declaration//GEN-END:variables }