基于java+mysql的swing+mysql电子商城(java+swing+mysql+gui)

基于java+mysql的swing+mysql电子商城(java+swing+mysql+gui)

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

管理员管理商品、用户购买商品等

eclipse运行:

idea运行:

前台用户:

后台管理员:

技术框架

Java Swing GUI

基于java+mysql的Swing+MySQL电子商城(java+swing+mysql+gui)

		field.addActionListener(new Myaction());
				
		//密码
		label2.setText("请   输  入  密  码:");
		label2.setFont(new Font("微软雅黑",0,18));
		field1.addActionListener(new Myaction());
		password1.setText(password);
		//随机验证码
		Rand rand= new Rand();
		int num = rand.getRandom();
		label3.setText("验 证 码 ( "+ num +" ):");
		label3.setFont(new Font("微软雅黑",0,18));
		field2.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource() == field2) {
					String str = field2.getText();
					int n = Integer.parseInt(str);
					if(n != num) {
						JOptionPane.showMessageDialog(null,"验证码不正确", "错误",JOptionPane.ERROR_MESSAGE); 
						field2.setText("");
					}
				}
			}			
		});
		
		
		//登录按钮
		button.setText("登  录");
		button.setFont(new Font("微软雅黑",0,18));
		button.addActionListener(new Myaction());
		
		//返回商城主界面
		button1.setText("   返回商城主界面");
		button1.setFont(new Font("微软雅黑",1,18));
		button1.setBorderPainted(false);
		button1.setBackground(Color.WHITE);
		button1.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource() == button1) {
					dispose();
					IndexWelcome welcome = new IndexWelcome();
				}
			}			
		});
		

		box.add(label);
		box0.add(label0);
		box1.add(label1);
		field5.addActionListener(new Myaction());
		
		//随机验证码
		Rand rand= new Rand();
		int num = rand.getRandom();
		label7.setText("输 入 验 证 码 ( "+ num +" ):");
		label7.setFont(new Font("微软雅黑",0,18));
		field6.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource() == field6) {
					String str = field6.getText();
					int n = Integer.parseInt(str);
					if(n != num) {
						JOptionPane.showMessageDialog(null,"验证码不正确", "错误",JOptionPane.ERROR_MESSAGE); 
						field6.setText("");
					}
				}
			}			
		});
		
		button.setText("注册");
		button.setFont(new Font("微软雅黑",0,18));
		button.addActionListener(new Myaction());
		
		button1.setText("返回商城主界面");
		button1.setFont(new Font("微软雅黑",1,18));
		button1.setBorderPainted(false);
		button1.setBackground(Color.WHITE);
		button1.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource() == button1) {
					dispose();
					IndexWelcome welcome = new IndexWelcome();
				}
			}			
		});
		
		box.add(label);
		box0.add(label0);
		box1.add(label1);
		box1.add(field);
		box2.add(label2);
		box2.add(password1);
		box3.add(label3);
		box3.add(field2);
		box4.add(label4);
		box4.add(field3);
		box5.add(label5);
		//box1.add(Box.createVerticalStrut(40));
		box2.add(button);
		box2.add(Box.createVerticalStrut(40));
		box3.add(button2);
		box3.add(Box.createVerticalStrut(40));
		box4.add(button1);
		box4.add(Box.createVerticalStrut(40));
		box5.add(button3);
		box5.add(Box.createVerticalStrut(40));
		
		
		base.add(box);
		base.add(Box.createVerticalStrut(40));
		base.add(box0);
		base.add(Box.createVerticalStrut(40));
		base.add(box1);
		base.add(Box.createVerticalStrut(25));
		base.add(box2);
		base.add(Box.createVerticalStrut(25));
		base.add(box3);
		base.add(Box.createVerticalStrut(25));
		base.add(box4);
		base.add(Box.createVerticalStrut(25));
		base.add(box5);
		base.add(Box.createVerticalStrut(25));
		
		contenctPanel.add(base);
		add(contenctPanel);
		
	}
}
/***管理员查看用户信息界面***/

			AdminWelcome welcome = new AdminWelcome();
			welcome.getWelcome();
		}
	}
}
/***用户注册界面***/

public class UserRegion {
	
