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

📄 tidyuserframe.java

📁 图书管理系统:用户管理
💻 JAVA
字号:
//整理用户窗口

import javax.swing.*;
import java.net.URL;
import java.sql.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class TidyUserFrame extends JFrame implements ActionListener,ItemListener{
	static final long serialVersionUID=80;
	JLabel keytypelabel,keylabel,userlabel,recordlabel;
	JRadioButton userbutton,typebutton;
	ButtonGroup group;
	JTextField field;
	EllipseButton searchbutton,changebutton,delbutton,viewbutton,printuserbutton,printrecordbutton;
	JTable usertable,recordtable;
	JScrollPane userpane,recordpane;
	JProgressBar userprogress,recordprogress;
	Dimension screenSize;
	Toolkit tool;
	Image myimage;
	AudioClip audio;
	URL audiourl;
	Container container;
	Connection con;
	PrintJob printjob;
	Graphics graphics;
	Object[][] user=new Object[10][3];
	Object[][] record=new Object[10][2];
	Object[] usercolumn={"用户名","密码","类型"};
	Object[] recordcolumn={"登录时间","离开时间"};
	int n=-1;
	Statement sql;
	String[] keytype={"UserName","UserPurview"};
	TidyUserFrame(String title,Connection con){
		super(title);
		this.con=con;
		setResizable(false);
		setSize(750,262);
		container=getContentPane();
		container.setBackground(Color.ORANGE);
		container.setLayout(null);
		tool=getToolkit();
		URL url = getClass().getResource("/images/tidy.GIF");
		if(url!=null){
			myimage=tool.getImage(url);
			setIconImage(myimage);
		}
		screenSize=tool.getScreenSize();
		keytypelabel=new JLabel("关键字的类型:");
		keylabel=new JLabel("关键字:");
		userlabel=new JLabel("用户资料");
		recordlabel=new JLabel("用户记录");
		userbutton=new JRadioButton("用户名");
		typebutton=new JRadioButton("类型");
		userbutton.addItemListener(this);
		typebutton.addItemListener(this);
		group=new ButtonGroup();
		userbutton.addItemListener(this);
		typebutton.addItemListener(this);
		group.add(userbutton);
		group.add(typebutton);
		userbutton.setBackground(Color.ORANGE);
		typebutton.setBackground(Color.ORANGE);
		field=new JTextField(20);
		searchbutton=new EllipseButton("查询");
		changebutton=new EllipseButton("修改");
		delbutton=new EllipseButton("删除");
		viewbutton=new EllipseButton("查看记录");
		printuserbutton=new EllipseButton("打印资料");
		printrecordbutton=new EllipseButton("打印记录");
		searchbutton.addActionListener(this);
		changebutton.addActionListener(this);
		delbutton.addActionListener(this);
		viewbutton.addActionListener(this);
		printuserbutton.addActionListener(this);
		printrecordbutton.addActionListener(this);
		usertable=new JTable(user,usercolumn);
		recordtable=new JTable(record,recordcolumn);
		userpane=new JScrollPane(usertable);
		recordpane=new JScrollPane(recordtable);
		userprogress=new JProgressBar(JProgressBar.HORIZONTAL,0,50);
		userprogress.setStringPainted(true);
		recordprogress=new JProgressBar(JProgressBar.HORIZONTAL,0,50);
		recordprogress.setStringPainted(true);
		container.add(recordlabel);
		recordlabel.setBounds(0,5,150,30);
		container.add(recordpane);
		recordpane.setBounds(0,30,200,180);
		container.add(recordprogress);
		recordprogress.setBounds(0,210,200,25);
		container.add(userlabel);
		userlabel.setBounds(200,5,100,30);
		container.add(userpane);
		userpane.setBounds(200,30,280,180);
		container.add(userprogress);
		userprogress.setBounds(200,210,280,25);
		container.add(keytypelabel);
		keytypelabel.setBounds(500,50,130,30);
		container.add(userbutton);
		userbutton.setBounds(590,50,80,30);
		container.add(typebutton);
		typebutton.setBounds(670,50,80,30);
		container.add(keylabel);
		keylabel.setBounds(500,90,80,30);
		container.add(field);
		field.setBounds(570,95,160,20);
		container.add(searchbutton);
		searchbutton.setBounds(490,125,70,30);
		container.add(changebutton);
		changebutton.setBounds(580,125,70,30);
		container.add(delbutton);
		delbutton.setBounds(670,125,70,30);
		container.add(viewbutton);
		viewbutton.setBounds(490,165,70,30);
		container.add(printuserbutton);
		printuserbutton.setBounds(580,165,70,30);
		container.add(printrecordbutton);
		printrecordbutton.setBounds(670,165,70,30);
		addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				dispose();
			}
		});
		setLocation((screenSize.width-getSize().width)/2,(screenSize.height-getSize().height)/2);
		setVisible(true);
		validate();
	    try{
	    	sql=con.createStatement();
	    }
	    catch(SQLException e3){
	    	JOptionPane.showMessageDialog(this,"计算机已与服务器断开");
	    }
	}
	public void actionPerformed(ActionEvent e){
		String keyword=field.getText().trim();
		if(e.getSource()==searchbutton){
			if(n!=-1&&keyword.length()!=0){
				String queue="SELECT * FROM User_Info WHERE "+keytype[n]+" = "+"'"+keyword+"'";
				try{
					int m=0;
					for(int i=0;i<user.length;i++){
						for(int j=0;j<3;j++){
							user[i][j]=null;
						}
					}
					ResultSet rs=sql.executeQuery(queue);
					while(rs.next()){
						if(m==user.length){
							container.remove(userpane);
							Object[][] temp=user;
							user=new Object[temp.length*2][];
							usertable=new JTable(user,usercolumn);
							userpane=new JScrollPane(usertable);
							container.add(userpane);
							userpane.setBounds(200,30,280,180);
							for(int i=0;i<temp.length;i++){
								for(int j=0;j<temp[i].length;j++){
									user[i][j]=temp[i][j];
								}
							}
						}
						for(int i=0;i<3;i++){
							user[m][i]=rs.getString(i+1);
						}
						m++;
					}
					audiourl=getClass().getResource("/sound/Search.wav");
					if(audiourl!=null){
						audio=Applet.newAudioClip(audiourl);
						audio.play();
					}
					userprogress.setValue(m);
					userprogress.setString("查询到"+m+"个用户");
					usertable.repaint();
				}
				catch(SQLException e2){
					JOptionPane.showMessageDialog(this,"计算机已与服务器断开");
				}
			}
			if(n==-1){
				JOptionPane.showMessageDialog(this,"请选择关键字的类型");
			}
			if(keyword.length()==0){
			    JOptionPane.showMessageDialog(this,"请输入关键字");	
			}
		}
		else if(e.getSource()==changebutton){
			if(usertable.getSelectedRowCount()==1&&user[usertable.getSelectedRow()][0]!=null){
				new AddOrChangeUser("修改用户",con,false,usertable,user);
			}
			else{
				JOptionPane.showMessageDialog(this,"请选择要修改的用户");
			}
		}
		else if(e.getSource()==delbutton){
			int[] returnrow;
			int g=0;
			if((returnrow=usertable.getSelectedRows()).length!=0){
					for(int i=0;i<returnrow.length;i++){
						if(user[returnrow[i]][0]!=null){
							g++;
						}
					}
					if(g!=0){
						int sel=JOptionPane.showConfirmDialog(this,"确定删除这"+g+"个用户吗?","确认对话框",JOptionPane.YES_NO_OPTION);
						if(sel==JOptionPane.YES_OPTION){
							int count=0;
							for(int i=0;i<usertable.getSelectedRowCount();i++){
								if(user[returnrow[i]][0]!=null){
									String temp="'"+user[returnrow[i]][0].toString().trim()+"'";
									String del="DELETE FROM User_Info WHERE UserName = "+temp;
									try{
										int n=sql.executeUpdate(del);
										System.out.println(""+n);
										count++;
										for(int j=0;j<3;j++){
											user[returnrow[i]][j]=null;
										}	
									}
									catch(SQLException e2){
										JOptionPane.showMessageDialog(this,"计算机已与服务器断开");
									}
								}
							}
							audiourl=getClass().getResource("/sound/Declare.wav");
							if(audiourl!=null){
								audio=Applet.newAudioClip(audiourl);
								audio.play();
							}
							usertable.repaint();
							JOptionPane.showMessageDialog(this,"成功删除"+count+"个用户");
							int t=userprogress.getValue()-count;
							userprogress.setValue(t);
							userprogress.setString("查询到"+t+"个用户");
						}
						else{
							return;
						}
					}
					else{
						JOptionPane.showMessageDialog(this,"请选择要删除的用户");
					}
				}
				else{
					JOptionPane.showMessageDialog(this,"请选择要删除的用户");
				}
		}
		else if(e.getSource()==viewbutton){
			if(usertable.getSelectedRowCount()==1&&user[usertable.getSelectedRow()][0]!=null){
				String queue="SELECT * FROM User_LoginLog WHERE UserName = "+"'"+user[usertable.getSelectedRow()][0]+"'";
				for(int i=0;i<record.length;i++){
					for(int j=0;j<2;j++){
						record[i][j]=null;
					}
				}
				try{
					ResultSet rs=sql.executeQuery(queue);
					int n=0;
					while(rs.next()){
						if(n==record.length){
							Object[][] temp=record;
							container.remove(recordpane);
							record=new Object[temp.length*2][2];
							recordtable=new JTable(record,recordcolumn);
							recordpane=new JScrollPane(recordtable);
							container.add(recordpane);
							recordpane.setBounds(0,30,200,180);
							for(int i=0;i<temp.length;i++){
								for(int j=0;j<2;j++){
									record[i][j]=temp[i][j];
								}
							}
						}
						for(int i=0;i<2;i++){
							record[n][i]=rs.getString(i+2);
						}
						n++;
					}
					recordtable.repaint();
					recordprogress.setValue(n);
					recordprogress.setString("查询到"+n+"条记录");
					recordlabel.setText(user[usertable.getSelectedRow()][0]+"登录数据库的记录");
				}
				catch(SQLException e3){
					JOptionPane.showMessageDialog(this,"计算机已与服务器断开");
				}
			}
			else{
				JOptionPane.showMessageDialog(this,"请选择要查询的用户");
			}
		}
		else{
			printjob=tool.getPrintJob(this,"OK",null);
			if(printjob!=null){
				graphics=printjob.getGraphics();
				if(e.getSource()==printuserbutton){
					usertable.paint(graphics);
				}
				else{
					recordtable.paint(graphics);
				}
				graphics.dispose();
				printjob.end();
			}
			else{
				JOptionPane.showMessageDialog(this,"没有可以使用的打印机");
			}
		}
		
	}
	public void itemStateChanged(ItemEvent e){
		if(e.getItemSelectable()==userbutton){
			n=0;
		}
		else{
			n=1;
		}
	}
}

⌨️ 快捷键说明

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