You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
210 lines
7.9 KiB
210 lines
7.9 KiB
package View;
|
|
|
|
import java.awt.BorderLayout;
|
|
import java.awt.Dimension;
|
|
import java.awt.event.ActionEvent;
|
|
import java.awt.event.ActionListener;
|
|
import java.awt.event.ItemEvent;
|
|
import java.awt.event.ItemListener;
|
|
import java.sql.SQLException;
|
|
import java.util.Vector;
|
|
|
|
import javax.swing.JButton;
|
|
import javax.swing.JComboBox;
|
|
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.ListSelectionModel;
|
|
import javax.swing.event.ListSelectionEvent;
|
|
import javax.swing.event.ListSelectionListener;
|
|
import javax.swing.table.DefaultTableCellRenderer;
|
|
import javax.swing.table.DefaultTableModel;
|
|
|
|
import Controller.PageQueryCon;
|
|
import Controller.ReaderCon;
|
|
import Controller.ReaderTypeCon;
|
|
import Tool.InputLimit;
|
|
import Tool.PubJdialog;
|
|
import Tool.TableTool;
|
|
|
|
/**
|
|
* 读者信息管理面板
|
|
*/
|
|
public class ManageReader {
|
|
int row;
|
|
String studentNumber, dept, classes, tele, email;
|
|
String readerTypeInfo;
|
|
boolean isCompile, refresh;
|
|
ReaderTypeCon readerTypeCon = new ReaderTypeCon();
|
|
ReaderCon readerCon = new ReaderCon();
|
|
|
|
protected JPanel addPanel2() throws SQLException {
|
|
JPanel panel = new JPanel(new BorderLayout());
|
|
JPanel jpanup_reader = new JPanel();
|
|
jpanup_reader.setLayout(null);
|
|
jpanup_reader.setPreferredSize(new Dimension(1000, 80));
|
|
JButton[] jbt_reader = { new JButton("查询读者信息"), new JButton("新增读者信息"), new JButton("删除读者信息"),
|
|
new JButton("修改读者信息") };
|
|
JTextField jtext_reader = new JTextField();
|
|
JComboBox<String> jcb_reader = new JComboBox<String>();
|
|
for (int i = 0; i < jbt_reader.length; i++) {
|
|
jbt_reader[i].setBounds(370 + i * 130, 20, 120, 30);
|
|
jpanup_reader.add(jbt_reader[i]);
|
|
}
|
|
jtext_reader.setBounds(160, 20, 200, 30);
|
|
jtext_reader.addFocusListener(new InputLimit(jtext_reader, "学号/姓名/院系/班级"));//
|
|
// 设置文诓提示的外部类监听
|
|
jcb_reader.setBounds(50, 20, 80, 30);
|
|
jcb_reader.addItem("全部");
|
|
String[] readerType = readerTypeCon.getReaderType();
|
|
for (int k = 0; k < readerType.length; k++) {
|
|
jcb_reader.addItem(readerType[k]);
|
|
}
|
|
jcb_reader.setVisible(true);
|
|
// 下拉框点击事件
|
|
jcb_reader.addItemListener(new ItemListener() {
|
|
public void itemStateChanged(ItemEvent e) {
|
|
// TODO Auto-generated method stub
|
|
if (e.getStateChange() == ItemEvent.SELECTED) {
|
|
if (jcb_reader.getSelectedItem() == "全部") {
|
|
readerTypeInfo = "*";
|
|
} else {
|
|
readerTypeInfo = jcb_reader.getSelectedItem().toString();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
Vector<String> columnNameReader = new Vector<String>();// 字段名
|
|
String[] columnReader = { "学号", "姓名", "性别", "读者类型", "院系", "班级", "手机号码", "电子邮箱" };
|
|
for (int k = 0; k < columnReader.length; k++) {
|
|
columnNameReader.add(columnReader[k]);
|
|
}
|
|
DefaultTableModel dfttable_reader = new DefaultTableModel(readerCon.seleReader(), columnNameReader);
|
|
JTable table_reader = new JTable(dfttable_reader) {
|
|
public boolean isCellEditable(int row, int column) {
|
|
return false;// 表格不允许被编辑
|
|
}
|
|
};
|
|
ListSelectionModel selectionModel = table_reader.getSelectionModel();// 创建表格选择器
|
|
selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);// 一次只能选择一个列表索引
|
|
selectionModel.addListSelectionListener(new ListSelectionListener() {
|
|
public void valueChanged(ListSelectionEvent e) {
|
|
if (selectionModel.getValueIsAdjusting()) {
|
|
if(table_reader.getSelectedRow()<0) {
|
|
return;
|
|
}
|
|
row=table_reader.getSelectedRow();
|
|
studentNumber = table_reader.getValueAt(table_reader.getSelectedRow(), 0).toString();
|
|
dept = table_reader.getValueAt(table_reader.getSelectedRow(), 4).toString();
|
|
classes = table_reader.getValueAt(table_reader.getSelectedRow(), 5).toString();
|
|
tele = table_reader.getValueAt(table_reader.getSelectedRow(), 6).toString();
|
|
email = table_reader.getValueAt(table_reader.getSelectedRow(), 7).toString();
|
|
}
|
|
}
|
|
});
|
|
//设置表格的公共属性
|
|
TableTool.setTable(table_reader, dfttable_reader);
|
|
table_reader.setPreferredScrollableViewportSize(new Dimension(900, 700));// 超过范围出现滚动条
|
|
JScrollPane scrollPane = new JScrollPane(table_reader);
|
|
jpanup_reader.add(jcb_reader);
|
|
jpanup_reader.add(jtext_reader);
|
|
panel.add(jpanup_reader, BorderLayout.NORTH);
|
|
panel.add(scrollPane);
|
|
// 查询
|
|
jbt_reader[0].addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
|
dfttable_reader.setRowCount(0);
|
|
dfttable_reader.fireTableDataChanged();
|
|
try {
|
|
if (readerTypeInfo == "*" || readerTypeInfo == null) {
|
|
if (jtext_reader.getText().equals("学号/姓名/院系/班级") || jtext_reader.getText().equals("")) {
|
|
dfttable_reader.setDataVector(readerCon.seleReader(), columnNameReader);
|
|
} else {
|
|
dfttable_reader.setDataVector(readerCon.queryReaderInfo(jtext_reader.getText(),
|
|
jtext_reader.getText(), jtext_reader.getText(), jtext_reader.getText()),
|
|
columnNameReader);
|
|
}
|
|
} else {
|
|
if (jtext_reader.getText().equals("学号/姓名/院系/班级")) {
|
|
jtext_reader.setText("");
|
|
}
|
|
dfttable_reader.setDataVector(
|
|
readerCon.seleReaderInfo(jtext_reader.getText(), jtext_reader.getText(),
|
|
jtext_reader.getText(), jtext_reader.getText(), readerTypeInfo),
|
|
columnNameReader);
|
|
}
|
|
} catch (SQLException e1) {
|
|
// TODO Auto-generated catch block
|
|
e1.printStackTrace();
|
|
}
|
|
studentNumber = TableTool.setNull(table_reader, studentNumber);
|
|
}
|
|
});
|
|
// 新增
|
|
jbt_reader[1].addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
|
try {
|
|
new Login();
|
|
} catch (SQLException e1) {
|
|
// TODO Auto-generated catch block
|
|
e1.printStackTrace();
|
|
}
|
|
studentNumber = TableTool.setNull(table_reader, studentNumber);
|
|
}
|
|
});
|
|
// 删除
|
|
jbt_reader[2].addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
|
if (studentNumber != null) {
|
|
try {
|
|
int c = JOptionPane.showConfirmDialog(null, "是否确定删除此图书类型", "验证操作", JOptionPane.YES_NO_OPTION);
|
|
if (c == JOptionPane.YES_OPTION) {
|
|
readerCon.dropReader(studentNumber);
|
|
dfttable_reader.removeRow(table_reader.getSelectedRow());// 删除表格中的这一行
|
|
}
|
|
} catch (SQLException e1) {
|
|
// TODO Auto-generated catch block
|
|
e1.printStackTrace();
|
|
}
|
|
} else {
|
|
JOptionPane.showMessageDialog(null, "您没有选中读者!!!", "操作失败", JOptionPane.ERROR_MESSAGE);
|
|
}
|
|
studentNumber = TableTool.setNull(table_reader, studentNumber);
|
|
}
|
|
});
|
|
// 更新
|
|
jbt_reader[3].addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
|
JLabel[] jlab_reader = { new JLabel("学号:"), new JLabel("院系:"), new JLabel("班级:"), new JLabel("手机号:"),
|
|
new JLabel("邮箱:") };
|
|
JLabel[] jlab_hint = { new JLabel("不可修改"), new JLabel("中文汉字"), new JLabel("中文汉字或者数字"),
|
|
new JLabel("13、14、15、17、18开头"), new JLabel("邮箱格式")};
|
|
JTextField[] jtext_reader = new JTextField[5];
|
|
Object[] readerUpdata = { studentNumber, dept, classes, tele, email };
|
|
if (studentNumber != null) {
|
|
try {
|
|
new PubJdialog(210, 5, jlab_reader, jtext_reader, readerUpdata, 2,jlab_hint).setVisible(true);
|
|
if (PubJdialog.success) {
|
|
table_reader.setValueAt(jtext_reader[1].getText(), row, 4);
|
|
table_reader.setValueAt(jtext_reader[2].getText(), row, 5);
|
|
table_reader.setValueAt(jtext_reader[3].getText(), row, 6);
|
|
table_reader.setValueAt(jtext_reader[4].getText(), row, 7);
|
|
PubJdialog.success=false;
|
|
}
|
|
} catch (SQLException e1) {
|
|
// TODO Auto-generated catch block
|
|
e1.printStackTrace();
|
|
}
|
|
} else {
|
|
JOptionPane.showMessageDialog(null, "您没有选中读者!!!", "操作失败", JOptionPane.ERROR_MESSAGE);
|
|
}
|
|
studentNumber = TableTool.setNull(table_reader, studentNumber);
|
|
}
|
|
});
|
|
return panel;
|
|
}
|
|
}
|