	public void getRegion() {
		
		Scanner cin = new Scanner(System.in);
		Timewait wait = new Timewait();
		out.println("\t\t***************  欢迎注册 在线 电子商城账户  ***************\n\n");
		out.print("\t\t请您输入用户名(数字、字母混合,长度大于5位、小于16位):");
		
		String username = cin.next();//用户名
		String password;//用户密码
		String card;//用户身份证号
		int age;//用户年龄
		String useremail;//用户邮箱
		String address;//用户地址
		
		DBuserNamedecide dbusername = new DBuserNamedecide();
		DBuserregion insert = new DBuserregion();
		if( dbusername.decideUsername(username)){
			out.println("\n\t\t您输入的用户名已存在,请重新注册!");
			wait.wait500();
			getRegion();	
		}else if(username.length() < 6 || username.length() > 16){
			out.println("\n\t\t您输入的长度不符合规范,请重新注册!\n");
			wait.wait500();
			getRegion();
		}else {
			UserDecide userdecide = new UserDecide();
			if(userdecide.Decide(username) == false) {
				out.println("\n\t\t您输入的用户名不符合规范,请重新注册!\n");
				wait.wait500();
				getRegion();
			}
			
			out.print("\n\t\t请您输入密码:");
			password = cin.next();
			if(userdecide.Decide(password) == false) {
			pres.close();
			conn.close();
			
		}catch(Exception e){
			e.printStackTrace();
		}
		JScrollPane scroll = new JScrollPane(text);
		scroll.setSize(800, 800);
		
		label2.setText("这是所有的商品信息,购买只需要输入商品序号和购买数量!");
		label2.setFont(new Font("微软雅黑",0,18));
		
		label3.setText("请 输 入 要 购 买 商 品 的 序 号:");
		label3.setFont(new Font("微软雅黑",0,18));
		
		label4.setText("请 输 入 要 购 买 商 品 的 数 量:");
		label4.setFont(new Font("微软雅黑",0,18));
		
		button.setText("确  定  购 买");
		button.setFont(new Font("微软雅黑",0,18));
		button.addActionListener(new Myaction());
		
		button1.setText("返回用户服务选择界面");
		button1.setFont(new Font("微软雅黑",1,18));
		button1.setBorderPainted(false);
		button1.setBackground(Color.WHITE);
		button1.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource() == button1) {
					dispose();
					UserSelect select = new UserSelect(username);
					select.getName(username);
					
				}
			}			
		});
		
		box.add(label);
		box1.add(label0);
		box2.add(label1);
		box3.add(scroll);
		box4.add(label2);
		box5.add(label3);
				if(e.getSource() == button1) {
					dispose();
					UserSelect select = new UserSelect(username);
					select.getName(username);
					
				}
			}			
		});
		
		box.add(label);
		box1.add(label0);
		box2.add(label1);
		box3.add(scroll);
		box4.add(label2);
		box5.add(button);
		box5.add(button1);
		
		base.add(box);
		base.add(Box.createVerticalStrut(20));
		base.add(box1);
		base.add(Box.createVerticalStrut(20));
		base.add(box2);
		base.add(Box.createVerticalStrut(20));
		base.add(box3);
		base.add(Box.createVerticalStrut(20));
		base.add(box4);
		base.add(Box.createVerticalStrut(30));
		base.add(box5);
		base.add(Box.createVerticalStrut(40));
		
		contenctPanel.add(base);
		add(contenctPanel);
		setVisible(true);
	}
	
	class Myaction extends JFrame implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			DBcostDel costdel = new DBcostDel();
			costdel.Costdel(username);
			JOptionPane.showMessageDialog(null, "清 空 购 物 车 !", "成功",JOptionPane.DEFAULT_OPTION); 
		}
		
	}
}
/***用户选择界面***/
	private final JLabel label = new JLabel();//文本标签
	private final JLabel label1 = new JLabel();//文本标签
	
	private final Box base = Box.createVerticalBox();
	private final Box box1 = Box.createHorizontalBox();
	private final Box box2 = Box.createHorizontalBox();
	private final Box box3 = Box.createHorizontalBox();
	private final Box box4 = Box.createHorizontalBox();
	private final Box box5 = Box.createHorizontalBox();
	private final Box box6 = Box.createHorizontalBox();
	private final Box box7 = Box.createHorizontalBox();
	private final Box box8 = Box.createHorizontalBox();
	private final Box box9 = Box.createHorizontalBox();
	
	public IndexWelcome() {
		
		setTitle("欢迎使用  在线  电子商城");
		setBounds(300,100,900,900);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		contenctPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
		contenctPanel.setBackground(Color.WHITE);
		label.setText("在 线    电   子   商   城");
		label.setFont(new Font("微软雅黑",1,32));
		label.setForeground(Color.BLUE);
		
		label1.setText("商    城    主    界    面");
		label1.setFont(new Font("微软雅黑",0,25));
		
		button1.setText("1、用       户       注       册");
		button1.setBackground(Color.WHITE);
		button1.setFont(new Font("微软雅黑",0,18));
		button1.setBorderPainted(false);
		
		button2.setText("2、用       户       登       录");
		button2.setBackground(Color.WHITE);
		button2.setFont(new Font("微软雅黑",0,18));
		button2.setBorderPainted(false);
		
		button3.setText("3、查   看   商   城   商   品");
		button3.setBackground(Color.WHITE);
		//返回商城主界面
		button1.setText("   返回商城主界面");
		button1.setFont(new Font("微软雅黑",1,18));
		button1.setBorderPainted(false);
		button1.setBackground(Color.WHITE);
		button1.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource() == button1) {
					dispose();
					IndexWelcome welcome = new IndexWelcome();
				}
			}			
		});
		
		box.add(label);
		box1.add(label1);
		box2.add(label2);
		box2.add(field);
		box3.add(label3);
		box3.add(field1);
		box4.add(label4);
		box4.add(field2);
		box5.add(button);
		box5.add(button1);
		
		base.add(box);
		base.add(Box.createVerticalStrut(40));
		base.add(box1);
		base.add(Box.createVerticalStrut(40));
		base.add(box2);
		base.add(Box.createVerticalStrut(40));
		base.add(box3);
		base.add(Box.createVerticalStrut(40));
		base.add(box4);
		base.add(Box.createVerticalStrut(40));
		base.add(box5);
		base.add(Box.createVerticalStrut(40));
		
		contenctPanel.add(base);
		add(contenctPanel);
	}
	
	class Myaction extends JFrame implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
		scroll.setSize(800, 800);
		button.setText("购  买  商  品");
		button.setFont(new Font("微软雅黑",1,18));
		button.setBorderPainted(false);
		button.setBackground(Color.WHITE);
		button.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource() == button) {
					dispose();
					UserLogin login = new UserLogin();
				}
			}		
		});
				
		button1.setText("返回商城主界面");
		button1.setFont(new Font("微软雅黑",1,18));
		button1.setBorderPainted(false);
		button1.setBackground(Color.WHITE);
		button1.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource() == button1) {
					dispose();
					IndexWelcome welcome = new IndexWelcome();	
				}
			}			
		});
		
		box.add(label);
		box1.add(label0);
		box2.add(scroll);
		box3.add(button);
		box3.add(button1);
		
		base.add(box);
		base.add(Box.createVerticalStrut(40));
		base.add(box1);
		base.add(Box.createVerticalStrut(40));
		base.add(box2);
		base.add(Box.createVerticalStrut(40));
		base.add(box3);
		base.add(Box.createVerticalStrut(40));
		
		contenctPanel.add(base);
		add(contenctPanel);
		setVisible(true);
	}
		
		button3.setText("3、删 除 用 户 信 息");
		button3.setBackground(Color.WHITE);
		button3.setFont(new Font("微软雅黑",1,18));
		button3.setBorderPainted(false);
		button3.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource() == button3) {
					dispose();
					AdminUserDel del = new AdminUserDel(adminname);
					del.getName(adminname);
					
				}
			}
			
		});
		
		button4.setText("4、删 除 商 品 信 息");
		button4.setBackground(Color.WHITE);
		button4.setFont(new Font("微软雅黑",1,18));
		button4.setBorderPainted(false);
		button4.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource() == button4) {
					dispose();
					AdminGoodsDel del = new AdminGoodsDel(adminname);
					del.getName(adminname);
					
				}
			}
			
		});
		
		button5.setText("5、添 加 商 品 信 息");
		button5.setBackground(Color.WHITE);
		button5.setFont(new Font("微软雅黑",1,18));
		button5.setBorderPainted(false);
		button5.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
		box1.add(field);
		box2.add(label2);
		box2.add(password1);
		box3.add(label3);
		box3.add(field2);
		box4.add(button);
		box4.add(button1);
		
		base.add(box);
		base.add(Box.createVerticalStrut(40));
		base.add(box0);
		base.add(Box.createVerticalStrut(40));
		base.add(box1);
		base.add(Box.createVerticalStrut(30));
		base.add(box2);
		base.add(Box.createVerticalStrut(30));
		base.add(box3);
		base.add(Box.createVerticalStrut(50));
		base.add(box4);
		base.add(Box.createVerticalStrut(50));
		
		contenctPanel.add(base);
		add(contenctPanel);
	}
	
	class Myaction extends JFrame implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			
			DBuserPassdecide passdecide = new DBuserPassdecide();
			DBuserNamedecide namedecide = new DBuserNamedecide();
			
			if(e.getSource() == button) {
				
				//获取文本框输入的信息
				username = field.getText();
				password = password1.getText();
				
				//判断用户名、密码
				if(namedecide.decideUsername(username) == false) {
					JOptionPane.showMessageDialog(null,"用户不存在,请重新输入!", "错误",JOptionPane.ERROR_MESSAGE); 
					field.setText("");
				}else if(passdecide.decideUserpass(username, password) == false) {
					JOptionPane.showMessageDialog(null,"密码不正确,请重新输入!", "错误",JOptionPane.ERROR_MESSAGE); 
					field1.setText("");
				}else{
					dispose();
					UserSelect userselect = new UserSelect(username);//跳转到用户服务选择界面
					userselect.getName(username);
				}
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource() == button1) {
					Option2 option = new Option2();
					dispose();
				}
			}			
		});
		//返回商城主界面
		button3.setText("4、返 回 商 城 主 界 面");
		button3.setFont(new Font("微软雅黑",1,18));
		button3.setBorderPainted(false);
		button3.setBackground(Color.WHITE);
		button3.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource() == button3) {
					dispose();
					IndexWelcome welcome = new IndexWelcome();
				}
			}			
		});
		box.add(label);
		box0.add(label0);
		box1.add(label1);
		//box1.add(Box.createVerticalStrut(40));
		box2.add(button);
		box2.add(Box.createVerticalStrut(40));
		box3.add(button2);
		box3.add(Box.createVerticalStrut(40));
		box4.add(button1);
		box4.add(Box.createVerticalStrut(40));
		box5.add(button3);
		box5.add(Box.createVerticalStrut(40));
		
		
		base.add(box);
		base.add(Box.createVerticalStrut(40));
		base.add(box0);
		base.add(Box.createVerticalStrut(40));
		base.add(box1);
		base.add(Box.createVerticalStrut(25));
		base.add(box2);
		base.add(Box.createVerticalStrut(25));
		base.add(box3);
		base.add(Box.createVerticalStrut(25));
		button1.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource() == button1) {
					AdminSelect select = new AdminSelect(adminname);
					select.getName(adminname);
					dispose();
				}
			}			
		});
		
		box.add(label);
		box0.add(label0);
		box1.add(label1);
		box2.add(scroll);
		box3.add(button1);
		
		base.add(box);
		base.add(Box.createVerticalStrut(40));
		base.add(box0);
		base.add(Box.createVerticalStrut(20));
		base.add(box1);
		base.add(Box.createVerticalStrut(30));
		base.add(box2);
		base.add(Box.createVerticalStrut(30));
		base.add(box3);
		base.add(Box.createVerticalStrut(30));
		
		contenctPanel.add(base);
		add(contenctPanel);
		setVisible(true);
	}

}
/***查看商城商品信息界面***/

				String card = res.getString("userCard");
				String name = res.getString("userName");
				String pass = res.getString("userPass");
				String email = res.getString("userEmail");
				if(card.equals(usercard) && email.equals(useremail)){
					username = name;
					password = pass;
					return true;
				}
			}
			res.close();
			pres.close();
			conn.close();
		}catch(Exception e){
			e.printStackTrace();
		}
		return false;
	}

}
/***管理员登录界面***/

