Faça login e registre o código pequeno, combine alguns dos pequenos conhecimentos que você aprendeu e use -o para aprofundar sua impressão. Se houver algum comentário neste exemplo, consulte outros blogs para obter detalhes.
Função Introdução: Um sistema de login e registro simples, usando conhecimentos como SQLServer, padrão de singleton, expressões regulares e desenvolvimento gráfico.
1. Na interface de login, você pode fazer login ou registrar um usuário. Registre a interface do usuário e insira informações de acordo com os requisitos de formato especificados na expressão regular. Se houver algum erro, volte.
2. Clique para se registrar e primeiro conecte -se ao banco de dados SQLServer. Se a conexão for bem -sucedida, ele determinará se o nome do usuário já existe. Se houver, será fornecido um prompt. Caso contrário, registre -se.
3. Faça login na interface. Ao clicar no botão de login, primeiro estabeleça uma conexão com o banco de dados. Pesquise no banco de dados de acordo com o nome de usuário e a senha. Nesse caso, o login será bem -sucedido. Caso contrário, dê um aviso.
4. Usando o modo Singleton, podemos apenas criar um objeto de SQLServer, que salva bastante a sobrecarga da memória.
Veja: https://github.com/chaohuangtianjie994/a-login-register-system
5. Com base nisso, um grande número de funções de expansão pode ser executado.
O código é o seguinte:
Interface de login do userReGister.java.
pacote pacote1; / * * Função: a interface de login possui a função de registro e a interface de registro aparece. * Salvar as informações registradas no banco de dados e o login podem ser executadas. *Autor: ywq */ importar javax.swing. *; importar java.awt.*; importar java.awt.event.*; importar java.sql.*; classe pública UserReGister estende o jframe implementa o ActionListener {// define os componentes da interface de login jbutton jb1, jb2, jb3 = null; Jradiobutton Jrb1, Jrb2 = null; JPanel JP1, JP2, JP3 = NULL; Jtextfield jtf = null; Jlabel jlb1, jlb2 = null; Jpasswordfield jpf = null; public static void main (string [] args) {userRegister ur = new userReGister (); } public userReGister () {// crie componente // crie componente jb1 = new jbutton ("login"); jb2 = novo jbutton ("registro"); jb3 = novo jbutton ("saída"); // Defina a audição jb1.addactionListener (this); jb2.addactionListener (isto); jb3.addactionListener (isto); jlb1 = new jlabel ("nome de usuário:"); jlb2 = new jlabel ("senha:"); JTF = novo JTextfield (10); jpf = novo JPasswordField (10); jp1 = new jpanel (); jp2 = new jpanel (); jp3 = new jpanel (); jp1.add (JLB1); jp1.add (JTF); JP2.Add (JLB2); JP2.Add (JPF); jp3.add (JB1); jp3.add (JB2); jp3.add (JB3); this.add (JP1); this.add (JP2); this.add (jp3); this.setVisible (true); this.setResizable (false); this.setTitle ("Registre interface de login"); this.setLayout (New GridLayout (3,1)); this.setDefaultCloseoperation (jframe.exit_on_close); this.setbounds (300, 200, 300, 180); } @Override public void ActionPerformed (ActionEvent e) {// Ouça cada botão se (e.getActionCommand () == "Exit") {System.exit (0); } else if (e.getActionCommand () == "login") {// Chame o método de login this.login (); } else if (e.getActionCommand () == "Register") {// Chame o método de registro this.regis (); }} // registre método public void regis () {this.dispose (); // fechar a interface atual nova interface do usuário (); // Abra a nova interface} // Método de login public void Login () {SQLSERVER S = new SQLSERVER (); S.ConnectSql (); s.sqlverify (jtf.getText (), jpf.getText ()); this.jtf.settext (""); this.jpf.settext (""); }} O UI.java é usado para a exibição da página de registro. Expressões regulares são usadas para especificar o conteúdo de entrada. Ao se registrar, você precisa primeiro determinar se o nome do usuário existe. Se existir, um prompt será fornecido, caso contrário, registre -se.
pacote pacote1; importar java.awt.event.*; importar java.awt.*; importar javax.swing.*; / * * Interface de registro. */classe UI estende JFrame implementa ActionListener {// Definir componente jframe jf; JPanel JP; Jlabel JL1, JL2, JL3, JL4; JTEXTFIELD JTF1, JTF2, JTF3, JTF4; JButton JB1, JB2; public ui () {// Inicialize componente jf = new jframe (); jp = new jpanel (); jl1 = new jlabel ("Por favor, digite o nome do usuário:"); JTF1 = novo JTextfield (10); jtf1.setToolTipText ("O nome do usuário deve ser de 3-6 dígitos letters_or números"); jl2 = new jlabel ("Por favor, digite a senha:"); jtf2 = novo JTextfield (10); jtf2.SetToolTipText ("A senha deve ser de 6 dígitos letters_or números"); jl3 = new jlabel ("Por favor, digite o nome:"); JTF3 = novo JTextfield (10); JTF3.SetToolTipText ("O nome deve ter 2-4 dígitos dos caracteres chineses"); jl4 = new jlabel ("Por favor, digite o número do aluno:"); JTF4 = novo JTextfield (10); JTF4.SetToolTipText ("O número do aluno deve ser de 3-6 dígitos"); jb1 = novo jbutton ("return"); jb1.setToolTipText ("Clique em mim para retornar à interface de login"); jb2 = novo jbutton ("registro"); jb1.addactionListener (isto); jb2.addactionListener (isto); jp.setLayout (New GridLayout (5,2)); jp.add (JL1); jp.add (JTF1); jp.add (JL2); jp.add (JTF2); jp.add (JL3); jp.add (JTF3); jp.add (JL4); jp.add (JTF4); jp.add (JB1); jp.add (JB2); this.add (JP); this.setTitle ("Interface de registro"); this.setbounds (200, 100, 250, 150); this.setVisible (true); this.setDefaultCloseoperation (jframe.exit_on_close); // this.setResizable (false); } public void ActionPerformed (ActionEvent e) {if (e.getActionCommand () == "return") {this.dispose (); novo userReGister (); // System.out.println ("-------"); } else if (e.getActionCommand () == "Register") {// chamando o método de registro this.zhuce (); }} public void zhuce () {string regex1 = "// w {3,6}"; // O nome do usuário deve ser de 3-6 bits sinalizadores booleanos 1 = jtf1.getText (). Matches (regex1); String regex2 = "// w {6}"; // A senha deve ser sinalizadora booleana de 6 bits2 = jtf2.getText (). Matches (regex2); String regex3 = "[// u4e00-// u9fa5] {2,4}"; // O nome deve ser 2-4 caracteres chineses sinalizadores booleanos = jtf3.getText (). Matches (regex3); String regex4 = "// d {3,6}"; // O número do aluno deve ser de 3-6 bits sinalizadores booleanos 4 = jtf4.getText (). Matches (regex4); // if (jtf1.getText () == null || jtf2.getText () == null || jtf3.getText () == null || jtf4.getText () == NULL) se (flag1 == false) {Joption IncorM.ShowMaGeDialog (Null, "Nome". JoptionPane.warning_message); jtf1.settext (""); } else if (flag2 == false) {JoptionPane.ShowMessAgedialog (null, "A senha é preenchida incorretamente, deve ser 6 letras ou números", "Mensagem imediata", JoptionPane.warning_message); JTF2.Settext (""); } else if (flag3 == false) {JoptionPane.ShowMessAgedialog (nulo, "enchimento incorreto do nome, 2-4 caracteres chineses devem ser de 2-4 dígitos", "Mensagem rápida", JoptionPane.warning_message); JTF3.Settext (""); } else if (flag4 == false) {JoptionPane.ShowMessAgedialog (null, "preenchimento incorreto do número do aluno, deve ser de 3-6 dígitos", "Mensagem rápida", JoptionPane.warning_message); JTF4.Settext (""); } else {// chamando o método de registro/primeiro verifique se o nome do usuário a ser registrado existe sqlserver ss = new sqlServer (); ss.connectSql (); ss.zhuceVifify (jtf1.getText ()); // ss.userregis (jtf1.getText (), jtf2.getText (), jtf3.getText (), jtf4.getText ()); this.jtf1.settext (""); this.jtf2.settext (""); this.jtf3.settext (""); this.jtf4.settext (""); }}} SQLSERVER.java implementa várias funções, como conexão com o banco de dados e a verificação da consulta.
pacote pacote1; importar java.sql.*; importar javax.swing.JOptionPane; /** Operações relacionadas aos bancos de dados, encapsulados separadamente nas classes*/ classe SQLServer {conexão ct; Preparado PS; ResultSet RS; Usuário da String, PWD; // encapsula o método que se conecta ao banco de dados em um método public void ConnectSql () {try {Class.ForName ("Sun.jdbc.odbc.jdbcodbcdriver"); // Carregar o driver CT = DriverManager.getConnection ("JDBC: ODBC: YWQ"); // Get Connection System.out.println ("banco de dados conectado ..."); } Catch (Exceção e) {// TODO BLOCO DE CAPAGEM AUTOMENTADO E.PRINTSTACKTRACE (); }} // Método para registrar o usuário public void userRegis (string a, string b, string c, string d) {// crie foguete tente {ps = ct.preparestatement ("inserir nos valores dos usuários (?,? ,? ,?)"); ps.SetString (1, a); ps.SetString (2, b); ps.SetString (3, C); ps.SetString (4, D); // execute int i = ps.executeUpdate (); if (i == 1) {JoptionPane.ShowMessagedialog (null, "Sucesso registrado", "Mensagem rápida", joptionpane.warning_message); } else {JoptionPane.showMessAgedialog (null, "Register Falha", "Mensagem Prompt", JoptionPane.error_Message); }} Catch (sqLexception e) {// TODO BLOCO DE CAPAGEM AUTOGERATION E.PRINTSTACKTRACE (); }} // Método de verificação de login public void sqlverify (string a, string b) {try {ps = ct.Preparestatement ("Selecione * dos usuários onde o nome de usuário =? E senha =?"); ps.SetString (1, a); ps.SetString (2, b); // Conjunto de resultados do ResultSet, você pode entender o ResultSet como o conjunto de resultados que retorna uma linha de tabela RS = PS.ExecuteQuery (); if (rs.Next ()) {user = rs.getString (1); pwd = rs.getString (2); JoptionPane.ShowMessAgedialog (NULL, "Login com sucesso!!", "Mensagem rápida", JoptionPane.warning_message); System.out.println ("obteve com sucesso a senha e o nome de usuário do banco de dados"); System.out.println (usuário + "/t" + pwd + "/t"); } else {JoptionPane.showMessagedialog (null, "Nome do usuário ou senha está incorreta, entre em volta!", "Mensagem rápida", joptionpane.error_message); }} catch (sqLexception e) {e.printStackTrace (); }} // Método de verificação de registro para determinar se o nome de usuário já possui zhuceVerify public void (string a) {try {ps = ct.Preparestatement ("Selecione * dos usuários onde o nome de usuário =?"); // System.out.println (ps); ps.SetString (1, a); rs = ps.executeQuery (); if (rs.Next ()) {JoptionPane.showMessagedialog (null, "Este nome de usuário já existe", "Mensagem rápida", joptionpane.warning_message); } else {// registre UI UI = new UI (); this.Userregis (ui.jtf1.getText (), ui.jtf2.getText (), ui.jtf3.getText (), ui.jtf4.getText ()); }} catch (sqLexception e) {e.printStackTrace (); }}}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.