?? modifyanddelreader.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()); //轉(zhuǎn)換日期格式
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, "電話號碼應為數(shù)字!");
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,"押金金額應為數(shù)字!");
keepMoney.setText("");
return;
}
}
});
panelCenterUp.add(keepMoney);
JLabel labelCareer=new JLabel();
labelCareer.setText("職業(yè):");
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, "職業(yè)名稱不應超過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("可借閱數(shù)量:");
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, "修改失敗,請檢查數(shù)據(jù)源!");
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, "刪除失敗,請檢查數(shù)據(jù)源!");
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 + -