public class AdminLogin extends JFrame {
	
private final JPanel contenctPanel = new JPanel();
	
	private final JTextField field = new JTextField(10);//姓名
	private final JTextField field1 = new JTextField(10);//密码
	private final JTextField field2 = new JTextField(10);//随机验证码

	private final JPasswordField password1 = new JPasswordField();//密码文本框
	
	private final JLabel label = new JLabel();//文本标签
	private final JLabel label0 = new JLabel();//文本标签
	private final JLabel label1 = new JLabel();//用户名
	private final JLabel label2 = new JLabel();//密码
	private final JLabel label3 = new JLabel();//随机验证码
	private final JTextField field2 = new JTextField(10);//随机验证码

	private final JPasswordField password1 = new JPasswordField();//密码文本框
	
	private final JLabel label = new JLabel();//文本标签
	private final JLabel label0 = new JLabel();//文本标签
	private final JLabel label1 = new JLabel();//用户名
	private final JLabel label2 = new JLabel();//密码
	private final JLabel label3 = new JLabel();//随机验证码
	
	private final JButton button = new JButton();
	private final JButton button1 = new JButton();
	
	private final Box base = Box.createVerticalBox();
	private final Box box = Box.createHorizontalBox();
	private final Box box0 = Box.createHorizontalBox();
	private final Box box1 = Box.createHorizontalBox();
	private final Box box2 = Box.createHorizontalBox();
	private final Box box3 = Box.createHorizontalBox();
	private final Box box4 = Box.createHorizontalBox();
	
	private String username, password, address, useremail, card;
	private int age;
	
	public void getName(String name) {
		this.username = name;
	}
	
	public UserLogin() {
		
		setTitle("欢迎使用  在线  电子商城");
		setBounds(300,100,900,900);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		contenctPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
		contenctPanel.setBackground(Color.WHITE);
		label.setText("在 线    电   子   商   城");
		label.setFont(new Font("微软雅黑",1,32));
		label.setForeground(Color.BLUE);
		
	private final JTextField field1 = new JTextField(10);//密码
	private final JTextField field2 = new JTextField(10);//随机验证码

	private final JPasswordField password1 = new JPasswordField();//密码文本框
	
	private final JLabel label = new JLabel();//文本标签
	private final JLabel label0 = new JLabel();//文本标签
	private final JLabel label1 = new JLabel();//用户名
	private final JLabel label2 = new JLabel();//密码
	private final JLabel label3 = new JLabel();//随机验证码
	
	private final JButton button = new JButton();
	private final JButton button1 = new JButton();
	
	private final Box base = Box.createVerticalBox();
	private final Box box = Box.createHorizontalBox();
	private final Box box0 = Box.createHorizontalBox();
	private final Box box1 = Box.createHorizontalBox();
	private final Box box2 = Box.createHorizontalBox();
	private final Box box3 = Box.createHorizontalBox();
	private final Box box4 = Box.createHorizontalBox();
	
	private String username, password, address, useremail, card;
	private int age;
	
	public AdminLogin() {
		
		setTitle("欢迎使用  在线  电子商城");
		setBounds(300,100,900,900);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		contenctPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
		contenctPanel.setBackground(Color.WHITE);
		label.setText("在 线    电   子   商   城");
		label.setFont(new Font("微软雅黑",1,32));
		label.setForeground(Color.BLUE);
		
		label0.setText("管  理  员  登  录  界  面\n");
		label0.setFont(new Font("微软雅黑",1,25));
		
		//用户名
		label1.setText("请 输 入 用 户 名:");
		label1.setFont(new Font("微软雅黑",0,18));
		field.addActionListener(new Myaction());
				
		label7.setFont(new Font("微软雅黑",0,18));
		field6.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource() == field6) {
					String str = field6.getText();
					int n = Integer.parseInt(str);
					if(n != num) {
						JOptionPane.showMessageDialog(null,"验证码不正确", "错误",JOptionPane.ERROR_MESSAGE); 
						field6.setText("");
					}
				}
			}			
		});
		
		button.setText("注册");
		button.setFont(new Font("微软雅黑",0,18));
		button.addActionListener(new Myaction());
		
		button1.setText("返回商城主界面");
		button1.setFont(new Font("微软雅黑",1,18));
		button1.setBorderPainted(false);
		button1.setBackground(Color.WHITE);
		button1.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(e.getSource() == button1) {
					dispose();
					IndexWelcome welcome = new IndexWelcome();
				}
			}			
		});
		
		box.add(label);
		box0.add(label0);
		box1.add(label1);
		box1.add(field);
		box2.add(label2);
		box2.add(password1);
		box3.add(label3);
		box3.add(field2);
		box4.add(label4);
		box4.add(field3);
		box5.add(label5);
		box5.add(field4);
		box6.add(label6);
		box6.add(field5);
		box7.add(label7);
		box7.add(field6);
		box8.add(button);
		box8.add(button1);
		

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值