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

📄 addreader.java

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

import java.awt.BorderLayout;
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.JTextField;
import javax.swing.SwingConstants;

import library.DBConnectOperation.Dbo;
import library.model.ReaderType;
import library.util.CreateIcon;


public class AddReader extends JInternalFrame{
	private JTextField name;
	private JTextField id;
	private JComboBox sex;
	private JComboBox certificateType;
	private JTextField identityCardNumber;
	private JFormattedTextField birthday;
	private JTextField tel;
	private JTextField keepMoney;
	private JTextField career;
	private JFormattedTextField bzTime;	//办证时间
	private JComboBox readerType;
	private JButton saveButton;
	private JButton cancelButton;
	private final String tempSex[]={"男","女"};
	private final String tempCertificateType[]={"军官证","学生证","工作证","身份证"};
	public AddReader(){
		super();
		setBounds(100,100,500,400);
		setTitle("读者添加");
		setClosable(true);
		setIconifiable(true);
		setResizable(false);
		//添加顶部图片
		JLabel labelTop=new JLabel();
		labelTop.setIcon(CreateIcon.add("readerAdd.jpg"));
		getContentPane().add(labelTop,BorderLayout.NORTH);
		((BorderLayout) getContentPane().getLayout()).setVgap(5);
		
		//设置中央面板,用于添加读者信息
		JPanel panelCenter=new JPanel();
		GridLayout gridLayout=new GridLayout(0,4);
		gridLayout.setVgap(5);
		gridLayout.setHgap(5);
		panelCenter.setLayout(gridLayout);
		getContentPane().add(panelCenter);
		
		JLabel labelName=new JLabel();
		labelName.setText("姓名:");
		labelName.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenter.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;
				}
			}
		});
		panelCenter.add(name);
		
		JLabel labelId=new JLabel();
		labelId.setText("借阅证编号:");
		labelId.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenter.add(labelId);
		id=new JTextField();
		id.addFocusListener(new FocusAdapter(){
			public void focusLost(FocusEvent fe){
				if(id.getText().length()!=10){
					JOptionPane.showMessageDialog(null,"借阅证编号应为10个字符!");
					id.setText("");
					return;
				}
				else if(Dbo.selectReaderId(id.getText())!=null){
					JOptionPane.showMessageDialog(null,"该借阅证编号与现有借阅证编号重复!");
					id.setText("");
					return;
				}
			}
		});
		panelCenter.add(id);
		
		JLabel labelSex=new JLabel();
		labelSex.setText("性别:");
		labelSex.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenter.add(labelSex);
		sex=new JComboBox();
		sex.addItem(tempSex[0]);
		sex.addItem(tempSex[1]);
		panelCenter.add(sex);
		
		JLabel labelCertificateType=new JLabel();
		labelCertificateType.setText("证件类型");
		labelCertificateType.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenter.add(labelCertificateType);
		certificateType=new JComboBox();
		for(int i=0;i<tempCertificateType.length;i++)
			certificateType.addItem(tempCertificateType[i]);
		panelCenter.add(certificateType);
		
 		JLabel labelIdentityCardNumber=new JLabel();
		labelIdentityCardNumber.setText("证件编号:");
		labelIdentityCardNumber.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenter.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;
				}
			}
		});
		panelCenter.add(identityCardNumber);
		
		JLabel labelBirthday=new JLabel();
		labelBirthday.setText("生日:");
		labelBirthday.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenter.add(labelBirthday);
		SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
		birthday=new JFormattedTextField(format);
		birthday.setValue(new Date());
		panelCenter.add(birthday);
		
		JLabel labelTel=new JLabel();
		labelTel.setText("电话号码:");
		labelTel.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenter.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;
				}
			}
		});
		panelCenter.add(tel);
		
		JLabel labelKeepMoney=new JLabel();
		labelKeepMoney.setText("押金(单位:元):");
		labelKeepMoney.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenter.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;
				}
			}
		});
		panelCenter.add(keepMoney);
		
 		JLabel labelCareer=new JLabel();
 		labelCareer.setText("职业:");
 		labelCareer.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenter.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;
				}
			}
		});
		panelCenter.add(career);
		
		JLabel labelBzTime=new JLabel();
		labelBzTime.setText("办证时间:");
		labelBzTime.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenter.add(labelBzTime);
		bzTime=new JFormattedTextField(format);
		bzTime.setValue(new Date());
		panelCenter.add(bzTime);
		
		JLabel labelReaderType=new JLabel();
		labelReaderType.setText("读者类型:");
		labelReaderType.setHorizontalAlignment(SwingConstants.RIGHT);
		panelCenter.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);
		}
		panelCenter.add(readerType);
		
		//添加底部按钮面板
		JPanel panelBottom=new JPanel();
		FlowLayout flowLayout=new FlowLayout();
		flowLayout.setHgap(30);
		panelBottom.setLayout(flowLayout);
		getContentPane().add(panelBottom,BorderLayout.SOUTH);
		saveButton=new JButton();
		saveButton.setText("保存");
	    saveButton.addActionListener(new ActionListener(){
	    	public void actionPerformed(ActionEvent ae){
	    		if(name.getText().length()==0){
	    			JOptionPane.showMessageDialog(null, "读者姓名不能为空");
	    			return;
	    		}
	    		if(id.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;
	    		}
	    		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="insert into tb_reader values('"+name.getText()+"','"+id.getText()+"','"
	    		+(String)sex.getSelectedItem()+"','"+identityCardNumber.getText()+"','"+birthday.getText()+"','"+tel.getText()+"',"+Integer.parseInt(keepMoney.getText())
	    		+",'"+career.getText()+"','"+(String)certificateType.getSelectedItem()+"','"+bzTime.getText()+"','"+((ReaderType) readerType.getSelectedItem()).getTypeId()+"',"+number+")";
	    		int i=Dbo.executeUpdate(sql);
	    		if(i!=-1){
	    			JOptionPane.showMessageDialog(null, "添加成功");
	    			Dbo.close();
	    			dispose();
	    		}
	    		else{
					JOptionPane.showMessageDialog(null, "添加失败,请检查数据源");
					return;
	    		}
	    	}
	    });
	    panelBottom.add(saveButton);
	    cancelButton=new JButton();
	    cancelButton.setText("返回");
	    cancelButton.addActionListener(new ActionListener(){
	    	public void actionPerformed(ActionEvent ae){
		    	dispose();
	    	}
	    });
	    panelBottom.add(cancelButton);
		setVisible(true);
	}
}

⌨️ 快捷键说明

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