📄 modifydeluser.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.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.text.ParseException;
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.JPasswordField;
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.Operator;
import library.util.CreateIcon;
public class ModifyDelUser extends JInternalFrame {
private DefaultTableModel model=new DefaultTableModel();
private JTextField operatorId;
private JTextField name;
private JComboBox sex;
private JTextField identityCardNumber;
private JTextField tel;
private JFormattedTextField workDate;
private JPasswordField password_1;
private JPasswordField password_2;
private JButton saveButton;
private JButton delButton;
private Operator operator;
private JButton cancelButton;
private ArrayList arrayList;
private JTable table;
private SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
private final String operatorSex[]={"男","女"};
private final String columnNames[]={"姓名","性别","身份证号","电话","参加工作时间","ID"};
public ModifyDelUser(){
super();
setBounds(100,100,600,480);
setTitle("修改或删除用户");
setClosable(true);
setResizable(false);
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();
getContentPane().add(panelCenter);
JScrollPane scrollPane=new JScrollPane();
scrollPane.setPreferredSize(new Dimension(560,180));
panelCenter.add(scrollPane);
table=new JTable();
table.setModel(model);
model.setColumnIdentifiers(columnNames);
scrollPane.setViewportView(table);
//向表格中添加数据
arrayList=Dbo.selectAllBookAdmin();
if(arrayList!=null){
for(int i=0;i<arrayList.size();i++){
//System.out.println(arrayList.size());
operator=(Operator)arrayList.get(i);
addTableRow(operator);
}
}
//获取鼠标选择的行
table.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(arrayList.size()>1){
int i=table.getSelectedRow();
if(i!=-1){
operatorId.setText((String)table.getValueAt(i,5));
name.setText((String)table.getValueAt(i, 0));
sex.getModel().setSelectedItem((String)table.getValueAt(i, 1));
identityCardNumber.setText((String)table.getValueAt(i, 2));
tel.setText((String)table.getValueAt(i, 3));
workDate.setText((String)table.getValueAt(i, 4));
password_1.setText(operator.getPassword());
//System.out.println(operator.getPassword());
password_2.setText(operator.getPassword());
}
}
}
});
//设置底部面板,用于添加各种文本框和相应按钮
JPanel panelBottom=new JPanel();
BorderLayout borderLayoutBottom=new BorderLayout();
borderLayoutBottom.setVgap(5);
panelBottom.setLayout(borderLayoutBottom);
getContentPane().add(panelBottom,BorderLayout.SOUTH);
//添加底部上面板,用于添加各种文本框
JPanel panelBottomUp=new JPanel();
GridLayout gridLayoutBottomUp=new GridLayout(0,6);
gridLayoutBottomUp.setVgap(10);
gridLayoutBottomUp.setHgap(10);
panelBottomUp.setLayout(gridLayoutBottomUp);
panelBottom.add(panelBottomUp);
JLabel labelId=new JLabel();
labelId.setText("管理员ID:");
labelId.setHorizontalAlignment(SwingConstants.RIGHT);
panelBottomUp.add(labelId);
operatorId=new JTextField();
operatorId.setEditable(false);
panelBottomUp.add(operatorId);
JLabel labelName=new JLabel();
labelName.setText("昵称:");
labelName.setHorizontalAlignment(SwingConstants.RIGHT);
panelBottomUp.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;
}
}
});
panelBottomUp.add(name);
JLabel labelSex=new JLabel();
labelSex.setText("性别:");
labelSex.setHorizontalAlignment(SwingConstants.RIGHT);
panelBottomUp.add(labelSex);
sex=new JComboBox();
sex.addItem(operatorSex[0]);
sex.addItem(operatorSex[1]);
panelBottomUp.add(sex);
JLabel labelIdentityCard=new JLabel();
labelIdentityCard.setText("身份证号:");
labelIdentityCard.setHorizontalAlignment(SwingConstants.RIGHT);
panelBottomUp.add(labelIdentityCard);
identityCardNumber=new JTextField();
identityCardNumber.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(identityCardNumber.getText().length()>18){
JOptionPane.showMessageDialog(null, "身份证号不能超过18位!");
identityCardNumber.setText("");
return;
}
}
});
panelBottomUp.add(identityCardNumber);
JLabel labelTel=new JLabel();
labelTel.setText("电话:");
labelTel.setHorizontalAlignment(SwingConstants.RIGHT);
panelBottomUp.add(labelTel);
tel=new JTextField();
tel.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
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;
}
}
});
panelBottomUp.add(tel);
JLabel labelWorkDate=new JLabel();
labelWorkDate.setText("工作时间:");
labelWorkDate.setHorizontalAlignment(SwingConstants.RIGHT);
panelBottomUp.add(labelWorkDate);
workDate=new JFormattedTextField(format);
workDate.setValue(new Date());
panelBottomUp.add(workDate);
JLabel labelAdmin=new JLabel();
labelAdmin.setText("管理员类型:");
labelAdmin.setHorizontalAlignment(SwingConstants.RIGHT);
panelBottomUp.add(labelAdmin);
JTextField admin=new JTextField();
admin.setText("图书管理员");
admin.setEditable(false);
panelBottomUp.add(admin);
JLabel labelPassword_1=new JLabel();
labelPassword_1.setText("密码:");
labelPassword_1.setHorizontalAlignment(SwingConstants.RIGHT);
panelBottomUp.add(labelPassword_1);
password_1=new JPasswordField();
password_1.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(password_1.getText().length()>10){
JOptionPane.showMessageDialog(null, "密码长度不能超过10位!");
password_1.setText("");
return;
}
}
});
panelBottomUp.add(password_1);
JLabel labelPassword_2=new JLabel();
labelPassword_2.setText("再次输入密码:");
labelPassword_2.setHorizontalAlignment(SwingConstants.RIGHT);
panelBottomUp.add(labelPassword_2);
password_2=new JPasswordField();
password_2.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(password_2.getText().length()>10){
JOptionPane.showMessageDialog(null, "密码长度不能超过10位!");
password_2.setText("");
return;
}
}
});
panelBottomUp.add(password_2);
//添加底部下面板,用于添加相应按钮
JPanel panelBottomDown=new JPanel();
FlowLayout flowLayoutBottomDown=new FlowLayout();
flowLayoutBottomDown.setVgap(10);
flowLayoutBottomDown.setHgap(10);
panelBottomDown.setLayout(flowLayoutBottomDown);
panelBottom.add(panelBottomDown,BorderLayout.SOUTH);
saveButton=new JButton();
saveButton.setText("保存");
saveButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(name.getText().length()==0){
JOptionPane.showMessageDialog(null, "姓名不能为空");
return;
}
if(Dbo.selectSpecifiedOperatorName(name.getText(), Integer.parseInt(operatorId.getText()))!=null){
JOptionPane.showMessageDialog(null,"不能与现有管理员重名!请重新输入管理员姓名!");
name.setText("");
return;
}
if(identityCardNumber.getText().length()==0){
JOptionPane.showMessageDialog(null, "身份证号不能为空!");
return;
}
if(password_1.getText().length()==0){
JOptionPane.showMessageDialog(null, "密码不能为空!");
return;
}
if(!password_2.getText().equals(password_1.getText())){
JOptionPane.showMessageDialog(null,"两次密码输入不一致!");
password_1.setText("");
password_2.setText("");
return;
}
String sql="update tb_operator set name='"+name.getText()+"',sex='"+(String)sex.getSelectedItem()
+"',identityCard='"+identityCardNumber.getText()+"',tel='"+tel.getText()+"',workdate='"+workDate.getText()
+"',password='"+password_1.getText()+"' where operatorID="+operatorId.getText();
int i=Dbo.executeUpdate(sql);
if(i!=-1){
JOptionPane.showMessageDialog(null, "修改成功!");
name.setText("");
operatorId.setText("");
identityCardNumber.setText("");
tel.setText("");
workDate.setText("");
password_1.setText("");
password_2.setText("");
while(model.getRowCount()!=0)
model.removeRow(model.getRowCount()-1);
arrayList=Dbo.selectAllBookAdmin();
if(arrayList!=null){
for(int j=0;j<arrayList.size();j++){
//System.out.println(arrayList.size());
operator=(Operator)arrayList.get(j);
addTableRow(operator);
}
}
return;
}
}
});
panelBottomDown.add(saveButton);
delButton=new JButton();
delButton.setText("删除");
delButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String sql="delete from tb_operator where operatorId="+operatorId.getText();
int i=Dbo.executeUpdate(sql);
if(i!=-1){
JOptionPane.showMessageDialog(null,"删除成功");
operatorId.setText("");
name.setText("");
identityCardNumber.setText("");
tel.setText("");
workDate.setText("");
password_1.setText("");
password_2.setText("");
while(model.getRowCount()!=0)
model.removeRow(model.getRowCount()-1);
arrayList=Dbo.selectAllBookAdmin();
if(arrayList!=null){
for(int j=0;j<arrayList.size();j++){
//System.out.println(arrayList.size());
operator=(Operator)arrayList.get(j);
addTableRow(operator);
}
}
return;
}
else {
JOptionPane.showMessageDialog(null, "删除失败!该管理员在图书借阅中有操作记录!");
return;
}
}
});
panelBottomDown.add(delButton);
cancelButton=new JButton();
cancelButton.setText("返回");
cancelButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
dispose();
}
});
panelBottomDown.add(cancelButton);
setVisible(true);
}
public void addTableRow(Operator operator){
String str[]=new String[6];
str[0]=operator.getName();
str[1]=operator.getSex();
str[2]=operator.getIdentityCardNumber();
str[3]=operator.getTel();
try {
format.parse(operator.getWorkDate());
str[4]=format.format(format.parse(operator.getWorkDate()));
} catch (ParseException e) {
e.printStackTrace();
}
str[5]=new Integer(operator.getId()).toString();
model.addRow(str);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -