📄 addreader.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 + -