教育路上

全国站>Java>课堂作业>java的ActionListener事件监听匿名内部类和actionPerformed方法事件监听方法的使用
学员需求

java的ActionListener事件监听匿名内部类和actionPerformed方法事件监听方法的使用

摘要:java的ActionListener事件监听匿名内部类和actionPerformed方法事件监听方法的使用。以下是我们为大家整理的,相信大家阅读完后肯定有了自己的选择吧。

2021-06-03 22:05刘永莘

发布时间:
2021-06-03 22:05
信息来源:
刘永莘
浏览次数:
1339
java的ActionListener事件监听匿名内部类和actionPerformed方法事件监听方法的使用

package cn.org.lianxiche;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Set;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextField;
public class Reg extends JFrame{	
	//用于主界面创建变量
	private JButton reg;   //主界面的注册按钮
	private JButton show;   //主界面的查看按钮
	private JButton edit;   //主界面的修改按钮
	private JButton del;    //主界面的删除按钮
	private JPanel up;      //主界面中北方的容器,用于保存显示文字的标签
	private JPanel down;    //主界面中南方的容器,用于保存注册、查看、修改、删除按钮
	private JPanel cnPanel;  //主界面中间用于显示图片
	private JLabel uptext;   //主界面用于显示用户注册见面文字的标签
	//用于添加菜单变量
	private JMenuBar menuBar;   //定义一个菜单栏
	private JMenu menu;     //定义一个菜单
	private JMenuItem itemReg;  //定义一个用于注册的菜单项
	private JMenuItem itemShow;  //定义一个用于查看的菜单项
	private JMenuItem itemEdit;  //定义一个用于修改的菜单项
	private JMenuItem itemDel;   //定义一个用于删除的菜单项
	private JMenuItem itemExit;  //定义一个用于关闭窗体的菜单项
	//用于注册弹出框界面的变量
	private JDialog dialogReg;  //用户注册界面
	private JButton regsave;   //用户注册界面的提交注册按钮
	private JLabel regResult;     //用于注册界面的提示文字标签
	private JTextField regUser;  //用户注册界面的账号输入文本框
	private JTextField regPass;   //用户注册界面的密码输入文本框
	//用于查看弹出框界面的变量
	private JDialog dialogShow; //用户查看界面
	private JPanel panel;  //查看界面的容器
	//用于修改密码弹出界面的变量
	private JDialog dialogEdit;  //修改密码界面
	private JTextField editUser;   //修改密码界面的账号输入文本框
	private JTextField editPass;   //修改密码界面的密码输入文本框
	private JLabel editResult;     //修改密码界面的提示标签
	private JButton editBT;      //修改密码界面的确认修改按钮
	//用于删除用户弹出界面的变量
	private JDialog dialogDel;   //删除用户界面  
	private JTextField delUser;  //删除用户界面的账号输入文本框
	private JTextField delPass;  //删除用户界面的密码输入文本框
	private JLabel delResult;    //删除用户界面的提示文字标签
	private JButton delBT;       //删除用户界面的确认删除按钮
	//用于数据库连接变量
	private Statement stmt = null;
	private ResultSet rs = null;
	private Connection conn = null;
	public Reg() {
		//窗体初始化
		setSize(400,300);
		setLocation(300,200);
		setResizable(false);    //设置窗体不可拉伸
		reg=new JButton("注册");
		show=new JButton("查看");
		edit=new JButton("修改");
		del=new JButton("删除");
		setLayout(new BorderLayout());   //设置窗体的布局为边界布局
		up=new JPanel();       //创建一个容器放置于窗体的北方,用于添加提示标签
		cnPanel=new JPanel() {    //创建一个容器并设置容器的背景,放置于窗体的中部
			@Override 
	        protected void paintComponent(Graphics g) { 
	          super.paintComponent(g); 
	          ImageIcon img = new ImageIcon("D://相册//头像//薛之谦.jpg");  
	          img.paintIcon(this, g, 0, 0); 
	        } 
		};
		down=new JPanel();   //创建一个容器用于添加注册、查看、修改、删除按钮
		add(up,BorderLayout.NORTH);  //北方
		add(cnPanel,BorderLayout.CENTER);  //中间
		add(down,BorderLayout.SOUTH);   //南方
		down.add(reg);
		down.add(show);
		down.add(edit);
		down.add(del);
		uptext=new JLabel("用户注册界面");
		uptext.setFont(new Font("宋体",Font.PLAIN,30));   //设置窗体上方文字的大小
		up.add(uptext);  
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   //设置窗体可以关闭
		//为主界面添加菜单
		menuBar=new JMenuBar();     //创建一个菜单栏对象
		setJMenuBar(menuBar);  //把菜单栏设置到窗体的最上方
		menu=new JMenu("菜单");   //创建一个菜单,用于放置到菜单栏
		menuBar.add(menu);    //把菜单添加到菜单栏
		itemReg=new JMenuItem("注册用户");  
		itemEdit=new JMenuItem("修改密码");
		itemDel=new JMenuItem("删除用户");
		itemExit=new JMenuItem("关闭");
		itemReg.addActionListener(new ActionListener() {//
			@Override
			public void actionPerformed(ActionEvent e) {
				dialogReg.setVisible(true);		
			}
		});
		itemEdit.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				dialogEdit.setVisible(true);
			}
		});
		itemDel.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				dialogDel.setVisible(true);
			}
		});
		itemExit.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				setVisible(false);
				System.exit(0);//正常退出
			}
		});
		menu.add(itemReg);
		menu.addSeparator();  //添加分割符
		menu.add(itemEdit);
		menu.add(itemDel);
		menu.addSeparator();  //添加分割符
		menu.add(itemExit);
		setVisible(true);   //设置窗体可见
		regDialog();        //用户注册界面初始化方法
		editDialog();     //修改密码界面初始化方法
		delDialog();      //删除用户界面初始化方法
		//注册界面
		reg.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				dialogReg.setVisible(true);
			}
		});
		//提交注册监听
		regsave.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				String usersave=regUser.getText().trim(); //获取注册界面账号文本框的输入,并去掉开头和结尾的空格
				String passsave=regPass.getText().trim(); //获取注册界面密码文本框的输入,并去掉开头和结尾的空格
				if(usersave.length()<=0||usersave.length()>12) {//对账号输入框的内容判断,内容限制长度为1到12,如有误则结束该监听
					regResult.setText("账号输入有误");
					return;
				}
				if(passsave.length()<=0||passsave.length()>12) {//对密码输入框的内容判断,内容限制长度为1到12,如有误则结束该监听
					regResult.setText("密码输入有误");
					return;
				}
				String [] arr=selectUserName(); //通过连接数据库方法获取数据库中存在的用户数组
				for(String user01:arr) {   //对用户数组进行遍历
					if(usersave.equals(user01)) {  //判断输入的账号是否与数据库中的账号重复,若是则输出提示结束方法
						regResult.setText("用户名重复");
						return;
					}
				}
				regUser.setText(""); //若输入无误后就把账号文本框设置为空
				regPass.setText("");//若输入无误后就把密码文本框设置为空
				insertUser(usersave,passsave); //使用连接数据库的方法向数据库中插入用户注册的用户
				regResult.setText("用户名注册成功");
			}
		});
		//查看用户名
		show.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				panel=new JPanel() {
					@Override 
			        protected void paintComponent(Graphics g) { 
			          super.paintComponent(g); 
			          ImageIcon img = new ImageIcon("D://相册//头像//薛之谦02.jpg");  
			          img.paintIcon(this, g, 0, 0); 
			        } 
				};
				Object [] tabletop= {"用户名","密码"};
				Object [][] tableuser=readUser();    //连接数据库获取用户
				JTable table=new JTable(tableuser, tabletop); //创建一个表对象
				panel.add(table);
				dialogShow=new JDialog(Reg.this,true);
				dialogShow.setTitle("显示用户名");
				dialogShow.setSize(200, 200);
				dialogShow.setLocation(300, 300);
				dialogShow.add(panel);
				dialogShow.setVisible(true);
			}
		});
		//修改密码
		edit.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				dialogEdit.setVisible(true);
			}
		});
		//提交修改密码
		editBT.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				String usersave=editUser.getText().trim();
				String passsave=editPass.getText().trim();
				if(passsave.equals("")||passsave.equals(null)) { //判断输入的密码是否为空的,若是则结束该监听
					editResult.setText("密码修改失败");
					return;
				}
				boolean is=editPass(usersave,passsave); //通过连接数据库方法去修改指定用户的密码,若修改成功则返回true
				if(is) {   //通过返回的值来判断是否修改成功
					editResult.setText("密码修改成功");
					editUser.setText("");
					editPass.setText("");
				}else {
					editResult.setText("密码修改失败");
					editPass.setText("");
				}
			}
		});
		//删除用户按钮监听
		del.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				dialogDel.setVisible(true);
			}
		});
		//为删除用户按钮添加监听
		delBT.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				String usersave=delUser.getText().trim();
				String passsave=delPass.getText().trim();
				if(passsave.equals("")||passsave.equals(null)||usersave.equals("")||usersave.equals(null)) {
					delResult.setText("用户删除失败");
					return;
				}
				boolean is=delUser(usersave,passsave); //通过连接数据库方法来删除指定账号和密码的用户,若删除成功则返回true
				if(is) {
					delResult.setText("用户删除成功");
					delPass.setText("");
					delUser.setText("");
				}else {
					delResult.setText("用户删除失败");
				}
			}
		});
	}
	//注册界面初始化方法
	private void regDialog() {
		dialogReg = new JDialog(Reg.this, true );
		dialogReg.setLayout(new GridLayout(3,2));			
		dialogReg.setTitle("用户注册");
		dialogReg.setSize(300, 200);
		dialogReg.setLocation(50, 50);
		JLabel usertext=new JLabel("用户名:");
		JLabel passtext=new JLabel("密 码:");
		regUser=new JTextField();
		regPass=new JTextField();
		regsave=new JButton("提交注册");
		regResult=new JLabel();
		dialogReg.add(usertext);
		dialogReg.add(regUser);
		dialogReg.add(passtext);
		dialogReg.add(regPass);
		dialogReg.add(regsave);
		dialogReg.add(regResult);
	}
	//修改密码界面初始化方法
	private void editDialog() {
		dialogEdit = new JDialog(Reg.this, true );
		dialogEdit.setLayout(new GridLayout(3,2));			
		dialogEdit.setTitle("密码修改");
		dialogEdit.setSize(300, 200);
		dialogEdit.setLocation(50, 50);
		JLabel usertext=new JLabel("用户名:");
		JLabel passtext=new JLabel("密 码:");
		editUser=new JTextField();
		editPass=new JTextField();
		editResult=new JLabel();
		editBT=new JButton("确认修改");
		dialogEdit.add(usertext);
		dialogEdit.add(editUser);
		dialogEdit.add(passtext);
		dialogEdit.add(editPass);
		dialogEdit.add(editBT);
		dialogEdit.add(editResult);
	}
	//删除用户界面初始化方法
	private void delDialog() {
		dialogDel = new JDialog(Reg.this, true );
		dialogDel.setLayout(new GridLayout(3,2));			
		dialogDel.setTitle("用户删除");
		dialogDel.setSize(300, 200);
		dialogDel.setLocation(50, 50);
		JLabel userLabel=new JLabel("用户名:");
		JLabel passLabel=new JLabel("密码:");
		delUser=new JTextField();
		delPass=new JTextField();
		delBT=new JButton("确认删除");
		delResult=new JLabel();
		dialogDel.add(userLabel);
		dialogDel.add(delUser);
		dialogDel.add(passLabel);
		dialogDel.add(delPass);
		dialogDel.add(delBT);
		dialogDel.add(delResult);
	}
	//读取数据库用户,并返回包含了用户的二维数组
	private Object[][] readUser(){
		Object[][] tableuser = null;
		try {
			SQL_Init();
			// 4.使用Statement执行SQL语句。
			int count=0;
			String sqlall = "select count(*) as result from user00";  
	           rs = stmt.executeQuery(sqlall);  
	           while(rs.next())  
	           {  
	               count = rs.getInt(1); 
	           }  
	        tableuser= new Object[count+1][];
	        String sql = "select * from user00";
			rs = stmt.executeQuery(sql);
			int i=1;
			tableuser[0]=new Object[]{"用户名","密码"};
			while (rs.next()) {
				String user = rs.getString("u_user");
				String pass = rs.getString("u_pass");
				tableuser[i]=new Object[]{user,pass};	
				i++;
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			SQL_OFF();
		}
		return tableuser;
	}
	//修改用户密码,并返回一个布尔值,用于判断是否修改成功
	private boolean editPass(String user,String pass){
		boolean is=false;
		int number=0;
		try {
			SQL_Init();
			// 4.使用Statement执行SQL语句。
			int count=0;
			String sqlall = "update user00 set u_pass='"+pass+"' where u_user='"+user+"'";  
            number=stmt.executeUpdate(sqlall);
            if(number>0) {
            	is=true;
            }
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 6.回收数据库资源
			SQL_OFF();
		}
		return is;
	}
	//删除用户,并返回一个布尔值,用于判断是否删除成功
	private boolean delUser(String user,String pass){
		boolean is=false;
		int number=0;
		try {
			SQL_Init();
			// 4.使用Statement执行SQL语句。
			int count=0;
			String sqlall = "delete from user00 where u_user='"+user+"' and u_pass='"+pass+"'";  
	        number=stmt.executeUpdate(sqlall);
	        if(number>0) {
	           	is=true;
	        }
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 6.回收数据库资源
			SQL_OFF();
		}
		return is;
	}
	//插入数据库用户
	private void insertUser(String user,String pass) {
		try {
			SQL_Init();
			// 4.使用Statement执行SQL语句。
			String sql = "insert into user00(u_user,u_pass) value('"+user+"','"+pass+"')";
			stmt.executeUpdate(sql);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 6.回收数据库资源
			SQL_OFF();
		}
	}
	//查看数据库中的所有用户,并返回一个包含了所有用户的一维数组
	private String [] selectUserName() {
		String [] arrName=null;
		try {
			SQL_Init();
			String sql01="select count(u_user) from user00";
			rs=stmt.executeQuery(sql01);
			int n=0;
			while(rs.next()) {
				n=rs.getInt(1);
			}
			arrName=new String[n];
			String sql02="select u_user from user00";
			rs=stmt.executeQuery(sql02);
			int i=0;
			while(rs.next()) {
				arrName[i]=rs.getString("u_user");
				i++;
			}
		}catch(Exception e) {
			e.printStackTrace();
		}
		return arrName;
	}
	//用于连接数据库
	private void SQL_Init() {
		try {
			// 1. 注册数据库的驱动
			Class.forName("com.mysql.jdbc.Driver");
			// 2.通过DriverManager获取数据库连接
			String url = "jdbc:mysql://localhost:3306/javatest";
			String username = "root";
			String password = "123456";
			conn = DriverManager.getConnection(url, username, password);
			// 3.通过Connection对象获取Statement对象
			stmt = conn.createStatement();
		}catch(Exception e) {
			e.printStackTrace();
		}
	}
	//用于关闭数据库资源
	private void SQL_OFF() {
		// 回收数据库资源
		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 args[]) {
		new Reg();
	}
}

上一篇:
javagui的JFrame轻量级组件swing的使用JTextField如何取值
下一篇:
已知半径求圆面积java方法的使用及方法传参
标签:
网友评论
发布评论

访客的评论 2024/03/28 18:06

文中描述的是准确的吗,如何报名!

相关推荐
我也来发表评价关闭
我对该内容的评价:
0
评价500
验证码: 看不清 换一张
提交 (匿名发布,无须担心别人知道您的身份)
学校免费发布信息关闭
我们审核后会尽快展示,如有图片请发邮件到:edu63@foxmail.com

姓      名:

内      容:

手机号码:

验  证  码:  换一张

确认提交
填写需求信息关闭
我们会根据您的需求匹配并审核留言

姓      名:

意向城市:

留      言:

手机号码:

验  证  码:  换一张

确认提交
完善补充本文信息关闭
非常感谢您帮助完善补充本文信息


 换一张

确认提交