教育路上
摘要:javagui的JFrame轻量级组件swing的使用JTextField如何取值,Java连接数据库,用Java代码实现用户注册保存到数据库内,并可以修改,查看数据库中的密码,删除数据库内的用户。以下是我们为大家整理的,相信大家阅读完后肯定有了自己的选择吧。
2021-06-03 22:06高中美
package cn.edu.cqipc.zhuce01; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; import java.util.*; public class Reguser extends JFrame { //定义变量 private JMenuBar menubar; private JMenu menu; private JMenuItem reg; private JMenuItem show; private JMenuItem del; private JMenuItem edit; private JButton reg1; private JButton show1; private JButton del1; private JButton edit1; private JPanel up; private JPanel down; private JTextField user; private JTextField pass; private JLabel text; private JLabel result; private JLabel result1; private JLabel result2; Statement stmt = null; ResultSet rs = null; Connection conn = null; private JButton regsave=new JButton("提交注册");//注册窗体里面的提交注册的按钮regsave private JButton editpass=new JButton("修改密码");//修改用户密码窗体里面的修改密码的按钮editpass private JButton deluser=new JButton("删除用户");//删除用户窗体里面的删除用户的按钮deluser private Map usermap=new HashMap();//存储用户的集合usermap public Reguser() {//构造方法 //窗体 menubar= new JMenuBar();//创建菜单栏对象menubar this.setJMenuBar(menubar);//将菜单栏添加到窗体里面 menu =new JMenu("菜单");//创建菜单对象menu menubar.add(menu);//把菜单添加到菜单栏中 reg=new JMenuItem("注册");//创建菜单项对象“注册”、“查看”、“修改”、“删除” show=new JMenuItem("查看"); edit=new JMenuItem("修改"); del=new JMenuItem("删除"); menu.add(reg);//把“注册”,“查看”,“修改”,“删除”这几个菜单项放在菜单里面 menu.addSeparator();//为菜单项添加分隔符 menu.add(show); menu.addSeparator(); menu.add(edit); menu.addSeparator(); menu.add(del); reg1=new JButton("注册"); show1=new JButton("查看"); edit1=new JButton("修改"); del1=new JButton("删除"); this.setDefaultCloseOperation(Frame.CROSSHAIR_CURSOR);//设置窗体可直接关闭 this.setSize(300,200);//设置窗体大小 this.setLocation(300, 300);//设置窗体位置 this.setVisible(true);//设置窗体可见 up=new JPanel(); down=new JPanel(){//在用户界面内添加一个panel作为自定义的图片背景 protected void paintComponent(Graphics g) { //重写paintComponent方法 super.paintComponent(g); ImageIcon img = new ImageIcon(Reguser.class.getResource("xiao.jpg")); //为下面的那个Panel设置图片背景 img.paintIcon(this, g, 0, 0); } }; this.add(up,BorderLayout.NORTH);//添加panel到窗口内 this.add(down,BorderLayout.SOUTH); text=new JLabel("用户注册界面");//创建JLabel标签 text.setFont(new Font("宋体",Font.PLAIN,30));//将panel里面中的Label标签里面的文字设置大小和字形 up.add(text);//添加textLabel标签 down.add(reg1);//把“注册”,“查看”,“修改”,“删除”这几个按钮放在下面那个panel里面(down那个panel) down.add(show1); down.add(edit1); down.add(del1); result=new JLabel();//在用户注册里面放一个提示的Label标签result result1=new JLabel();//在修改里面放一个提示的Label标签result1 result2=new JLabel();//在删除里面放一个提示的Label标签result2 //注册弹窗 //为注册菜单项reg添加动作监听事件 reg.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { reg0(); } }); //为注册按钮reg添加动作监听事件 reg1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { reg0(); } }); //删除用户弹窗 //为删除菜单项del添加动作事件监听器 del.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { del0(); } }); //为删除菜按钮del添加动作事件监听器 del1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { del0(); } }); //提交删除用户 deluser .addActionListener(new ActionListener() {//为删除菜单项内的“删除用户”按钮设动作事件监听器 public void actionPerformed(ActionEvent e) { String usersave=user.getText();//获取用户 String passsave=pass.getText();//获取密码 Object[][] tableusser = readuser(); //创建二维数据并读取数据库内的数据 if(!tableusser.equals (user)) {//判断是否有该用户 deluser1(usersave);//有,就调用删除数据用户的方法 result2.setText("删除成功");//跳出“删除成功”的文字 }else { result2.setText("没有该用户");//无,就提示“没有该用户” System.out.println("没有该用户"); } } //删除数据库用户 private void deluser1(String user2) { try { connect();//数据库的驱动代码和密码的方法 // 4.使用Statement执行SQL语句。 String sql = "delete from user1 where tuser= '"+user2+"'"; stmt.executeUpdate(sql); System.out.print(sql); } catch (Exception e) { e.printStackTrace(); } finally { closeresource(); //调用关闭数据库资源的方法 } } }); //修改密码弹窗 //为修改菜单项添加动作事件监听器 edit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { edit0(); } }); //为修改按钮添加动作事件监听器 edit1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { edit0(); } }); //提交修改密码 editpass.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String usersave=user.getText(); String passsave=pass.getText(); Object[][] tableusser = readuser(); if(!tableusser.equals (user)) { usermap.put(usersave,passsave); updatepass(usersave,passsave); result1.setText("修改成功"); }else { result1.setText("没有该用户"); System.out.println("没有该用户"); } } }); //提交注册监听 regsave.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String usersave=user.getText(); String passsave=pass.getText(); Setuserkey=usermap.keySet(); if(usermap.size()>0) { System.out.print(usermap.size()); Setkeyset=usermap.keySet(); for(String user:keyset) { if(!usersave.equals (user)) { usermap.put(usersave,passsave); result.setText("用户名注册成功"); insertuser(usersave,passsave); }else { result.setText("用户名重复"); } } }else{ usermap.put(usersave,passsave); } result.setText("用户名注册成功"); System.out.print(usermap); insertuser(usersave,passsave); } }); //查看用户名 //为查看菜单项添加动作事件监听器 show.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ show0(); } }); //为查看按钮添加动作事件监听器 show1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ show0(); } }); } //修改数据库中的密码 protected void updatepass(String user1, String pass1) { try { connect(); // 4.使用Statement执行SQL语句。 String sql = "update user1 set tpass='"+pass1+"' where tuser='"+user1+"'"; stmt.executeUpdate(sql); System.out.print(sql); } catch (Exception e) { e.printStackTrace(); } finally { closeresource();//调用关闭数据资源的方法 } } //读取数据库用户 Object[][] readuser() { Object[][] tableuser = null; try { connect(); // 4.使用Statement执行SQL语句。 int count=0; String sqlall = "select count(*) as result from user1"; rs = stmt.executeQuery(sqlall); while(rs.next()) { count = rs.getInt(1); } tableuser= new Object[count][]; String sql = "select * from user1"; rs = stmt.executeQuery(sql); int i=0; while (rs.next()) { String user = rs.getString("tuser"); String pass = rs.getString("tpass"); tableuser[i]=new Object[]{user,pass}; i++; } } catch (Exception e) { e.printStackTrace(); } finally { closeresource();//调用关闭数据资源的方法 } return tableuser; } //插入数据库用户 void insertuser(String user,String pass) { try { connect(); // 4.使用Statement执行SQL语句。 String sql = "insert into user1(tuser,tpass) value('"+user+"','"+pass+"')"; stmt.executeUpdate(sql); System.out.print(sql); } catch (Exception e) { e.printStackTrace(); } finally { closeresource();//调用关闭数据资源的方法 } } //注册方法 void reg0() { JDialog dialog = new JDialog(Reguser.this, false );//按下注册按钮后弹出一个弹窗,弹窗是非模式框 dialog.setLayout(new GridLayout(3,2));//该弹窗设为3行2列的网格布局管理器 dialog.setTitle("用户注册");//为弹窗设一个标题 dialog.setSize(300, 200);//设置弹窗大小 dialog.setLocation(50, 50);//设置弹窗位置 JLabel usertext=new JLabel("用户名");//在弹窗里面放一个用户和密码的Label标签 JLabel passtext=new JLabel("密码"); user=new JTextField();//在弹窗里面放一个用户和密码可输入的文本框 pass=new JTextField(); dialog.add(usertext);//把文本框和Label标签添加到弹窗内(共4个) dialog.add(user); dialog.add(passtext); dialog.add( pass); dialog.add(regsave);//提交注册的按钮 dialog.add( result);//添加注册是否成功的提示标签 dialog.setVisible(true);//设置弹窗可见 } //查看用户方法 void show0() { Object[] tabletop= {"用户名","密码"}; Object[][] tableuser= new Object[usermap.size()][]; Setuserkey=usermap.keySet(); int i=0; for(String user:userkey) { tableuser[i]=new Object[]{user,usermap.get(user)}; i++; } tableuser=readuser(); JTable table = new JTable(tableuser,tabletop); JDialog dialog = new JDialog(Reguser.this, false ); dialog.setTitle("显示用户名"); dialog.setSize(300, 200); dialog.setLocation(50, 50); dialog.add(table); dialog.setVisible(true); } //删除用户方法 void del0() { JDialog dialog = new JDialog(Reguser.this, false ); //弹窗设置为非模式 dialog.setLayout(new GridLayout(2,2));//边界布局 dialog.setTitle("删除用户");//为弹窗设置标题“删除用户” dialog.setSize(300, 200);//设置窗体大小 dialog.setLocation(50, 50);//设置窗体位置 JLabel usertext=new JLabel("用户名");//创建JLabel标签“用户名” user=new JTextField();//创建“用户名”可编辑框对象 pass=new JTextField(); result=new JLabel();//创建“删除成功”提示标签对象 dialog.add(usertext);//把“用户名”标签添加到弹窗内 dialog.add(user);//把“用户名”编辑框添加到弹窗内 dialog.add(deluser);//把“删除用户”按钮添加到弹窗内 dialog.add(result2);//把“删除成功”提示标签添加到弹窗内 dialog.setVisible(true);//设置弹窗可见 } //修改密码方法 void edit0() { JDialog dialog = new JDialog(Reguser.this, false); JLabel usertext=new JLabel("用户名"); JLabel passtext=new JLabel("密码"); user=new JTextField(); pass=new JTextField(); dialog.setLayout(new GridLayout(3,2)); dialog.setSize(300, 200); dialog.setLocation(50, 50); dialog.setTitle("用户修改"); dialog.add(usertext); dialog.add(user); dialog.add(passtext); dialog.add(pass); dialog.add(editpass); dialog.add(result1); dialog.setVisible(true); } //数据库的驱动代码和密码的方法 void connect() throws ClassNotFoundException, SQLException { // 1. 注册数据库的驱动 Class.forName("com.mysql.jdbc.Driver"); // 2.通过DriverManager获取数据库连接 String url = "jdbc:mysql://localhost:3306/test1"; String username = "root"; String password = "123456"; conn = DriverManager.getConnection(url, username, password); // 3.通过Connection对象获取Statement对象 stmt = conn.createStatement(); } //关闭数据库资源的方法 void closeresource() { // 6.回收数据库资源 if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } rs = null; } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } stmt = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } conn = null; } } public static void main(String[] aa) { new Reguser();//创建Reguser()对象 } }
访客的评论 2024/04/27 08:46
文中描述的是准确的吗,如何报名!