package View; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.SQLException; import javax.swing.JButton; 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.DefaultTableModel; import Controller.ReaderCon; import Controller.ReaderTypeCon; import Tool.PubJdialog; import Tool.TableTool; /** * 读者类型信息管理面板 * @author rsw * */ public class ManageReaderType { int a, rt_id=-1, maxcount, maxday,row; String readerType; ReaderTypeCon readerTypeCon = new ReaderTypeCon(); ReaderCon readerCon =new ReaderCon(); boolean isCompile, refresh;// 是否可以编辑 protected JPanel addPanel3() throws SQLException { JPanel panel = new JPanel(new BorderLayout()); JPanel jpanup_readerType = new JPanel(); jpanup_readerType.setLayout(null); jpanup_readerType.setPreferredSize(new Dimension(1000, 80)); JButton[] jbt_readerType = {new JButton("新增读者类型"), new JButton("删除读者类型"), new JButton("修改读者类型") }; for (int i = 0; i < jbt_readerType.length; i++) { jbt_readerType[i].setBounds(300 + i * 150, 20, 120, 30); jpanup_readerType.add(jbt_readerType[i]); } String[] columnreaderType = { "序号", "读者类型", "最大借阅数量", "最大借阅天数" }; Object[][] readerTypeData = readerTypeCon.queryReaderType(); DefaultTableModel dfttable_readerType = new DefaultTableModel(readerTypeData, columnreaderType); JTable table_readerType = new JTable(dfttable_readerType) { public boolean isCellEditable(int row, int column) { return false;// 表格不允许被编辑 } }; ListSelectionModel selectionModel = table_readerType.getSelectionModel();// 创建表格选择器 selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);// 一次只能选择一个列表索引 selectionModel.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (selectionModel.getValueIsAdjusting()) { if(table_readerType.getSelectedRow()<0) { return; } row=table_readerType.getSelectedRow(); readerType = table_readerType.getValueAt(table_readerType.getSelectedRow(), 1).toString(); rt_id = Integer .valueOf(table_readerType.getValueAt(table_readerType.getSelectedRow(), 0).toString()); maxcount = Integer .valueOf(table_readerType.getValueAt(table_readerType.getSelectedRow(), 2).toString()); maxday = Integer .valueOf(table_readerType.getValueAt(table_readerType.getSelectedRow(), 3).toString()); } } }); //设置表格的公共属性 TableTool.setTable(table_readerType, dfttable_readerType); table_readerType.setPreferredScrollableViewportSize(new Dimension(900, 700));// 超过范围出现滚动 JScrollPane scrollPane = new JScrollPane(table_readerType); panel.add(jpanup_readerType, BorderLayout.NORTH); panel.add(scrollPane); // 新增读者类型 jbt_readerType[0].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { new PubJdialog(a).setVisible(true); if(PubJdialog.success) { dfttable_readerType.setDataVector(readerTypeCon.queryReaderType(), columnreaderType); } } catch (SQLException e1) { e1.printStackTrace(); } rt_id = TableTool.cancelTableSelected(table_readerType, rt_id); } }); // 删除读者类型 jbt_readerType[1].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (rt_id != -1) { int c = JOptionPane.showConfirmDialog(null, "是否确定删除此读者类型", "验证操作", JOptionPane.YES_NO_OPTION); if (c == JOptionPane.YES_OPTION) { try { if(readerCon.existReadertype(rt_id)) { JOptionPane.showMessageDialog(null, "此读者类型已经有读者使用,请尝试将此读者类型的读者删除后在删除此读者类型!!!", "操作失败", JOptionPane.ERROR_MESSAGE); }else { System.out.println(rt_id); readerTypeCon.deleteRederType(rt_id); dfttable_readerType.removeRow(table_readerType.getSelectedRow()); } } catch (SQLException e1) { e1.printStackTrace(); } } } else { JOptionPane.showMessageDialog(null, "您没有选中读者类型!!!", "操作失败", JOptionPane.ERROR_MESSAGE); } rt_id = TableTool.cancelTableSelected(table_readerType, rt_id); } }); // 修改读者类型 jbt_readerType[2].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JLabel[] jlab_readerType = { new JLabel("读者ID:"), new JLabel("读者类型:"), new JLabel("最大借阅数量:"), new JLabel("最大借阅天数:") }; JLabel[] jlab_hint = { new JLabel("不可修改"), new JLabel("中文汉字"), new JLabel("整数"), new JLabel("整数")}; JTextField[] jtext_readerType = new JTextField[4]; Object[] readerTypeUpdata = { rt_id, readerType, maxcount, maxday }; if (rt_id != -1) { try { // 弹出修改读者类型的对话框 new PubJdialog(180, 4, jlab_readerType, jtext_readerType, readerTypeUpdata, 3,jlab_hint).setVisible(true); if (PubJdialog.success) { table_readerType.setValueAt(jtext_readerType[1].getText(), row, 1); table_readerType.setValueAt(jtext_readerType[2].getText(), row, 2); table_readerType.setValueAt(jtext_readerType[3].getText(), row, 3); PubJdialog.success=false; } } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else { JOptionPane.showMessageDialog(null, "您没有选中读者类型!!!", "操作失败", JOptionPane.ERROR_MESSAGE); } rt_id = TableTool.cancelTableSelected(table_readerType, rt_id); } }); return panel; } }