?? 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 + -