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

📄 modifyanddelreader.java

📁 Java Swing写的图书馆管理系统
💻 JAVA
字号:
package library.iframe;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableModel;

import library.DBConnectOperation.Dbo;
import library.model.Book;
import library.model.BookType;
import library.model.Reader;
import library.model.ReaderType;
import library.util.CreateIcon;

public class ModifyAndDelReader extends JInternalFrame {
	private JTextField name;
	private JTextField readerId;
	private JComboBox sex;
	private JComboBox certificateType;
	private JTextField identityCardNumber;
	private JFormattedTextField birthday;
	private JTextField tel;
	private JTextField keepMoney;
	private JTextField career;
	private JTextField availLabelNumber;
	private JFormattedTextField bzTime;
	private JComboBox readerType;
	private JButton saveButton;
	private JButton cancelButton;
	private JButton delButton;
	private Reader reader;
	private final SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
	private final String tempSex[]={"男","女"};
	private final String tempCertificateType[]={"军官证","学生证","工作证","身份证"};
	private DefaultTableModel model=new DefaultTableModel();
	public ModifyAndDelReader(){
		super();
		setBounds(100, 100,590, 350);
		setTitle("读者信息修改或删除");
		setResizable(false);
		setClosable(true);
		setIconifiable(true);
		
		//设置顶部图片
		JLabel labelTop=new JLabel();
		labelTop.setIcon(CreateIcon.add("readerModify.jpg"));
		getContentPane().add(labelTop,BorderLayout.NORTH);
		((BorderLayout) getContentPane().getLayout()).setVgap(5);
		
		//设置中央面板,用于显示要修改的图书信息和相应的按钮
		JPanel panelCenter=new JPanel();
		BorderLayout borderLayoutBottom=new BorderLayout();
		borderLayoutBottom.setVgap(5);
		panelCenter.setLayout(borderLayoutBottom);
		getContentPane().add(panelCenter,BorderLayout.CENTER);
		
//		设置底部上面板,用于显示并修改要修改的图书信息
		JPanel panelCenterUp=new JPanel();
		panelCenter.add(panelCenterUp);
		GridLayout gridLayoutCenterUp=new GridLayout(0,6);
		gridLayoutCenterUp.setVgap(5);
		gridLayoutCenterUp.setHgap(5);
		panelCenterUp.setLayout(gridLayoutCenterUp);
		
		JLabel labelReaderId=new JLabel();
		labelReaderId.setText("读者编号:");
		labelReaderId.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenterUp.add(labelReaderId);
		readerId=new JTextField("请输入10读者编号",10);
		readerId.addFocusListener(new FocusAdapter(){
			public void focusLost(FocusEvent e){
				if(Dbo.selectReaderId(readerId.getText())==null){
					JOptionPane.showMessageDialog(null,"读者编号输入错误,该读者不存在!");
					readerId.setText("");
					name.setText("");
					identityCardNumber.setText("");
					birthday.setText("");
					tel.setText("");
					keepMoney.setText("");
					career.setText("");
					bzTime.setText("");
					availLabelNumber.setText("");
					return;
				}
				else{
					try{
						reader=Dbo.selectReader(readerId.getText());
						name.setText(reader.getName());
						identityCardNumber.setText(reader.getIdentityCardNumber());
						Date tempDate=format.parse(reader.getBirthday());	//转换日期格式
						birthday.setText(format.format(tempDate));
						tel.setText(reader.getTel());
						keepMoney.setText(new Integer(reader.getKeepMoney()).toString());
						career.setText(reader.getCareer());
						tempDate=format.parse(reader.getBzTime());
						bzTime.setText(format.format(tempDate));
						certificateType.getModel().setSelectedItem(reader.getCertificateType());
						sex.getModel().setSelectedItem(reader.getSex());
						readerType.getModel().setSelectedItem(Dbo.selectSelectedReaderType(reader.getTypeId()));
						availLabelNumber.setText(new Integer(reader.getAvailableNumber()).toString());
					}catch(Exception ee){
						ee.printStackTrace();
					}
					
				}
			}
		});
		panelCenterUp.add(readerId);
		
		JLabel labelName=new JLabel();
		labelName.setText("姓名:");
		labelName.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenterUp.add(labelName);
		name=new JTextField();
		name.addKeyListener(new KeyAdapter(){
			public void keyReleased(KeyEvent e){
				if(name.getText().length()>20){
					JOptionPane.showMessageDialog(null,"姓名不能超过20个字符!");
					name.setText("");
					return;
				}
			}
		});
		panelCenterUp.add(name);
		
		JLabel labelSex=new JLabel();
		labelSex.setText("性别:");
		labelSex.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenterUp.add(labelSex);
		sex=new JComboBox();
		sex.addItem(tempSex[0]);
		sex.addItem(tempSex[1]);
		panelCenterUp.add(sex);
		
		JLabel labelCertificateType=new JLabel();
		labelCertificateType.setText("证件类型");
		labelCertificateType.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenterUp.add(labelCertificateType);
		certificateType=new JComboBox();
		for(int i=0;i<tempCertificateType.length;i++)
			certificateType.addItem(tempCertificateType[i]);
		panelCenterUp.add(certificateType);
		
 		JLabel labelIdentityCardNumber=new JLabel();
		labelIdentityCardNumber.setText("证件编号:");
		labelIdentityCardNumber.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenterUp.add(labelIdentityCardNumber);
		identityCardNumber=new JTextField();
		identityCardNumber.addKeyListener(new KeyAdapter(){
			public void keyReleased(KeyEvent ie){
				if(identityCardNumber.getText().length()>18){
					JOptionPane.showMessageDialog(null, "证件号码长度不应超过18位");
					identityCardNumber.setText("");
					return;
				}
			}
		});
		panelCenterUp.add(identityCardNumber);
		
		JLabel labelBirthday=new JLabel();
		labelBirthday.setText("生日:");
		labelBirthday.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenterUp.add(labelBirthday);
		birthday=new JFormattedTextField(format);
		birthday.setValue(new Date());
		panelCenterUp.add(birthday);
		
		JLabel labelTel=new JLabel();
		labelTel.setText("电话号码:");
		labelTel.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenterUp.add(labelTel);
		tel=new JTextField();
		tel.addKeyListener(new KeyAdapter(){
			public void keyReleased(KeyEvent te){
				try{
					Long.parseLong(tel.getText());
				}
				catch(NumberFormatException tne){
					JOptionPane.showMessageDialog(null, "电话号码应为数字!");
					tel.setText("");
					return;
				}
				if(tel.getText().length()>15){
					JOptionPane.showMessageDialog(null, "电话号码长度不应超过15位");
					tel.setText("");
					return;
				}
			}
		});
		panelCenterUp.add(tel);
		
		JLabel labelKeepMoney=new JLabel();
		labelKeepMoney.setText("押金(单位:元):");
		labelKeepMoney.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenterUp.add(labelKeepMoney);
		keepMoney=new JTextField();
		keepMoney.addKeyListener(new KeyAdapter(){
			public void keyReleased(KeyEvent ke){
				try{
					Integer.parseInt(keepMoney.getText());
				}catch(NumberFormatException kne){
					JOptionPane.showMessageDialog(null,"押金金额应为数字!");
					keepMoney.setText("");
					return;
				}
			}
		});
		panelCenterUp.add(keepMoney);
		
 		JLabel labelCareer=new JLabel();
 		labelCareer.setText("职业:");
 		labelCareer.setHorizontalAlignment(SwingConstants.RIGHT);
 		panelCenterUp.add(labelCareer);
		career=new JTextField();
		career.addKeyListener(new KeyAdapter(){
			public void keyReleased(KeyEvent ce){
				if(career.getText().length()>18){
					JOptionPane.showMessageDialog(null, "职业名称不应超过18个字符");
					career.setText("");
					return;
				}
			}
		});
		panelCenterUp.add(career);
		
		JLabel labelBzTime=new JLabel();
		labelBzTime.setText("办证时间:");
		labelBzTime.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenterUp.add(labelBzTime);
		bzTime=new JFormattedTextField(format);
		bzTime.setValue(new Date());
		panelCenterUp.add(bzTime);
		
		JLabel labelReaderType=new JLabel();
		labelReaderType.setText("读者类型:");
		labelReaderType.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenterUp.add(labelReaderType);
		readerType=new JComboBox();
		ArrayList temp=Dbo.selectReaderType();
		for(int i=0;i<temp.size();i++){
			ReaderType rt=(ReaderType) temp.get(i);
			readerType.addItem(rt);
		}
		panelCenterUp.add(readerType);
		
		JLabel labelAvailLabelNumber=new JLabel();
		labelAvailLabelNumber.setText("可借阅数量:");
		labelAvailLabelNumber.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenterUp.add(labelAvailLabelNumber);
		availLabelNumber=new JTextField();
		availLabelNumber.setEditable(false);
		availLabelNumber.addKeyListener(new KeyAdapter(){
			public void keyReleased(KeyEvent e){
				if(availLabelNumber.getText().length()>20){
					JOptionPane.showMessageDialog(null,"姓名不能超过20个字符!");
					availLabelNumber.setText("");
					return;
				}
			}
		});
		panelCenterUp.add(availLabelNumber);
		
		//设置底部下面板,用于设置保存和提交按钮等。
		JPanel panelCenterDown=new JPanel();
		FlowLayout flowLayout=new FlowLayout();
		flowLayout.setVgap(10);
		flowLayout.setHgap(20);
		panelCenterDown.setLayout(flowLayout);
		panelCenter.add(panelCenterDown,BorderLayout.SOUTH);
		
		saveButton=new JButton();
		saveButton.setText("保存");
		saveButton.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				if(readerId.getText().length()==0){
					JOptionPane.showMessageDialog(null,"读者编号不能为空!");
					return;
				}
				if(name.getText().length()==0){
					JOptionPane.showMessageDialog(null,"姓名不能为空!");
					return;
				}
				if(identityCardNumber.getText().length()==0){
					JOptionPane.showMessageDialog(null, "证件号码不能为空!");
					return;
				}
				if(keepMoney.getText().length()==0){
					JOptionPane.showMessageDialog(null,"押金不能为空!");
					return;
				}
				if(bzTime.getText().length()==0){
					JOptionPane.showMessageDialog(null,"办证时间不能为空!");
					return;
				}
	    		String selectMaxBorrowNumber="select maxBorrowNumber from tb_readerType where typeId="+((ReaderType) readerType.getSelectedItem()).getTypeId();
	    		ResultSet rsMaxBorrowNumber=Dbo.executeQuery(selectMaxBorrowNumber);
	    		int number=0;
	    		try{
	    			if(rsMaxBorrowNumber.next())
	    				number=rsMaxBorrowNumber.getInt(1);
	    		}catch(Exception te){
	    			te.printStackTrace();
	    		}
	    		
				String sql="update tb_reader set name='"+name.getText()
				+"',id='"+reader.getReaderId()
				+"',sex='"+sex.getSelectedItem()
				+"',identityCardNumber='"+identityCardNumber.getText()
				+"',birthday='"+birthday.getText()
				+"',tel='"+tel.getText()
				+"',keepmoney="+keepMoney.getText()
				+",career='"+career.getText()
				+"',certificateType='"+certificateType.getSelectedItem()
				+"',bztime='"+bzTime.getText()
				+"',typeid="+((ReaderType) readerType.getSelectedItem()).getTypeId()
				+",availableNumber="+number
				+"where id='"+reader.getReaderId()+"'";
				int i=Dbo.executeUpdate(sql);
				if(i!=-1){
					JOptionPane.showMessageDialog(null,"修改成功!");
					readerId.setText("");
					name.setText("");
					identityCardNumber.setText("");
					birthday.setText("");
					tel.setText("");
					keepMoney.setText("");
					career.setText("");
					bzTime.setText("");
					availLabelNumber.setText("");
					return;
				}
				else{
					JOptionPane.showMessageDialog(null, "修改失败,请检查数据源!");
					return;
				}
			}
		});
		panelCenterDown.add(saveButton);
		
		delButton=new JButton();
		delButton.setText("删除");
		delButton.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent ae){
				if(readerId.getText().length()==0){
					JOptionPane.showMessageDialog(null,"读者编号不能为空!");
					return;
				}
				String sql="delete from tb_reader where id='"+reader.getReaderId()+"'";
				int i=Dbo.executeUpdate(sql);
				if(i!=-1){
					JOptionPane.showMessageDialog(null,"删除成功!");
					readerId.setText("");
					name.setText("");
					identityCardNumber.setText("");
					birthday.setText("");
					tel.setText("");
					keepMoney.setText("");
					career.setText("");
					bzTime.setText("");
					availLabelNumber.setText("");
					return;
				}
				else{
					JOptionPane.showMessageDialog(null, "删除失败,请检查数据源!");
					return;
				}
			}
		});
		
		panelCenterDown.add(delButton);
		cancelButton=new JButton();
		cancelButton.setText("返回");
		cancelButton.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent ae){
				dispose();
			}
		});
		panelCenterDown.add(cancelButton);

		setVisible(true);
	}
}

⌨️ 快捷键说明

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