Форма входа с Java / SQLite - PullRequest
1 голос
/ 16 мая 2010

Я хотел бы создать форму входа для своего приложения с возможностью добавления или удаления пользователей для базы данных sqlite. Я создал таблицу пользователей (nam, pass), но не могу отключить ее в форме входа это кто-то может мне помочь

это мой код входа в систему:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;


public class login extends JFrame{

 // Variables declaration

private JLabel jLabel1;

private JLabel jLabel2;

private JTextField jTextField1;

private JPasswordField jPasswordField1;

private JButton jButton1;

private JPanel contentPane;

// End of variables declaration



public login(){

 super();

 create();

 this.setVisible(true);

 }


private void create(){

jLabel1 = new JLabel();

jLabel2 = new JLabel();

jTextField1 = new JTextField();

jPasswordField1 = new JPasswordField();

jButton1 = new JButton();

contentPane = (JPanel)this.getContentPane();


 //

 // jLabel1

 //

 jLabel1.setHorizontalAlignment(SwingConstants.LEFT);

 jLabel1.setForeground(new Color(0, 0, 255));

 jLabel1.setText("username:");

 //

 // jLabel2

 //

  jLabel2.setHorizontalAlignment(SwingConstants.LEFT);

  jLabel2.setForeground(new Color(0, 0, 255));

  jLabel2.setText("password:");

 //

 // jTextField1

 //

  jTextField1.setForeground(new Color(0, 0, 255));

  jTextField1.setSelectedTextColor(new Color(0, 0, 255));

  jTextField1.setToolTipText("Enter your username");

  jTextField1.addActionListener(new ActionListener() {

     public void actionPerformed(ActionEvent e){

    jTextField1_actionPerformed(e);

  }

 });

 //

 // jPasswordField1

 //

  jPasswordField1.setForeground(new Color(0, 0, 255));

  jPasswordField1.setToolTipText("Enter your password");

  jPasswordField1.addActionListener(new ActionListener() {

   public void actionPerformed(ActionEvent e){

    jPasswordField1_actionPerformed(e);

   }

  });

 //

 // jButton1

 //

  jButton1.setBackground(new Color(204, 204, 204));

  jButton1.setForeground(new Color(0, 0, 255));

  jButton1.setText("Login");

  jButton1.addActionListener(new ActionListener() {

   public void actionPerformed(ActionEvent e){

     jButton1_actionPerformed(e);

    }

   });

   //

   // contentPane

   //

   contentPane.setLayout(null);

   contentPane.setBorder(BorderFactory.createEtchedBorder());

   contentPane.setBackground(new Color(204, 204, 204));

   addComponent(contentPane, jLabel1, 5,10,106,18);

   addComponent(contentPane, jLabel2, 5,47,97,18);

   addComponent(contentPane, jTextField1, 110,10,183,22);

   addComponent(contentPane, jPasswordField1, 110,45,183,22);

   addComponent(contentPane, jButton1, 150,75,83,28);

   //

   // login

   //

   this.setTitle("Login To Members Area");

   this.setLocation(new Point(76, 182));

   this.setSize(new Dimension(335, 141));

   this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

   this.setResizable(false);

   }



    /** Add Component Without a Layout Manager (Absolute Positioning) */

    private void addComponent(Container container,Component c,int x,int y,int width,int height){

   c.setBounds(x,y,width,height);

     container.add(c);

   }



    private void jTextField1_actionPerformed(ActionEvent e){


   }



      private void jPasswordField1_actionPerformed(ActionEvent e){



    }



    private void jButton1_actionPerformed(ActionEvent e){

    System.out.println("\njButton1_actionPerformed(ActionEvent e) called.");

   String username = new String(jTextField1.getText());

    String password = new String(jPasswordField1.getText());



   if(username.equals("") || password.equals("")){// If password and username is empty > Do this >>>

     jButton1.setEnabled(false);

    JLabel errorFields = new JLabel("<HTML><FONT COLOR = Blue>You must enter a username and password to login.</FONT></HTML>");

     JOptionPane.showMessageDialog(null,errorFields);

     jTextField1.setText("");

     jPasswordField1.setText("");

     jButton1.setEnabled(true);

     this.setVisible(true);

    } else{

       JLabel optionLabel = new JLabel("<HTML><FONT COLOR = Blue>You entered</FONT><FONT COLOR   = RED> <B>"+username+"</B></FONT> <FONT COLOR = Blue>as your username.<BR> Is this correct?</FONT></HTML>");

      int confirm =JOptionPane.showConfirmDialog(null,optionLabel);

       switch(confirm){ // Switch > Case

     case JOptionPane.YES_OPTION: // Attempt to Login user

       jButton1.setEnabled(false); // Set button enable to false to prevent 2 login attempts

     break;

      case JOptionPane.NO_OPTION: // No Case.(Go back. Set text to 0)

      jButton1.setEnabled(false);

     jTextField1.setText("");

      jPasswordField1.setText("");

      jButton1.setEnabled(true);

      break;

      case JOptionPane.CANCEL_OPTION: // Cancel Case.(Go back. Set text to 0)

      jButton1.setEnabled(false);

     jTextField1.setText("");

     jPasswordField1.setText("");

    jButton1.setEnabled(true);

    break;



    } // End Switch > Case

  }

}



 public static void main(String[] args){

  JFrame.setDefaultLookAndFeelDecorated(true);

 JDialog.setDefaultLookAndFeelDecorated(true);

 try{

  UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

  }catch (Exception ex){

   System.out.println("Failed loading L&F: ");

    System.out.println(ex);

   }

   new login();

 };


 }

мой класс connectDb:

public class Connectdb {


   private static  Connection connect;

   private static String url ="jdbc:sqlite:data.db"; 
   private static Statement st;
   private static ResultSet rs;

   /**
 * Constructeur privé d'une connection à la bd unique
 */
private ConnectionBd(){
        try {

            Class.forName("org.sqlite.JDBC");

            connect = DriverManager.getConnection(url);


            } catch (ClassNotFoundException ex) {
                                                 Logger.getLogger(ex.getName()).log(Level.SEVERE, null, ex);
                                                 } catch (SQLException e) {
                                                                                          System.exit(e.getErrorCode());
                                                               }

    }

public static Connection getInstance(){

       if(connect == null){
        new Connectdb();

         }else{
              }
return connect;

}

    /**
 * @return 
 */
    public static void initTable(String query){

    try {
        Statement state = getInstance().createStatement(ResultSet.TYPE_FORWARD_ONLY,
                            ResultSet.CONCUR_READ_ONLY);
        ResultSet res = state.executeQuery(query);
        res.close();
        state.close();


       } catch (SQLException e) {
        JOptionPane.showMessageDialog(null, e.getMessage(), "ERROR ! ", JOptionPane.ERROR_MESSAGE);
                                 }

}

1 Ответ

3 голосов
/ 16 мая 2010

Вы должны прочитать о JDBC , и я бы порекомендовал использовать JavaDB в качестве базы данных, если вы используете его только с вашим Java-приложением.

...