⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loginsystem.java

📁 一个基于局域网的c/s模式网上购物系统,功能比较全面.数据库为Access.
💻 JAVA
字号:
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.net.*;
import java.io.*;

class LoginSystem implements ActionListener,ItemListener
{
	private JTextField userName,password,passwordConfirm,account,shopName;
	private JTextArea shopInfo;
	private JRadioButton c1,c2;
	private JComboBox cb;
    private JDialog dialog;	
    private boolean merchant;
    private String shopType;
    
    private Socket socket;
    private BufferedReader in;
    private PrintWriter out;
     
     
    LoginSystem(JFrame f,Socket socket)
    {
    	shopType = "computer";
    	this.socket = socket;
    	dialog = new JDialog(f,"欢迎注册",true);
    	dialog.setResizable(false);
    	try
    	{
    		in = 
		     new BufferedReader(
	          new InputStreamReader(
	           socket.getInputStream()));
    		
    	   	out =
	    	 new PrintWriter(
    		  new BufferedWriter(
     		   new OutputStreamWriter(
       			socket.getOutputStream())),true);
       	}catch(Exception e)
       	{
      
       	}
  	 	
  	 	
  	 	
  	 	JPanel rulePanel = new JPanel();
  	 	rulePanel.setLayout(new GridLayout(5,1));
  	 	rulePanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.red,2),
  	                "***注册前请阅读注册规则***",TitledBorder.CENTER,TitledBorder.TOP));
 	 	
  	 	JLabel r1 = new JLabel("1.加'*'号的项目必须填写");        
     	JLabel r2 = new JLabel("2.用户名只允许数字,字母和下划线,长度最大12位");
     	JLabel r3 = new JLabel("3.密码长度必须为6-20,允许数字与字母,两次输入必须一致");  
     	JLabel r4 = new JLabel("4.帐户号码必须为数字,若无该帐户则创建一个新的空帐户");  
     	JLabel r5 = new JLabel("5.店铺类型可以选择已有种类,也可自行填写(只允许字母)");

     	rulePanel.add(r1);
     	rulePanel.add(r2);
     	rulePanel.add(r3);
     	rulePanel.add(r4);
     	rulePanel.add(r5);
  	 	
  	 	
  	 	JPanel inforPanel = new JPanel();
  	 	inforPanel.setLayout(new GridBagLayout());
  	 	inforPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.gray,2),
  	                "请填写注册信息",TitledBorder.CENTER,TitledBorder.TOP));
        GridBagConstraints gbci = new GridBagConstraints();
     	gbci.anchor = GridBagConstraints.CENTER; 
     	gbci.insets = new Insets(2,2,2,2); 
  
  	 	
  		JPanel textPanel = new JPanel();
     	textPanel.setLayout(new GridBagLayout());
     	GridBagConstraints gbc = new GridBagConstraints();
     	gbc.anchor = GridBagConstraints.WEST; 
     	gbc.insets = new Insets(2,2,2,2); 
    	
  		JLabel l1 = new JLabel("用户名(*):");        
     	JLabel l2 = new JLabel("密码(*):");    
     	JLabel l3 = new JLabel("密码确认(*):");  
     	JLabel l4 = new JLabel("帐户号码(*):");  
     	JLabel l5 = new JLabel("地址:"); 
     	JLabel l6 = new JLabel("电子邮箱:"); 

     	userName = new JTextField(20);
   	 	password = new JTextField(20);
   	 	passwordConfirm = new JTextField(20);
   	 	account = new JTextField(20);

     	gbc.gridy=1;
     	gbc.gridx=0;
     	textPanel.add(l1,gbc);
     	gbc.gridx=1;
     	textPanel.add(userName,gbc);
     	gbc.gridy=2;
     	gbc.gridx=0;
     	textPanel.add(l2,gbc);
     	gbc.gridx=1;
     	textPanel.add(password,gbc);
     	gbc.gridy=3;
     	gbc.gridx=0;
     	textPanel.add(l3,gbc);
     	gbc.gridx=1;
     	textPanel.add(passwordConfirm,gbc);
     	gbc.gridy=4;
     	gbc.gridx=0;
     	textPanel.add(l4,gbc);
     	gbc.gridx=1;
     	textPanel.add(account,gbc);
     	gbc.gridy=5;
     	gbc.gridx=0;
     	textPanel.add(l5,gbc);
     	gbc.gridx=1;
     	textPanel.add(new JTextField(20),gbc);
     	gbc.gridy=6;
     	gbc.gridx=0;
     	textPanel.add(l6,gbc);
     	gbc.gridx=1;
     	textPanel.add(new JTextField(20),gbc);
     	



      	JPanel choosePanel=new JPanel();
 	    choosePanel.setLayout(new GridLayout(1,2));
  	    choosePanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.BLACK,1),
  	                "是否申请成为店主",TitledBorder.CENTER,TitledBorder.TOP)); 
  	    c1=new JRadioButton("      是      "); 
  	    c1.addItemListener(this);
 	    c2=new JRadioButton("      否      ",true); 
 	    c2.addItemListener(this);
 	    choosePanel.add(c1);
 	    choosePanel.add(c2);
 	    ButtonGroup bgroup1=new ButtonGroup();
	    bgroup1.add(c1);                          
   	 	bgroup1.add(c2);   
   	 	
   	 	
   	 	
   	 	JPanel selectPanel = new JPanel();
   	 	selectPanel.setLayout(new GridLayout());
   	 	String[] type = {"computer","dress","sports","food","book","electric","game"};
   	 	cb = new JComboBox(type);
   	 	cb.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.DARK_GRAY,0),
  	                "请选择店铺类型",TitledBorder.CENTER,TitledBorder.TOP));
    	cb.setEditable(true);
   	 	ComboBoxEditor editor=cb.getEditor();
	  	cb.configureEditor(editor,"computer");
   	 	cb.addItemListener(this);
   	 	selectPanel.add(cb);
   	 	cb.setEnabled(false);

      	 	
   	 	
   	 	JPanel stextPanel = new JPanel();
     	stextPanel.setLayout(new GridBagLayout());
  
     	JLabel l7 = new JLabel("店铺名称:");
     	shopName = new JTextField(20); 
 
     	gbc.gridy=0;
     	gbc.gridx=0;
     	stextPanel.add(l7,gbc);
     	gbc.gridx=1;
     	stextPanel.add(shopName,gbc);
     	shopName.setEnabled(false);
     	
     	JLabel l8 = new JLabel("店铺简介:");
      	shopInfo = new JTextArea(4,20);
      	shopInfo.setLineWrap(true);
      	gbc.gridy=1;
     	gbc.gridx=0;
     	stextPanel.add(l8,gbc);
     	gbc.gridx=1;
     	stextPanel.add(new JScrollPane(shopInfo),gbc);
     	shopInfo.setEnabled(false);
     	shopInfo.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY,1));

     	
     	JPanel shopPanel = new JPanel();
  		shopPanel.setLayout(new GridBagLayout());
  		shopPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY,2),
  	                "店铺相关信息",TitledBorder.CENTER,TitledBorder.TOP));
  		gbci.gridy=1;
  		gbci.gridx=0;
  		shopPanel.add(choosePanel,gbci);
		gbci.gridy=2;
  		shopPanel.add(selectPanel,gbci);
  		gbci.gridy=3;
  		shopPanel.add(stextPanel,gbci);
  		
  		
     	
     	gbci.gridy=0;
     	gbci.gridx=0;
   		inforPanel.add(textPanel,gbci);
   		gbci.gridy=1;
  		inforPanel.add(shopPanel,gbci);
 
 
        
        JPanel buttonPanel=new JPanel();
  		JButton b=new JButton("确定");
  		b.addActionListener(this);
  		buttonPanel.add(b);
  		b=new JButton("取消");
  		b.addActionListener(this);
  		buttonPanel.add(b);
  		

        dialog.add(rulePanel,BorderLayout.NORTH);
        dialog.add(inforPanel,BorderLayout.CENTER);
        dialog.add(buttonPanel,BorderLayout.SOUTH);
        

        dialog.setBounds(332,30,360,650);
        dialog.setResizable(false);
        dialog.setVisible(true);
    }
    
    
     public void actionPerformed(ActionEvent e)
     {
      	 String cmd=e.getActionCommand();
      	 if (cmd.equals("确定"))
      	 {
      	 	boolean legal=true;
      	 	if(userName.getSelectionEnd()==0 || shopType.equals("") ||password.getSelectionEnd()==0 ||  passwordConfirm.getSelectionEnd()==0 || account.getSelectionEnd()==0
      	 		||(merchant==true && shopName.getSelectionEnd()==0))
      	 	{
      	 		legal = false;
      	 		JOptionPane.showMessageDialog(null,"             请填写完整!","填写信息不正确",0);
      	 	}
      	 	
      	 	else if(!password.getText().equals(passwordConfirm.getText()) )
      	 	{
      	 		legal = false;
      	 		JOptionPane.showMessageDialog(null,"      两次输入的密码不相同!","填写信息不正确",0);
      	 	}
      	 	
      	 	else if(password.getText().length()<6 ||password.getText().length()>20 )
      	 	{
      	 		legal = false;
      	 		JOptionPane.showMessageDialog(null,"      密码长度不符合规则!","填写信息不正确",0);
      	 	}
      	 	
      	 	else if(userName.getText().length()>12)
      	 	{
      	 		legal = false;
      	 		JOptionPane.showMessageDialog(null,"             用户名过长!","填写信息不正确",0);	
      	 	}
      	 	
      	 	else if(shopInfo.getText().indexOf('\n')!=-1)
      	 	{
      	 		legal = false;
      	 		JOptionPane.showMessageDialog(null,"        简介中不允许回车!","填写信息不正确",0);	
       	 	}
      	 	
      	 	else
      	 	{
      	 		char[] temp = userName.getText().toCharArray();
      	 		for(int i=0;i<userName.getText().length();i++)
      	 		{
      	 			if(!((temp[i]>='0'&&temp[i]<='9')||(temp[i]>='a'&&temp[i]<='z')||(temp[i]>='A'&&temp[i]<='Z')||(temp[i]=='_')))
      	 			{
      	 				legal = false;
      	 				JOptionPane.showMessageDialog(null,"      用户名填写不符合规则!","填写信息不正确",0);
				 		return;
				 	}
      	 		}
      	 		
      	 		temp = password.getText().toCharArray();
      	 		for(int i=0;i<password.getText().length();i++)
      	 		{
      	 			if(!((temp[i]>='0'&&temp[i]<='9')||(temp[i]>='a'&&temp[i]<='z')||(temp[i]>='A'&&temp[i]<='Z')))
      	 			{
      	 				legal = false;
      	 				JOptionPane.showMessageDialog(null,"       密码填写不符合规则!","填写信息不正确",0);
				 		return;
				 	}
      	 		}
      	 		
      	 		temp = account.getText().toCharArray();
      	 		for(int i=0;i<account.getText().length();i++)
      	 		{
      	 			if(!((temp[i]>='0'&&temp[i]<='9')))
      	 			{
      	 				legal = false;
      	 				JOptionPane.showMessageDialog(null,"     帐户号填写不符合规则!","填写信息不正确",0);
				 		return;
				 	}
      	 		}
      	 		
      	 		temp = shopType.toCharArray();
      	 		for(int i=0;i<shopType.length();i++)
      	 		{
      	 			if(!((temp[i]>='a'&&temp[i]<='z')||(temp[i]>='A'&&temp[i]<='Z')||temp[i]==' '))
      	 			{
      	 				legal = false;
      	 				JOptionPane.showMessageDialog(null,"     店铺名填写不符合规则!","填写信息不正确",0);
      	 				return;
				 	}
      	 		}

      	 	}
      	 	
      	 	if(legal)
      	 	{
      	 		try{
      	 			
      	 		if(merchant)
      	 		{
					out.println("LOGINM");
           			out.println(userName.getText());
           			out.println(password.getText());
           			out.println(account.getText());
           			out.println(shopName.getText());
           			out.println(shopType);
           			out.println(shopInfo.getText());
           			
           			String result = in.readLine();
           			
           			if(result.equals("USED"))
           			{
           				out.println(JOptionPane.showInputDialog(null,"该账户已存在!","请输入创建该账户的用户名"));
           				result = in.readLine();
           			}
           			
           			if(result.equals("SUCCESS"))
           			{	
           				JOptionPane.showMessageDialog(null,userName.getText()+":  欢迎你加入本系统!","注册成功",1);
	       				dialog.dispose();
           			}
           			
           			if(result.equals("AFAILURE"))
           			{
           				JOptionPane.showMessageDialog(null,"账户信息输入不正确,请重新选择账户号码!","注册失败",0);
           			}
           			
           			if(result.equals("FAILURE"))
           			{
           				JOptionPane.showMessageDialog(null," 该用户名已存在,请重新选择用户名!","注册失败",0);
           			}
           			
           			if(result.equals("SHOPFAILURE"))
           			{
           				JOptionPane.showMessageDialog(null," 该店铺名已存在,请重新选择店铺名!","注册失败",0);
           			}
      	 		}
      	 		else
      	 		{
					out.println("LOGINC");
           			out.println(userName.getText());
           			out.println(password.getText());
           			out.println(account.getText());
           			
           			String result = in.readLine();
           			if(result.equals("USED"))
           			{
           				out.println(JOptionPane.showInputDialog(null,"该账户已存在!","请输入创建该账户的用户名"));
           				result = in.readLine();
           			}
           			
           			if(result.equals("SUCCESS"))
           			{	
           				JOptionPane.showMessageDialog(null,userName.getText()+":  欢迎你加入本系统!","注册成功",1);
	       				dialog.dispose();
           			}
           			
           			if(result.equals("FAILURE"))
           			{
           				JOptionPane.showMessageDialog(null," 该用户名已存在,请重新选择用户名!","注册失败",0);
           			}
           			
           			if(result.equals("AFAILURE"))
           			{
           				JOptionPane.showMessageDialog(null,"账户信息输入不正确,请重新选择账户号码!","注册失败",0);
           			}

      	 		}
      	 		}catch(Exception ex){}
      	 	}

      	 }
      	 
      	 else if (cmd.equals("取消"))
      	 {
      	   dialog.dispose();	
      	 }
      }
      
     public void itemStateChanged(ItemEvent e)
      {
  		  if (e.getStateChange()==e.SELECTED)
  		  {
  	  		  if (e.getSource()==c1)
  	  		  {
  	  		     this.merchant = true;
  	  		     cb.setEnabled(true);
  	  		     shopName.setEnabled(true);
  	  		     shopInfo.setEnabled(true);
  	  		  }
  	  		  else if (e.getSource()==c2)
  	  		  {
  	  		     this.merchant = false;
  	  		     cb.setEnabled(false);
  	  		     shopName.setText("");
  	  		     shopName.setEnabled(false);
  	  		     shopInfo.setText("");
  	  		     shopInfo.setEnabled(false);
   	  		  }
  	  		  else if(e.getSource()==cb)
  	  		  {
  	  		  	shopType = (String)e.getItem();
  	  		  }
  		  }
  	  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -