Java+Swing实现医院管理系统

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.JTextField;

import javax.swing.table.DefaultTableCellRenderer;

import javax.swing.table.DefaultTableModel;

public class ChargeQuery {

Font f1 = new Font(“隶书”, Font.BOLD, 30);

public static JTable table;

public static DefaultTableModel dtm;

private JScrollPane JScrollPane = new JScrollPane();

JPanel panel2 = new JPanel();

private JLabel la1, la2, la3, la4, la5;

private JTextField tx1, tx2;

private String columnNames[] = { “就医档案编号”, “病人编号”, “病人姓名”, “就医科室”, “用药费用”, “治疗费”, “检查费”, “挂号费”, “处置费”, “化验费”,

“费用总额”, “结账时间” };

ChargeQuery() {

// 添加背景

ImageIcon background = new ImageIcon(“picture/right_bg.jpg”); // 背景图片

JLabel label = new JLabel(background);

panel2.setLayout(null);

// 设置默认表格面板

dtm = new DefaultTableModel(columnNames, 0);

table = new JTable(dtm) {

public boolean isCellEditable(int row, int column) {

return false;

}// 表格不允许被编辑 }

};

String sql = “select * from Charge”;

databaseSearch(sql, 12);

JScrollPane.setViewportView(table);// 给表格添加滚动条

panel2.add(JScrollPane);

JScrollPane.setBounds(30, 200, 950, 300);

setbgcolor();

JLabel label1 = new JLabel(“收费统计”);

panel2.add(label1);

label1.setBounds(30, 10, 400, 50);

label1.setFont(f1);

la1 = new JLabel(“总费用统计:”);

la2 = new JLabel(“人数统计:”);

tx1 = new JTextField();

tx2 = new JTextField();

la1.setBounds(30, 80, 100, 50);

la2.setBounds(30, 120, 100, 50);

tx1.setBounds(100, 90, 100, 30);

tx2.setBounds(100, 130, 100, 30);

panel2.add(la1);

panel2.add(la2);

panel2.add(tx1);

panel2.add(tx2);

tx1.setEditable(false);

tx2.setEditable(false);

panel2.add(label);// 面板添加背景图片,设置位置

label.setBounds(-30, 0, 1100, 700);

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

ResultSet rs, rs1;

try {

String sql2 = "select Sum(sum) from Charge ";

String sql1 = "select count(*) from Charge ";

Statement stmt = con.createStatement();

Statement stmt1 = con.createStatement();

rs = stmt.executeQuery(sql1);

rs1 = stmt1.executeQuery(sql2);

while (rs.next()) {

String a = rs.getString(1);

tx2.setText(a);

}

while (rs1.next()) {

String a = rs1.getString(1);

tx1.setText(a);

}

} catch (Exception e) {

e.printStackTrace();

}

}

private void setbgcolor() {

// TODO Auto-generated method stub

try {

DefaultTableCellRenderer tcr = new DefaultTableCellRenderer() {

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,

boolean hasFocus, int row, int column) {

if (row % 2 == 0)

setBackground(new Color(223, 220, 239)); // 设置奇数行底色

else if (row % 2 == 1)

setBackground(Color.white); // 设置偶数行底色

return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

}

};

for (int i = 0; i < table.getColumnCount(); i++) {

table.getColumn(table.getColumnName(i)).setCellRenderer(tcr);

}

} catch (Exception ex) {

ex.printStackTrace();

}

}

private void databaseSearch(String sql, int i) {

// TODO Auto-generated method stub

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

ResultSet rs;

try {

int rowcount = dtm.getRowCount() - 1;

if (rowcount != -1) {

for (int i1 = rowcount; i1 >= 0; i1–) {

dtm.removeRow(i1); // 删除Jtable中的所有行

}

dtm.setRowCount(0); // 将Jtable中的行数设为零

}

Statement stmt = con.createStatement();

rs = stmt.executeQuery(sql);

String[] data = new String[12];

while (rs.next()) {

for (int j = 1; j <= 12; j++) {

data[j - 1] = rs.getString(j); // 取出数据库中的数组装载到数组中

}

dtm.addRow(data); // 在Jtable中添加数据行

}

con.close();

// 设置表格隔行背景色(隔行背景色不同)

} catch (Exception err) {

}

}

}

ChufangModify.java


package com.sjsq;

import java.awt.Color;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import javax.swing.DefaultCellEditor;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFrame;

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.border.TitledBorder;

import javax.swing.event.DocumentEvent;

import javax.swing.event.DocumentListener;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.TableColumn;

public class ChufangModify extends JFrame implements ActionListener, ItemListener {

JButton button6 = new JButton(“增加”);

JButton button7 = new JButton(“确定”);

JButton button8 = new JButton(“删除”);

private String columnNames[] = { “编码”, “名称”, “单价”, “数量”, “计数单位”, “类别”, “档案编号” };

private String columnNames1[] = { “编码”, “名称”, “单价”, “计数单位”, “类别” };

private JLabel la0;

private JComboBox box1, box2;

JPanel panel2 = new JPanel();

public static JTable table2, table3;

public static DefaultTableModel dtm2, dtm3;

private JScrollPane JScrollPane3 = new JScrollPane();

private JScrollPane JScrollPane5 = new JScrollPane();

String y;

ChufangModify(String Stitle) {

super(Stitle);

panel2.setLayout(null);

ImageIcon ic; // 按钮图片

ic = new ImageIcon(“picture/right_bg.jpg”);

JLabel label = new JLabel(ic);// 把背景图片显示在一个标签里面

dtm2 = new DefaultTableModel(columnNames, 0) {// dtm2是项目收费表格模版

public boolean isCellEditable(int row, int column) {

if (column == 1 || column == 3)

return true;// 这个是可以编辑的列

// if(rowIndex!=0) return false;

return false;

}// 表格不允许被编辑 }

};

String fontSize1[] = { “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “10”, “12” };

table2 = new JTable(dtm2);// JScrollPane4 项目表

JScrollPane JScrollPane4 = new JScrollPane(table2);

TableColumn a1 = table2.getColumn(“名称”);

TableColumn a2 = table2.getColumn(“数量”);

JTextField box3 = new JTextField();

box2 = new JComboBox(fontSize1);

box2.addActionListener(this);

box2.addItemListener(this);

box3.getDocument().addDocumentListener(new DocumentListener() {

@Override

public void removeUpdate(DocumentEvent e) {

System.out.println(“removeUpdate”);

updata_combobox();

}

@Override

public void insertUpdate(DocumentEvent e) {

System.out.println(“insertUpdate”);

updata_combobox();

}

@Override

public void changedUpdate(DocumentEvent e) {

updata_combobox();

}

private void updata_combobox() {

String s1 = null;

s1 = box3.getText();

String sql = “select * from Price where PeName like '%” + s1 + “%'and PeClass=‘其他类’”;

databaseSearch1(sql, 5);

}

});

box3.setEditable(true);

DefaultCellEditor dce2 = new DefaultCellEditor(box3);

a1.setCellEditor(dce2);

box2.setEditable(true);

box2.setMaximumRowCount(5);

DefaultCellEditor dce3 = new DefaultCellEditor(box2);

a2.setCellEditor(dce3);

box2.addActionListener(this);

final JPanel panel = new JPanel();

panel.setLayout(null);

panel.setBorder(new TitledBorder(null, “诊疗项目单”, TitledBorder.DEFAULT_JUSTIFICATION,

TitledBorder.DEFAULT_POSITION, null, null));

panel.setBounds(20, 150, 530, 180);

panel.setBackground(Color.WHITE);

panel.add(JScrollPane4);

JScrollPane4.setBounds(10, 20, 400, 150);

panel2.add(panel);

button6.setBounds(420, 20, 100, 40);

panel.add(button6);

button7.setBounds(420, 70, 100, 40);

panel.add(button7);

button8.setBounds(420, 120, 100, 40);

panel.add(button8);

button6.addActionListener(this);

button7.addActionListener(this);

button8.addActionListener(this);

dtm3 = new DefaultTableModel(columnNames1, 0);// 项目明细表

table3 = new JTable(dtm3) {

public boolean isCellEditable(int row, int column) {

return false;

}// 表格不允许被编辑 }

};

JScrollPane5.setViewportView(table3);

panel2.add(JScrollPane5);

JScrollPane5.setBounds(30, 50, 400, 100);

JScrollPane5.setVisible(false);

String SQL1 = “select * from Price where PeClass=‘其他类’”;

databaseSearch1(SQL1, 5);

JScrollPane4.setViewportView(table2);

box3.addMouseListener(new MouseAdapter() {// 设置TABLE双击鼠标事件

public void mouseClicked(MouseEvent e) {

if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键

JScrollPane5.setVisible(true);

}

});

button8.addMouseListener(new MouseAdapter() { // 删除按钮实现删除记录的功能

public void mouseClicked(MouseEvent e) {

int row = table2.getSelectedRow();// 这句选择要删除的行

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

Statement stmt;

String val = (String) table2.getValueAt(row, 6);

String val1 = (String) table2.getValueAt(row, 0);

String sql = “delete from DrugTable where MrId='” + val + “‘and PeNo=’” + val1 + “'”;

try {

stmt = con.createStatement();

stmt.executeUpdate(sql);

button6.setEnabled(true);

JOptionPane.showMessageDialog(null, " 删除成功!", “注意”, JOptionPane.INFORMATION_MESSAGE);

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

if (row != -1) { // 这句判断是否有选中的行

dtm2.removeRow(row);

} // 这句删除指定行

}

});

table3.addMouseListener(new MouseAdapter() {// 设置TABLE双击鼠标事件

public void mouseClicked(MouseEvent e) {

if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键

if (e.getClickCount() == 2) {

int o = table3.getSelectedRow();

int row = table2.getSelectedRow();

String ao = (String) table3.getValueAt(o, 1);

String bo = (String) table3.getValueAt(o, 0);

String co = (String) table3.getValueAt(o, 2);

String eo = (String) table3.getValueAt(o, 4);

String qo = (String) table3.getValueAt(o, 3);

System.out.println(ao);

box3.setText(ao);

table2.setValueAt(bo, row, 0);

table2.setValueAt(co, row, 2);

table2.setValueAt(eo, row, 5);

table2.setValueAt(qo, row, 4);

y = co;

JScrollPane5.setVisible(false);

}

}

});

panel2.add(label);

label.setBounds(0, 0, 600, 400);

this.add(panel2);

this.setSize(600, 400); // 设置窗口大小

this.setResizable(false); // 设置不可调整窗口大小

this.setLocationRelativeTo(null);

this.setVisible(true);

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if (e.getSource() == button7) {

try {

String s = (String) box2.getSelectedItem();

int i = Integer.valueOf(s).intValue();

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

int row = table2.getSelectedRow();

String b = (String) table2.getValueAt(row, 3);

String sql = “INSERT INTO DrugTable(PeNo,PeName,PePrice,PeNumber,PeUnit,PeClass,MrId)VALUES(?,?,?,?,?,?,?)”;

PreparedStatement parepare = con.prepareStatement(sql);

parepare.setString(1, (String) table2.getValueAt(row, 0));

parepare.setString(2, (String) table2.getValueAt(row, 1));

parepare.setString(3, (String) table2.getValueAt(row, 2));

parepare.setString(4, (String) table2.getValueAt(row, 3));

parepare.setString(5, (String) table2.getValueAt(row, 4));

parepare.setString(6, (String) table2.getValueAt(row, 5));

parepare.setString(7, (String) table2.getValueAt(row, 6));

if (i <= 0 || b == “”) {

JOptionPane.showMessageDialog(null, “数量不能小于0或为空”, “错误”, JOptionPane.INFORMATION_MESSAGE);

}

else {

parepare.executeUpdate();

JOptionPane.showMessageDialog(null, “录入成功”, “录入成功”, JOptionPane.INFORMATION_MESSAGE);

button6.setEnabled(true);

}

} catch (Exception et) {

et.printStackTrace();

}

}

}

public void databaseSearch1(String SQL1, int i) {

// TODO Auto-generated method stub

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

ResultSet rs;

try {

int rowcount = dtm3.getRowCount() - 1;

if (rowcount != -1) {

for (int i1 = rowcount; i1 >= 0; i1–) {

dtm3.removeRow(i1); // 删除Jtable中的所有行

}

dtm3.setRowCount(0); // 将Jtable中的行数设为零

}

Statement stmt = con.createStatement();

rs = stmt.executeQuery(SQL1);

String[] data = new String[5];

while (rs.next()) {

for (int j = 1; j <= 5; j++) {

data[j - 1] = rs.getString(j); // 取出数据库中的数组装载到数组中

}

dtm3.addRow(data); // 在Jtabl

}

con.close();

// 设置表格隔行背景色(隔行背景色不同)

} catch (Exception err) {

}

}

public void addrow(JTable table) {

// TODO Auto-generated method stub

int row = table.getSelectedRow();

String b = (String) table.getValueAt(row, 0);

button6.addActionListener(new ActionListener() {// 添加事件

public void actionPerformed(ActionEvent e) {

String[] da1 = { “”, “” };

String[] rowValues = da1;

dtm2.addRow(rowValues); // 添加一行

int row1 = table2.getRowCount() - 1;

table2.setRowSelectionInterval(row1, row1);

table2.setValueAt(b, row1, 6);

button6.setEnabled(false);

}

});

}

public void databaseSearch2(String SQL, int i) {

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

ResultSet rs;

try {

int rowcount = dtm2.getRowCount() - 1;

if (rowcount != -1) {

for (int i1 = rowcount; i1 >= 0; i1–) {

dtm2.removeRow(i1); // 删除Jtable中的所有行

}

dtm2.setRowCount(0); // 将Jtable中的行数设为零

}

Statement stmt = con.createStatement();

rs = stmt.executeQuery(SQL);

String[] data = new String[7];

while (rs.next()) {

for (int j = 1; j <= 7; j++) {

data[j - 1] = rs.getString(j); // 取出数据库中的数组装载到数组中

}

dtm2.addRow(data); // 在Jtabl

}

con.close();

// 设置表格隔行背景色(隔行背景色不同)

} catch (Exception err) {

}

}

@Override

public void itemStateChanged(ItemEvent e) {

// TODO Auto-generated method stub

}

}

DBUtil.java


package com.sjsq;

import java.sql.Connection;

import java.sql.DriverManager;

public class DBUtil {

// 连接

private Connection con = null;

public String url = “jdbc:mysql://localhost:3306/swing_hospital_management?serverTimezone=UTC”;

public String username = “root”;

public String password = “admin”;

// 获取连接

public Connection getConnection() {

try {

con = DriverManager.getConnection(url, username, password);

} catch (Exception e) {

e.printStackTrace();

System.out.println(“获取连接失败:” + e.getMessage());

}

return con;

}

// 关闭连接

public void close() {

try {

if (con != null) {

con.close();

}

con = null;

System.out.println(“数据库连接关闭”);

} catch (Exception e) {

e.printStackTrace();

}

}

// 测试

public static void main(String[] args) {

DBUtil dbUtil = new DBUtil();

dbUtil.getConnection();

}

}

DepartmentManage.java


package com.sjsq;

import java.awt.Color;

import java.awt.Component;

import java.awt.Font;

import java.awt.Rectangle;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.regex.Pattern;

import javax.swing.DefaultComboBoxModel;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JDialog;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenuItem;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JPopupMenu;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.JTextField;

import javax.swing.border.TitledBorder;

import javax.swing.table.DefaultTableCellRenderer;

import javax.swing.table.DefaultTableModel;

public class DepartmentManage extends JFrame implements ActionListener {

JPanel departmentManage = new JPanel();

private JLabel manageTitle = new JLabel(“科室信息综合操作”);

private JLabel la1, la2, la3, la4, la5, la6;

private JTextField tx1, tx2, tx3, tx4, tx5, tx6;

public JButton save, query, modify, delete;

private Font laFont = new Font(“宋体”, Font.BOLD, 15);

private JComboBox jcbb1;

private String str1[] = { “查询全部”, “按科室编号查询”, “按科室名称查询” };

private final String[] columnNames = { “科室编号”, “科室名称”, “科室主任”, “科室电话” };

private JScrollPane JScrollPane1 = new JScrollPane();

private java.sql.Connection con = null;

private static JTable table;

private static DefaultTableModel dtm;

private Pattern pattern = Pattern.compile(“[0-9]*”);

public DepartmentManage() {

// 背景设置

departmentManage.setLayout(null);

ImageIcon background = new ImageIcon(“picture/right_bg.jpg”);

JLabel label = new JLabel(background);

// 标题设置

manageTitle.setFont(new Font(“宋体”, Font.BOLD, 50));

manageTitle.setBounds(60, 10, 1000, 50);

departmentManage.add(manageTitle);

// 录入操作面板设置

final JPanel panel = new JPanel();

panel.setLayout(null);

panel.setBorder(new TitledBorder(null, “录入操作”, TitledBorder.DEFAULT_JUSTIFICATION,

TitledBorder.DEFAULT_POSITION, null, Color.red));

panel.setBounds(45, 65, 550, 150);

panel.setOpaque(false);

la1 = new JLabel(“科室编号:”);

la2 = new JLabel(“科室名称:”);

la3 = new JLabel(“科室主任:”);

la4 = new JLabel(“科室电话:”);

tx1 = new JTextField();

tx2 = new JTextField();

tx3 = new JTextField();

tx4 = new JTextField();

save = new JButton(“保存”);

la1.setBounds(20, 20, 100, 50);

la1.setFont(laFont);

la2.setBounds(240, 20, 100, 50);

la2.setFont(laFont);

la3.setBounds(20, 80, 100, 50);

la3.setFont(laFont);

la4.setBounds(240, 80, 100, 50);

la4.setFont(laFont);

tx1.setBounds(100, 30, 120, 30);

tx1.setFont(laFont);

tx2.setBounds(320, 30, 120, 30);

tx2.setFont(laFont);

tx3.setBounds(100, 90, 120, 30);

tx3.setFont(laFont);

tx4.setBounds(320, 90, 120, 30);

tx4.setFont(laFont);

save.setBounds(460, 100, 80, 40);

panel.add(la1);

panel.add(la2);

panel.add(la3);

panel.add(la4);

panel.add(tx1);

panel.add(tx2);

panel.add(tx3);

panel.add(tx4);

panel.add(save);

departmentManage.add(panel);

// 查询操纵面板设置

final JPanel panel1 = new JPanel();

panel1.setLayout(null);

panel1.setBorder(new TitledBorder(null, “查询操作”, TitledBorder.DEFAULT_JUSTIFICATION,

TitledBorder.DEFAULT_POSITION, null, Color.red));

panel1.setBounds(620, 65, 380, 150);

panel1.setOpaque(false);

query = new JButton(“查询”);

la5 = new JLabel(“科室编号:”);

la6 = new JLabel(“科室名称:”);

tx5 = new JTextField();

tx6 = new JTextField();

jcbb1 = new JComboBox(str1);

jcbb1.setBounds(20, 28, 150, 25);

jcbb1.setFont(laFont);

la5.setBounds(20, 73, 80, 50);

la5.setFont(laFont);

la6.setBounds(20, 73, 80, 50);

la6.setFont(laFont);

tx5.setBounds(100, 80, 120, 30);

tx5.setFont(laFont);

tx6.setBounds(100, 80, 120, 30);

tx6.setFont(laFont);

query.setBounds(290, 100, 80, 40);

la5.setVisible(false);

la6.setVisible(false);

tx5.setVisible(false);

tx6.setVisible(false);

panel1.add(la5);

panel1.add(la6);

panel1.add(tx5);

panel1.add(tx6);

panel1.add(jcbb1);

panel1.add(query);

departmentManage.add(panel1);

// 表格设置

defaultTableModel(); // 设置表格不可编辑

setTableColumnCenter(); // 设置表格内容居中显示

setbgcolor(); // 设置表格隔行不同颜色

JScrollPane1.setBounds(new Rectangle(45, 230, 850, 270));

JScrollPane1.setViewportView(table); // 创建一个滚动条(如果有必要)并设置其视图

// table.getColumnModel().getColumn(0).setMinWidth(40);

// table.getColumnModel().getColumn(0).setMaxWidth(40);

table.getTableHeader().setReorderingAllowed(false); // 列不可拖动

table.getTableHeader().setResizingAllowed(false); // 列宽不能改变

departmentManage.add(JScrollPane1);

// 按钮设置

modify = new JButton(“修改”);

delete = new JButton(“删除”);

// reflash=new JButton(“刷新”);

modify.setBounds(910, 230, 80, 40);

delete.setBounds(910, 300, 80, 40);

// reflash.setBounds(910, 370, 80, 40);

departmentManage.add(modify);

departmentManage.add(delete);

// departmentManage.add(reflash);

// 添加监听器

save.addActionListener(this);

delete.addActionListener(this);

query.addActionListener(this);

modify.addActionListener(this);

// reflash.addActionListener(this);

jcbb1.addActionListener(this);

// 添加背景

departmentManage.add(label);

label.setBounds(0, 0, 1100, 700);

}

// 设置表格不可编辑

private void defaultTableModel() {

dtm = new DefaultTableModel(columnNames, 0);

table = new JTable(dtm) {

public boolean isCellEditable(int row, int column) {

return false;

}

};

}

// 设置表格内容居中显示

private void setTableColumnCenter() {

DefaultTableCellRenderer r = new DefaultTableCellRenderer();

r.setHorizontalAlignment(JLabel.CENTER);

table.setDefaultRenderer(Object.class, r);

}

// 设置表格隔行背景颜色不同

private static void setbgcolor() {

try {

DefaultTableCellRenderer tcr = new DefaultTableCellRenderer() {

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,

boolean hasFocus, int row, int column) {

if (row % 2 == 0)

setBackground(new Color(223, 220, 239)); // 设置奇数行底色

else if (row % 2 == 1)

setBackground(Color.white); // 设置偶数行底色

return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

}

};

for (int i = 0; i < table.getColumnCount(); i++) {

table.getColumn(table.getColumnName(i)).setCellRenderer(tcr);

}

} catch (Exception ex) {

ex.printStackTrace();

}

}

public void actionPerformed(ActionEvent e) {

if (e.getSource() == jcbb1) {

if (jcbb1.getSelectedIndex() == 0) {

la5.setVisible(false);

la6.setVisible(false);

tx5.setVisible(false);

tx6.setVisible(false);

return;

} else if (jcbb1.getSelectedIndex() == 1) {

la5.setVisible(true);

tx5.setVisible(true);

la6.setVisible(false);

tx6.setVisible(false);

return;

} else if (jcbb1.getSelectedIndex() == 2) {

tx5.setVisible(false);

la5.setVisible(false);

tx6.setVisible(true);

la6.setVisible(true);

return;

}

}

if (e.getSource() == save) { // 录入操作

// 输入信息不能为空

if (tx1.getText().equals(“”) || tx2.getText().equals(“”) || tx4.getText().equals(“”)) {

JOptionPane.showMessageDialog(null, “请输入完整的科室信息!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

// 编号为3位数字

else if (tx1.getText().length() > 3 || pattern.matcher(tx1.getText()).matches() == false) {

JOptionPane.showMessageDialog(null, “请输入正确的3位数科室编号!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

// 名字长度不能超过20个字符

else if (tx2.getText().length() > 10 || tx3.getText().length() > 10) {

JOptionPane.showMessageDialog(null, “名字长度不能超过10个汉字!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

// 电话号码为8位数字

else if (pattern.matcher(tx4.getText()).matches() == false || tx4.getText().length() != 8) {

JOptionPane.showMessageDialog(null, “请输入正确的8位数电话号码!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

else {

String deptNo = tx1.getText().trim();

String deptName = tx2.getText();

String deptPhone = tx4.getText().trim();

try {

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

Statement st1 = con.createStatement(); // 创建一个数据库会话对象

Statement st2 = con.createStatement(); // 创建一个数据库会话对象

Statement st3 = con.createStatement(); // 创建一个数据库会话对象

ResultSet rs1 = st1.executeQuery(“select * from Department where DeptNo='” + deptNo + “'”); // SQL语句

ResultSet rs2 = st2.executeQuery(“select * from Department where DeptName='” + deptName + “'”);

ResultSet rs3 = st3.executeQuery(“select * from Department where DeptPhone='” + deptPhone + “'”);

if (rs1.next()) { // 判断结果集rs是否有记录,并且将指针后移一位

JOptionPane.showMessageDialog(null, “该科室号已存在,请重新输入!”, “错误”, JOptionPane.ERROR_MESSAGE);

st1.close();

} else if (rs2.next()) {

JOptionPane.showMessageDialog(null, “该科室名已存在,请重新输入!”, “错误”, JOptionPane.ERROR_MESSAGE);

st2.close();

} else if (rs3.next()) {

JOptionPane.showMessageDialog(null, “该科室电话号码已存在,请重新输入!”, “错误”, JOptionPane.ERROR_MESSAGE);

st3.close();

}

else {

int ok = JOptionPane.showConfirmDialog(null, “是否保存该科室信息?”, “确定”, JOptionPane.YES_NO_OPTION,

JOptionPane.INFORMATION_MESSAGE);

if (ok == JOptionPane.YES_OPTION) {

try {

// 信息添加到数据库

String sql = “INSERT INTO Department(DeptNo,DeptName,DrName,DeptPhone)VALUES(?,?,?,?)”;

PreparedStatement parepare = con.prepareStatement(sql);

parepare.setString(1, tx1.getText());

parepare.setString(2, tx2.getText());

parepare.setString(3, tx3.getText());

parepare.setString(4, tx4.getText());

parepare.executeUpdate();

String[] data = new String[] { tx1.getText(), tx2.getText(), tx3.getText(),

tx4.getText() };

dtm.addRow(data); // 在表格添加一行刚添加的数据

JOptionPane.showMessageDialog(null, “录入成功”);

tx1.setText(“”);

tx2.setText(“”);

tx3.setText(“”);

tx4.setText(“”);

} catch (Exception e1) {

e1.printStackTrace();

System.out.println(“SQL Exception occur.Message is:”);

System.out.println(e1.getMessage());

}

}

}

} catch (Exception e2) {

e2.printStackTrace();

}

}

}

if (e.getSource() == query) { // 查询操作

try {

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

if (jcbb1.getSelectedIndex() == 0) { // 全部查询

String sql = “select * from Department”;

databaseSearch(sql);

if (table.getRowCount() != 0) {

JOptionPane.showMessageDialog(null, “查询成功!”);

} else {

JOptionPane.showMessageDialog(null, “没有找到您要的信息!”);

}

}

if (jcbb1.getSelectedIndex() == 1) { // 编号查询

if (tx5.getText().trim().equals(“”)) {

JOptionPane.showMessageDialog(null, “请输入正确的科室编号!”, “错误”, JOptionPane.ERROR_MESSAGE);

} else {

String deptNo = tx5.getText().trim();

String sql = “select * from Department where DeptNo like’%” + deptNo + “%'”;

databaseSearch(sql);

if (table.getRowCount() != 0) {

JOptionPane.showMessageDialog(null, “查询成功!”);

tx5.setText(“”);

} else {

JOptionPane.showMessageDialog(null, “没有找到您要的信息!”);

}

}

}

if (jcbb1.getSelectedIndex() == 2) { // 名称查询

if (tx6.getText().trim().equals(“”)) {

JOptionPane.showMessageDialog(null, “请输入正确的科室名称!”, “错误”, JOptionPane.ERROR_MESSAGE);

} else {

String deptName = tx6.getText();

String sql = “select * from Department where DeptName like '%” + deptName + “%'”;

databaseSearch(sql);

if (table.getRowCount() != 0) {

JOptionPane.showMessageDialog(null, “查询成功!”);

tx6.setText(“”);

} else {

JOptionPane.showMessageDialog(null, “没有找到您要的信息!”);

}

}

}

} catch (Exception e1) {

e1.printStackTrace();

}

}

if (e.getSource() == delete) { // 删除操作

try {

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

Statement stmt = con.createStatement(); // 创建一个数据库会话对象

int selectCount = table.getSelectedRowCount();

if (selectCount == 0) {

JOptionPane.showMessageDialog(null, “请选择您要删除的信息!”);

} else if (selectCount == 1) {

int ok = JOptionPane.showConfirmDialog(null, “是否删除该科室信息?”, “确定”, JOptionPane.YES_NO_OPTION,

JOptionPane.INFORMATION_MESSAGE);

if (ok == JOptionPane.YES_OPTION) {

int row = table.getSelectedRow();

String deptNo = (String) table.getValueAt(row, 0);

String sql = “delete from Department where DeptNo='” + deptNo + “'”;

stmt.executeUpdate(sql);

dtm.removeRow(row);

JOptionPane.showMessageDialog(null, “删除成功!”);

}

} else {

int ok = JOptionPane.showConfirmDialog(null, “是否删除所选” + selectCount + “个科室信息?”, “确定”,

JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);

if (ok == JOptionPane.YES_OPTION) {

for (int i = 1; i <= selectCount; i++) {

int row1 = table.getSelectedRow();

String deptNo = (String) table.getValueAt(row1, 0);

String sql = “delete from Department where DeptNo='” + deptNo + “'”;

stmt.executeUpdate(sql);

dtm.removeRow(row1);

}

JOptionPane.showMessageDialog(null, “删除成功!”);

}

}

} catch (Exception e1) {

e1.printStackTrace();

}

}

// 修改操作设置

if (e.getSource() == modify) {

if (table.getSelectedRowCount() != 1) {

JOptionPane.showMessageDialog(null, “请选择一项科室信息进行修改!”, “错误”, JOptionPane.ERROR_MESSAGE);

} else {

try {

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

Statement stmt1 = con.createStatement(); // 创建一个数据库会话对象

int row = table.getSelectedRow();

String value0 = (String) table.getValueAt(row, 0);

String value1 = (String) table.getValueAt(row, 1);

String value2 = (String) table.getValueAt(row, 2);

String value3 = (String) table.getValueAt(row, 3);

DepartmentModify dig = new DepartmentModify();

dig.tx1.setText(value0);

dig.tx2.setText(value1);

dig.tx3.setText(value2);

dig.tx4.setText(value3);

dig.s.setVisible(true);

} catch (Exception e1) {

e1.printStackTrace();

}

}

}

}

// 把数据库数据传入表格

public void databaseSearch(String SQL) {

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

ResultSet rs;

try {

int rowcount = dtm.getRowCount() - 1;

if (rowcount != -1) {

for (int i1 = rowcount; i1 >= 0; i1–) {

dtm.removeRow(i1);

}

dtm.setRowCount(0);

}

Statement stmt = con.createStatement();

rs = stmt.executeQuery(SQL);

String[] data = new String[4];

while (rs.next()) {

for (int j = 1; j <= 4; j++) {

data[j - 1] = rs.getString(j);

}

dtm.addRow(data);

}

con.close();

} catch (Exception err) {

String error = err.getMessage();

JOptionPane.showMessageDialog(null, error);

err.printStackTrace();

} finally {

dbUtil.close();

}

}

// 科室信息修改操作对话框设置++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

class DepartmentModify implements ActionListener {

public JDialog s = new JDialog();

public JLabel la1, la2, la3, la4;

public JTextField tx1, tx2, tx3, tx4, txWait;

public JButton confirm, cancel;

public Font laFont = new Font(“宋体”, Font.BOLD, 15);

public int row = table.getSelectedRow();

public DepartmentModify() {

ImageIcon background = new ImageIcon(“picture/right_bg.jpg”);

JLabel label = new JLabel(background);

s.setModal(true);

s.setSize(500, 250);

s.setResizable(false);

s.setLocationRelativeTo(null);

s.setLayout(null);

la1 = new JLabel(“科室编号:”);

la2 = new JLabel(“科室名称:”);

la3 = new JLabel(“科室主任:”);

la4 = new JLabel(“科室电话:”);

tx1 = new JTextField();

tx2 = new JTextField();

tx3 = new JTextField();

tx4 = new JTextField();

txWait = new JTextField();

confirm = new JButton(“确定”);

cancel = new JButton(“取消”);

tx1.setEditable(false);

la1.setBounds(30, 30, 100, 40);

la1.setFont(laFont);

la2.setBounds(250, 30, 100, 40);

la2.setFont(laFont);

la3.setBounds(30, 90, 100, 40);

la3.setFont(laFont);

la4.setBounds(250, 90, 100, 40);

la4.setFont(laFont);

tx1.setBounds(110, 35, 120, 30);

tx1.setFont(laFont);

tx2.setBounds(330, 35, 120, 30);

tx2.setFont(laFont);

tx3.setBounds(110, 95, 120, 30);

tx3.setFont(laFont);

tx4.setBounds(330, 95, 120, 30);

tx4.setFont(laFont);

confirm.setBounds(110, 150, 100, 40);

cancel.setBounds(330, 150, 100, 40);

s.add(la1);

s.add(la2);

s.add(la3);

s.add(la4);

s.add(tx1);

s.add(tx2);

s.add(tx3);

s.add(tx4);

s.add(confirm);

s.add(cancel);

confirm.addActionListener(this);

cancel.addActionListener(this);

s.add(label);

label.setBounds(0, 0, 500, 250);

}

public void actionPerformed(ActionEvent e) {

if (e.getSource() == cancel) {

s.dispose();

}

if (e.getSource() == confirm) {

int ok = JOptionPane.showConfirmDialog(null, “是否修改该科室信息?”, “确定”, JOptionPane.YES_NO_OPTION,

JOptionPane.INFORMATION_MESSAGE);

if (ok == JOptionPane.YES_OPTION) {

try {

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

Statement stmt = con.createStatement(); // 创建一个数据库会话对象

// 输入信息不能为空

if (tx2.getText().equals(“”) || tx4.getText().equals(“”)) {

JOptionPane.showMessageDialog(null, “请输入完整的科室信息!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

// 编号为3位数字

else if (tx1.getText().length() > 3 || pattern.matcher(tx1.getText()).matches() == false) {

JOptionPane.showMessageDialog(null, “请输入正确的3位数科室编号!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

// 名字长度不能超过20个字符

else if (tx2.getText().length() > 10 || tx3.getText().length() > 10) {

JOptionPane.showMessageDialog(null, “名字长度不能超过10个汉字!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

// 电话号码为8位数字

else if (pattern.matcher(tx4.getText()).matches() == false || tx4.getText().length() != 8) {

JOptionPane.showMessageDialog(null, “请输入正确的8位数电话号码!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

else {

int row2 = table.getSelectedRow();

String sql = “update Department set DeptName='” + tx2.getText().trim() + “‘,DrName=’”

  • tx3.getText().trim() + “‘,DeptPhone=’” + tx4.getText().trim() + “‘where DeptNo=’”

  • tx1.getText().trim() + "’ ";

stmt.executeUpdate(sql);

String[] data = new String[] { tx1.getText(), tx2.getText(), tx3.getText(), tx4.getText() };

dtm.removeRow(row2);

dtm.insertRow(row2, data);

JOptionPane.showMessageDialog(null, “修改成功”);

s.dispose();

}

} catch (Exception e1) {

e1.printStackTrace();

}

}

}

}

}

}

DepartmentManage.java


package com.sjsq;

import java.awt.Color;

import java.awt.Component;

import java.awt.Font;

import java.awt.Rectangle;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.regex.Pattern;

import javax.swing.DefaultComboBoxModel;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JDialog;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenuItem;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JPopupMenu;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.JTextField;

import javax.swing.border.TitledBorder;

import javax.swing.table.DefaultTableCellRenderer;

import javax.swing.table.DefaultTableModel;

public class DepartmentManage extends JFrame implements ActionListener {

JPanel departmentManage = new JPanel();

private JLabel manageTitle = new JLabel(“科室信息综合操作”);

private JLabel la1, la2, la3, la4, la5, la6;

private JTextField tx1, tx2, tx3, tx4, tx5, tx6;

public JButton save, query, modify, delete;

private Font laFont = new Font(“宋体”, Font.BOLD, 15);

private JComboBox jcbb1;

private String str1[] = { “查询全部”, “按科室编号查询”, “按科室名称查询” };

private final String[] columnNames = { “科室编号”, “科室名称”, “科室主任”, “科室电话” };

private JScrollPane JScrollPane1 = new JScrollPane();

private java.sql.Connection con = null;

private static JTable table;

private static DefaultTableModel dtm;

private Pattern pattern = Pattern.compile(“[0-9]*”);

public DepartmentManage() {

// 背景设置

departmentManage.setLayout(null);

ImageIcon background = new ImageIcon(“picture/right_bg.jpg”);

JLabel label = new JLabel(background);

// 标题设置

manageTitle.setFont(new Font(“宋体”, Font.BOLD, 50));

manageTitle.setBounds(60, 10, 1000, 50);

departmentManage.add(manageTitle);

// 录入操作面板设置

final JPanel panel = new JPanel();

panel.setLayout(null);

panel.setBorder(new TitledBorder(null, “录入操作”, TitledBorder.DEFAULT_JUSTIFICATION,

TitledBorder.DEFAULT_POSITION, null, Color.red));

panel.setBounds(45, 65, 550, 150);

panel.setOpaque(false);

la1 = new JLabel(“科室编号:”);

la2 = new JLabel(“科室名称:”);

la3 = new JLabel(“科室主任:”);

la4 = new JLabel(“科室电话:”);

tx1 = new JTextField();

tx2 = new JTextField();

tx3 = new JTextField();

tx4 = new JTextField();

save = new JButton(“保存”);

la1.setBounds(20, 20, 100, 50);

la1.setFont(laFont);

la2.setBounds(240, 20, 100, 50);

la2.setFont(laFont);

la3.setBounds(20, 80, 100, 50);

la3.setFont(laFont);

la4.setBounds(240, 80, 100, 50);

la4.setFont(laFont);

tx1.setBounds(100, 30, 120, 30);

tx1.setFont(laFont);

tx2.setBounds(320, 30, 120, 30);

tx2.setFont(laFont);

tx3.setBounds(100, 90, 120, 30);

tx3.setFont(laFont);

tx4.setBounds(320, 90, 120, 30);

tx4.setFont(laFont);

save.setBounds(460, 100, 80, 40);

panel.add(la1);

panel.add(la2);

panel.add(la3);

panel.add(la4);

panel.add(tx1);

panel.add(tx2);

panel.add(tx3);

panel.add(tx4);

panel.add(save);

departmentManage.add(panel);

// 查询操纵面板设置

final JPanel panel1 = new JPanel();

panel1.setLayout(null);

panel1.setBorder(new TitledBorder(null, “查询操作”, TitledBorder.DEFAULT_JUSTIFICATION,

TitledBorder.DEFAULT_POSITION, null, Color.red));

panel1.setBounds(620, 65, 380, 150);

panel1.setOpaque(false);

query = new JButton(“查询”);

la5 = new JLabel(“科室编号:”);

la6 = new JLabel(“科室名称:”);

tx5 = new JTextField();

tx6 = new JTextField();

jcbb1 = new JComboBox(str1);

jcbb1.setBounds(20, 28, 150, 25);

jcbb1.setFont(laFont);

la5.setBounds(20, 73, 80, 50);

la5.setFont(laFont);

la6.setBounds(20, 73, 80, 50);

la6.setFont(laFont);

tx5.setBounds(100, 80, 120, 30);

tx5.setFont(laFont);

tx6.setBounds(100, 80, 120, 30);

tx6.setFont(laFont);

query.setBounds(290, 100, 80, 40);

la5.setVisible(false);

la6.setVisible(false);

tx5.setVisible(false);

tx6.setVisible(false);

panel1.add(la5);

panel1.add(la6);

panel1.add(tx5);

panel1.add(tx6);

panel1.add(jcbb1);

panel1.add(query);

departmentManage.add(panel1);

// 表格设置

defaultTableModel(); // 设置表格不可编辑

setTableColumnCenter(); // 设置表格内容居中显示

setbgcolor(); // 设置表格隔行不同颜色

JScrollPane1.setBounds(new Rectangle(45, 230, 850, 270));

JScrollPane1.setViewportView(table); // 创建一个滚动条(如果有必要)并设置其视图

// table.getColumnModel().getColumn(0).setMinWidth(40);

// table.getColumnModel().getColumn(0).setMaxWidth(40);

table.getTableHeader().setReorderingAllowed(false); // 列不可拖动

table.getTableHeader().setResizingAllowed(false); // 列宽不能改变

departmentManage.add(JScrollPane1);

// 按钮设置

modify = new JButton(“修改”);

delete = new JButton(“删除”);

// reflash=new JButton(“刷新”);

modify.setBounds(910, 230, 80, 40);

delete.setBounds(910, 300, 80, 40);

// reflash.setBounds(910, 370, 80, 40);

departmentManage.add(modify);

departmentManage.add(delete);

// departmentManage.add(reflash);

// 添加监听器

save.addActionListener(this);

delete.addActionListener(this);

query.addActionListener(this);

modify.addActionListener(this);

// reflash.addActionListener(this);

jcbb1.addActionListener(this);

// 添加背景

departmentManage.add(label);

label.setBounds(0, 0, 1100, 700);

}

// 设置表格不可编辑

private void defaultTableModel() {

dtm = new DefaultTableModel(columnNames, 0);

table = new JTable(dtm) {

public boolean isCellEditable(int row, int column) {

return false;

}

};

}

// 设置表格内容居中显示

private void setTableColumnCenter() {

DefaultTableCellRenderer r = new DefaultTableCellRenderer();

r.setHorizontalAlignment(JLabel.CENTER);

table.setDefaultRenderer(Object.class, r);

}

// 设置表格隔行背景颜色不同

private static void setbgcolor() {

try {

DefaultTableCellRenderer tcr = new DefaultTableCellRenderer() {

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,

boolean hasFocus, int row, int column) {

if (row % 2 == 0)

setBackground(new Color(223, 220, 239)); // 设置奇数行底色

else if (row % 2 == 1)

setBackground(Color.white); // 设置偶数行底色

return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

}

};

for (int i = 0; i < table.getColumnCount(); i++) {

table.getColumn(table.getColumnName(i)).setCellRenderer(tcr);

}

} catch (Exception ex) {

ex.printStackTrace();

}

}

public void actionPerformed(ActionEvent e) {

if (e.getSource() == jcbb1) {

if (jcbb1.getSelectedIndex() == 0) {

la5.setVisible(false);

la6.setVisible(false);

tx5.setVisible(false);

tx6.setVisible(false);

return;

} else if (jcbb1.getSelectedIndex() == 1) {

la5.setVisible(true);

tx5.setVisible(true);

la6.setVisible(false);

tx6.setVisible(false);

return;

} else if (jcbb1.getSelectedIndex() == 2) {

tx5.setVisible(false);

la5.setVisible(false);

tx6.setVisible(true);

la6.setVisible(true);

return;

}

}

if (e.getSource() == save) { // 录入操作

// 输入信息不能为空

if (tx1.getText().equals(“”) || tx2.getText().equals(“”) || tx4.getText().equals(“”)) {

JOptionPane.showMessageDialog(null, “请输入完整的科室信息!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

// 编号为3位数字

else if (tx1.getText().length() > 3 || pattern.matcher(tx1.getText()).matches() == false) {

JOptionPane.showMessageDialog(null, “请输入正确的3位数科室编号!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

// 名字长度不能超过20个字符

else if (tx2.getText().length() > 10 || tx3.getText().length() > 10) {

JOptionPane.showMessageDialog(null, “名字长度不能超过10个汉字!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

// 电话号码为8位数字

else if (pattern.matcher(tx4.getText()).matches() == false || tx4.getText().length() != 8) {

JOptionPane.showMessageDialog(null, “请输入正确的8位数电话号码!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

else {

String deptNo = tx1.getText().trim();

String deptName = tx2.getText();

String deptPhone = tx4.getText().trim();

try {

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

Statement st1 = con.createStatement(); // 创建一个数据库会话对象

Statement st2 = con.createStatement(); // 创建一个数据库会话对象

Statement st3 = con.createStatement(); // 创建一个数据库会话对象

ResultSet rs1 = st1.executeQuery(“select * from Department where DeptNo='” + deptNo + “'”); // SQL语句

ResultSet rs2 = st2.executeQuery(“select * from Department where DeptName='” + deptName + “'”);

ResultSet rs3 = st3.executeQuery(“select * from Department where DeptPhone='” + deptPhone + “'”);

if (rs1.next()) { // 判断结果集rs是否有记录,并且将指针后移一位

JOptionPane.showMessageDialog(null, “该科室号已存在,请重新输入!”, “错误”, JOptionPane.ERROR_MESSAGE);

st1.close();

} else if (rs2.next()) {

JOptionPane.showMessageDialog(null, “该科室名已存在,请重新输入!”, “错误”, JOptionPane.ERROR_MESSAGE);

st2.close();

} else if (rs3.next()) {

JOptionPane.showMessageDialog(null, “该科室电话号码已存在,请重新输入!”, “错误”, JOptionPane.ERROR_MESSAGE);

st3.close();

}

else {

int ok = JOptionPane.showConfirmDialog(null, “是否保存该科室信息?”, “确定”, JOptionPane.YES_NO_OPTION,

JOptionPane.INFORMATION_MESSAGE);

if (ok == JOptionPane.YES_OPTION) {

try {

// 信息添加到数据库

String sql = “INSERT INTO Department(DeptNo,DeptName,DrName,DeptPhone)VALUES(?,?,?,?)”;

PreparedStatement parepare = con.prepareStatement(sql);

parepare.setString(1, tx1.getText());

parepare.setString(2, tx2.getText());

parepare.setString(3, tx3.getText());

parepare.setString(4, tx4.getText());

parepare.executeUpdate();

String[] data = new String[] { tx1.getText(), tx2.getText(), tx3.getText(),

tx4.getText() };

dtm.addRow(data); // 在表格添加一行刚添加的数据

JOptionPane.showMessageDialog(null, “录入成功”);

tx1.setText(“”);

tx2.setText(“”);

tx3.setText(“”);

tx4.setText(“”);

} catch (Exception e1) {

e1.printStackTrace();

System.out.println(“SQL Exception occur.Message is:”);

System.out.println(e1.getMessage());

}

}

}

} catch (Exception e2) {

e2.printStackTrace();

}

}

}

if (e.getSource() == query) { // 查询操作

try {

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

if (jcbb1.getSelectedIndex() == 0) { // 全部查询

String sql = “select * from Department”;

databaseSearch(sql);

if (table.getRowCount() != 0) {

JOptionPane.showMessageDialog(null, “查询成功!”);

} else {

JOptionPane.showMessageDialog(null, “没有找到您要的信息!”);

}

}

if (jcbb1.getSelectedIndex() == 1) { // 编号查询

if (tx5.getText().trim().equals(“”)) {

JOptionPane.showMessageDialog(null, “请输入正确的科室编号!”, “错误”, JOptionPane.ERROR_MESSAGE);

} else {

String deptNo = tx5.getText().trim();

String sql = “select * from Department where DeptNo like’%” + deptNo + “%'”;

databaseSearch(sql);

if (table.getRowCount() != 0) {

JOptionPane.showMessageDialog(null, “查询成功!”);

tx5.setText(“”);

} else {

JOptionPane.showMessageDialog(null, “没有找到您要的信息!”);

}

}

}

if (jcbb1.getSelectedIndex() == 2) { // 名称查询

if (tx6.getText().trim().equals(“”)) {

JOptionPane.showMessageDialog(null, “请输入正确的科室名称!”, “错误”, JOptionPane.ERROR_MESSAGE);

} else {

String deptName = tx6.getText();

String sql = “select * from Department where DeptName like '%” + deptName + “%'”;

databaseSearch(sql);

if (table.getRowCount() != 0) {

JOptionPane.showMessageDialog(null, “查询成功!”);

tx6.setText(“”);

} else {

JOptionPane.showMessageDialog(null, “没有找到您要的信息!”);

}

}

}

} catch (Exception e1) {

e1.printStackTrace();

}

}

if (e.getSource() == delete) { // 删除操作

try {

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

Statement stmt = con.createStatement(); // 创建一个数据库会话对象

int selectCount = table.getSelectedRowCount();

if (selectCount == 0) {

JOptionPane.showMessageDialog(null, “请选择您要删除的信息!”);

} else if (selectCount == 1) {

int ok = JOptionPane.showConfirmDialog(null, “是否删除该科室信息?”, “确定”, JOptionPane.YES_NO_OPTION,

JOptionPane.INFORMATION_MESSAGE);

if (ok == JOptionPane.YES_OPTION) {

int row = table.getSelectedRow();

String deptNo = (String) table.getValueAt(row, 0);

String sql = “delete from Department where DeptNo='” + deptNo + “'”;

stmt.executeUpdate(sql);

dtm.removeRow(row);

JOptionPane.showMessageDialog(null, “删除成功!”);

}

} else {

int ok = JOptionPane.showConfirmDialog(null, “是否删除所选” + selectCount + “个科室信息?”, “确定”,

JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);

if (ok == JOptionPane.YES_OPTION) {

for (int i = 1; i <= selectCount; i++) {

int row1 = table.getSelectedRow();

String deptNo = (String) table.getValueAt(row1, 0);

String sql = “delete from Department where DeptNo='” + deptNo + “'”;

stmt.executeUpdate(sql);

dtm.removeRow(row1);

}

JOptionPane.showMessageDialog(null, “删除成功!”);

}

}

} catch (Exception e1) {

e1.printStackTrace();

}

}

// 修改操作设置

if (e.getSource() == modify) {

if (table.getSelectedRowCount() != 1) {

JOptionPane.showMessageDialog(null, “请选择一项科室信息进行修改!”, “错误”, JOptionPane.ERROR_MESSAGE);

} else {

try {

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

Statement stmt1 = con.createStatement(); // 创建一个数据库会话对象

int row = table.getSelectedRow();

String value0 = (String) table.getValueAt(row, 0);

String value1 = (String) table.getValueAt(row, 1);

String value2 = (String) table.getValueAt(row, 2);

String value3 = (String) table.getValueAt(row, 3);

DepartmentModify dig = new DepartmentModify();

dig.tx1.setText(value0);

dig.tx2.setText(value1);

dig.tx3.setText(value2);

dig.tx4.setText(value3);

dig.s.setVisible(true);

} catch (Exception e1) {

e1.printStackTrace();

}

}

}

}

// 把数据库数据传入表格

public void databaseSearch(String SQL) {

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

ResultSet rs;

try {

int rowcount = dtm.getRowCount() - 1;

if (rowcount != -1) {

for (int i1 = rowcount; i1 >= 0; i1–) {

dtm.removeRow(i1);

}

dtm.setRowCount(0);

}

Statement stmt = con.createStatement();

rs = stmt.executeQuery(SQL);

String[] data = new String[4];

while (rs.next()) {

for (int j = 1; j <= 4; j++) {

data[j - 1] = rs.getString(j);

}

dtm.addRow(data);

}

con.close();

} catch (Exception err) {

String error = err.getMessage();

JOptionPane.showMessageDialog(null, error);

err.printStackTrace();

} finally {

dbUtil.close();

}

}

// 科室信息修改操作对话框设置++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

class DepartmentModify implements ActionListener {

public JDialog s = new JDialog();

public JLabel la1, la2, la3, la4;

public JTextField tx1, tx2, tx3, tx4, txWait;

public JButton confirm, cancel;

public Font laFont = new Font(“宋体”, Font.BOLD, 15);

public int row = table.getSelectedRow();

public DepartmentModify() {

ImageIcon background = new ImageIcon(“picture/right_bg.jpg”);

JLabel label = new JLabel(background);

s.setModal(true);

s.setSize(500, 250);

s.setResizable(false);

s.setLocationRelativeTo(null);

s.setLayout(null);

la1 = new JLabel(“科室编号:”);

la2 = new JLabel(“科室名称:”);

la3 = new JLabel(“科室主任:”);

la4 = new JLabel(“科室电话:”);

tx1 = new JTextField();

tx2 = new JTextField();

tx3 = new JTextField();

tx4 = new JTextField();

txWait = new JTextField();

confirm = new JButton(“确定”);

cancel = new JButton(“取消”);

tx1.setEditable(false);

la1.setBounds(30, 30, 100, 40);

la1.setFont(laFont);

la2.setBounds(250, 30, 100, 40);

la2.setFont(laFont);

la3.setBounds(30, 90, 100, 40);

la3.setFont(laFont);

la4.setBounds(250, 90, 100, 40);

la4.setFont(laFont);

tx1.setBounds(110, 35, 120, 30);

tx1.setFont(laFont);

tx2.setBounds(330, 35, 120, 30);

tx2.setFont(laFont);

tx3.setBounds(110, 95, 120, 30);

tx3.setFont(laFont);

tx4.setBounds(330, 95, 120, 30);

tx4.setFont(laFont);

confirm.setBounds(110, 150, 100, 40);

cancel.setBounds(330, 150, 100, 40);

s.add(la1);

s.add(la2);

s.add(la3);

s.add(la4);

s.add(tx1);

s.add(tx2);

s.add(tx3);

s.add(tx4);

s.add(confirm);

s.add(cancel);

confirm.addActionListener(this);

cancel.addActionListener(this);

s.add(label);

label.setBounds(0, 0, 500, 250);

}

public void actionPerformed(ActionEvent e) {

if (e.getSource() == cancel) {

s.dispose();

}

if (e.getSource() == confirm) {

int ok = JOptionPane.showConfirmDialog(null, “是否修改该科室信息?”, “确定”, JOptionPane.YES_NO_OPTION,

JOptionPane.INFORMATION_MESSAGE);

if (ok == JOptionPane.YES_OPTION) {

try {

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

Statement stmt = con.createStatement(); // 创建一个数据库会话对象

// 输入信息不能为空

if (tx2.getText().equals(“”) || tx4.getText().equals(“”)) {

JOptionPane.showMessageDialog(null, “请输入完整的科室信息!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

// 编号为3位数字

else if (tx1.getText().length() > 3 || pattern.matcher(tx1.getText()).matches() == false) {

JOptionPane.showMessageDialog(null, “请输入正确的3位数科室编号!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

// 名字长度不能超过20个字符

else if (tx2.getText().length() > 10 || tx3.getText().length() > 10) {

JOptionPane.showMessageDialog(null, “名字长度不能超过10个汉字!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

// 电话号码为8位数字

else if (pattern.matcher(tx4.getText()).matches() == false || tx4.getText().length() != 8) {

JOptionPane.showMessageDialog(null, “请输入正确的8位数电话号码!”, “错误”, JOptionPane.ERROR_MESSAGE);

}

else {

int row2 = table.getSelectedRow();

String sql = “update Department set DeptName='” + tx2.getText().trim() + “‘,DrName=’”

  • tx3.getText().trim() + “‘,DeptPhone=’” + tx4.getText().trim() + “‘where DeptNo=’”

  • tx1.getText().trim() + "’ ";

stmt.executeUpdate(sql);

String[] data = new String[] { tx1.getText(), tx2.getText(), tx3.getText(), tx4.getText() };

dtm.removeRow(row2);

dtm.insertRow(row2, data);

JOptionPane.showMessageDialog(null, “修改成功”);

s.dispose();

}

} catch (Exception e1) {

e1.printStackTrace();

}

}

}

}

}

}

DoctorInput.java


package com.sjsq;

import java.awt.Color;

import java.awt.Component;

import java.awt.Font;

import java.awt.Rectangle;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.regex.Pattern;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFrame;

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.border.TitledBorder;

import javax.swing.table.DefaultTableCellRenderer;

import javax.swing.table.DefaultTableModel;

public class DoctorInput extends JFrame implements ActionListener {

JPanel doctorInput = new JPanel();

private JLabel inputTitle = new JLabel(“医生档案信息录入”);

private JLabel la1, la2, la3, la4, la5, la6, la7, la8, la9, la10, la11;

private JTextField tx1, tx2, tx8, tx10;

private JPasswordField tx11;

public JButton save, clean;

private JComboBox sex, age, position, educated, department;

private String str3[], str4[], str5[], str6[], str7[];

private final String columnNames[];

private JTextField showDate1 = new JTextField(“单击选择日期”);

private Timedate dateChooser1 = Timedate.getInstance(“yyyy-MM-dd”);

private Font laFont = new Font(“宋体”, Font.BOLD, 15);

private JScrollPane JScrollPane1 = new JScrollPane();

private static JTable table;

private static DefaultTableModel dtm;

private java.sql.Connection con = null;

private Pattern pattern = Pattern.compile(“[0-9]*”);

public DoctorInput() {

// 医生信息录入界面设置

doctorInput.setLayout(null);

ImageIcon background = new ImageIcon(“picture/right_bg.jpg”); // 背景图片

JLabel label = new JLabel(background);

inputTitle.setFont(new Font(“宋体”, Font.BOLD, 50));

inputTitle.setBounds(60, 10, 1000, 50);

doctorInput.add(inputTitle);

// 录入操作面板设置

final JPanel panel = new JPanel();

panel.setLayout(null);

panel.setBorder(new TitledBorder(null, “录入操作”, TitledBorder.DEFAULT_JUSTIFICATION,

TitledBorder.DEFAULT_POSITION, null, Color.red));

panel.setBounds(60, 310, 950, 200);

panel.setOpaque(false);

la1 = new JLabel(“医生编号:”); // 标签设置

la2 = new JLabel(“医生姓名:”);

la3 = new JLabel(“性别:”);

la4 = new JLabel(“年龄:”);

la5 = new JLabel(“职称:”);

la6 = new JLabel(“学历:”);

la7 = new JLabel(“所属科室:”);

la8 = new JLabel(“籍贯:”);

la9 = new JLabel(“入职日期:”);

la10 = new JLabel(“电话号码:”);

la11 = new JLabel(“系统密码:”);

la1.setBounds(30, 20, 100, 40);

la1.setFont(laFont);

la2.setBounds(300, 20, 100, 40);

la2.setFont(laFont);

la3.setBounds(570, 20, 100, 40);

la3.setFont(laFont);

la4.setBounds(750, 20, 100, 40);

la4.setFont(laFont);

la5.setBounds(30, 70, 100, 40);

la5.setFont(laFont);

la6.setBounds(210, 70, 100, 40);

la6.setFont(laFont);

la7.setBounds(390, 70, 100, 40);

la7.setFont(laFont);

la8.setBounds(640, 70, 100, 40);

la8.setFont(laFont);

la9.setBounds(30, 120, 100, 40);

la9.setFont(laFont);

la10.setBounds(300, 120, 100, 40);

la10.setFont(laFont);

la11.setBounds(570, 120, 100, 40);

la11.setFont(laFont);

tx1 = new JTextField();

tx1.setBounds(110, 25, 150, 30);

tx1.setFont(laFont);

tx2 = new JTextField();

tx2.setBounds(380, 25, 150, 30);

tx2.setFont(laFont);

tx8 = new JTextField();

tx8.setBounds(690, 75, 150, 30);

tx8.setFont(laFont);

tx10 = new JTextField();

tx10.setBounds(380, 125, 150, 30);

tx10.setFont(laFont);

tx11 = new JPasswordField();

tx11.setBounds(650, 125, 150, 30);

tx11.setFont(laFont);

save = new JButton(“保存”);

clean = new JButton(“清空”);

save.setBounds(630, 163, 150, 30);

clean.setBounds(780, 163, 150, 30);

// 性别下拉框设置

str3 = new String[] { “”, “男”, “女” };

sex = new JComboBox(str3);

sex.setBounds(620, 25, 100, 25);

sex.setFont(laFont);

// 年龄下拉框设置

str4 = new String[54];

str4[0] = “”;

for (int i = 1; i <= 53; i++) {

str4[i] = String.valueOf(i + 17);

}

age = new JComboBox(str4);

age.setBounds(800, 25, 100, 25);

age.setFont(laFont);

// 职称下拉框设置

str5 = new String[] { “”, “医师”, “主治医师”, “副主任医师”, “主任医师” };

position = new JComboBox(str5);

position.setBounds(80, 75, 100, 25);

position.setFont(laFont);

// 学历下拉框设置

str6 = new String[] { “”, “大专”, “本科”, “硕士”, “博士”, “博士后” };

educated = new JComboBox(str6);

educated.setBounds(260, 75, 100, 25);

educated.setFont(laFont);

// 所属科室下拉框设置

str7 = new String[] { “” };

department = new JComboBox(str7);

DBUtil dbUtil = new DBUtil();

try {

Connection con = dbUtil.getConnection();

Statement stmt = con.createStatement(); // 创建一个数据库会话对象

String sql = “select * from Department”;

ResultSet rs = stmt.executeQuery(sql);

while (rs.next()) {

department.addItem(rs.getString(“DeptName”));

}

stmt.close();

} catch (Exception e) {

e.printStackTrace();

}

department.setBounds(470, 75, 125, 25);

department.setFont(laFont);

// 入职时间设置

showDate1.setFont(new Font(“”, 1, 20));

dateChooser1.register(showDate1);

panel.add(showDate1);

showDate1.setBounds(110, 125, 150, 30);

// 表格设置

columnNames = new String[] { “医生编号”, “医生姓名”, “性别”, “年龄”, “职称”, “学历”, “所属科室”, “籍贯”, “入职日期”, “电话号码” };

defaultTableModel();

setTableColumnCenter();

setbgcolor();

JScrollPane1.setBounds(new Rectangle(60, 70, 935, 230));

doctorInput.add(JScrollPane1);

JScrollPane1.setViewportView(table); // 创建一个视口(如果有必要)并设置其视图

table.getTableHeader().setReorderingAllowed(false); // 列不可拖动

table.getTableHeader().setResizingAllowed(false); // 列宽不能改变

String sql = “select * from Doctor”;

databaseSearch(sql);

// 组件添加

panel.add(la1);

panel.add(la2);

panel.add(la3);

panel.add(la4);

panel.add(la5);

panel.add(la6);

panel.add(la7);

panel.add(la8);

panel.add(la9);

panel.add(la10);

panel.add(la11);

panel.add(tx1);

panel.add(tx2);

panel.add(sex);

panel.add(age);

panel.add(position);

panel.add(educated);

panel.add(department);

panel.add(tx8);

panel.add(tx10);

panel.add(tx11);

panel.add(save);

panel.add(clean);

// 添加监听器

save.addActionListener(this);

clean.addActionListener(this);

doctorInput.add(panel);

doctorInput.add(label); // 添加背景

label.setBounds(0, 0, 1100, 700);

}

// 数据库数据录入到表格中

private void databaseSearch(String sql) {

// TODO Auto-generated method stub

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

ResultSet rs;

try {

int rowcount = dtm.getRowCount() - 1;

if (rowcount != -1) {

for (int i1 = rowcount; i1 >= 0; i1–) {

dtm.removeRow(i1);

}

dtm.setRowCount(0);

}

Statement stmt = con.createStatement();

rs = stmt.executeQuery(sql);

String[] data = new String[11];

while (rs.next()) {

for (int j = 1; j <= 11; j++) {

data[j - 1] = rs.getString(j);

}

dtm.addRow(data);

}

con.close();

} catch (Exception err) {

String error = err.getMessage();

JOptionPane.showMessageDialog(null, error);

err.printStackTrace();

} finally {

dbUtil.close();

}

}

// 设置表格不可编辑

public void defaultTableModel() {

dtm = new DefaultTableModel(columnNames, 0);

table = new JTable(dtm) {

public boolean isCellEditable(int row, int column) {

return false;

}

};

}

// 设置表格内容居中显示

public void setTableColumnCenter() {

DefaultTableCellRenderer r = new DefaultTableCellRenderer();

r.setHorizontalAlignment(JLabel.CENTER);

table.setDefaultRenderer(Object.class, r);

}

// 设置表格隔行背景颜色不同

public static void setbgcolor() {

try {

DefaultTableCellRenderer tcr = new DefaultTableCellRenderer() {

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,

boolean hasFocus, int row, int column) {

if (row % 2 == 0)

setBackground(new Color(223, 220, 239)); // 设置奇数行底色

else if (row % 2 == 1)

setBackground(Color.white); // 设置偶数行底色

return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

}

};

for (int i = 0; i < table.getColumnCount(); i++) {

table.getColumn(table.getColumnName(i)).setCellRenderer(tcr);

}

} catch (Exception ex) {

ex.printStackTrace();

}

}

public void actionPerformed(ActionEvent e) {

if (e.getSource() == clean) {

tx1.setText(“”);

tx2.setText(“”);

tx8.setText(“”);

tx10.setText(“”);

tx11.setText(“”);

sex.setSelectedIndex(0);

age.setSelectedIndex(0);

position.setSelectedIndex(0);

educated.setSelectedIndex(0);

department.setSelectedIndex(0);

showDate1.setText(“单击选择日期”);

}

if (e.getSource() == save) {

if (tx1.getText().equals(“”) || tx2.getText().equals(“”) || tx8.getText().equals(“”)

|| tx10.getText().equals(“”) || tx11.getText().equals(“”) || sex.getSelectedIndex() == 0

|| age.getSelectedIndex() == 0 || position.getSelectedIndex() == 0

|| educated.getSelectedIndex() == 0 || department.getSelectedIndex() == 0

|| showDate1.getText().equals(“单击选择日期”)) {

JOptionPane.showMessageDialog(null, “请输完整的医生信息!”, “错误”, JOptionPane.ERROR_MESSAGE);

} else if (tx1.getText().length() != 4 || pattern.matcher(tx1.getText()).matches() == false) {

JOptionPane.showMessageDialog(null, “请输入4位数医生编号!”, “错误”, JOptionPane.ERROR_MESSAGE);

} else if (tx2.getText().length() > 10) {

JOptionPane.showMessageDialog(null, “名字长度不能超过10个汉字!”, “错误”, JOptionPane.ERROR_MESSAGE);

} else if (tx8.getText().length() > 10) {

JOptionPane.showMessageDialog(null, “籍贯长度不能超过10个汉字!”, “错误”, JOptionPane.ERROR_MESSAGE);

} else if (tx10.getText().length() != 11 || pattern.matcher(tx10.getText()).matches() == false) {

JOptionPane.showMessageDialog(null, “请输入11位数手机号码!”, “错误”, JOptionPane.ERROR_MESSAGE);

} else if (tx11.getText().length() < 6 || tx11.getText().length() > 8

|| pattern.matcher(tx11.getText()).matches() == false) {

JOptionPane.showMessageDialog(null, “请输入6-8位数字密码!”, “错误”, JOptionPane.ERROR_MESSAGE);

} else {

String DrId = tx1.getText();

try {

DBUtil dbUtil = new DBUtil();

Connection con = dbUtil.getConnection();

Statement stmt = con.createStatement(); // 创建一个数据库会话对象

ResultSet rs = stmt.executeQuery(“select * from Doctor where DrId='” + DrId + “'”); // SQL语句

if (rs.next()) {

JOptionPane.showMessageDialog(null, “该医生编号已存在,请重新输入!”, “错误”, JOptionPane.ERROR_MESSAGE);

rs.close();

} else {

int ok = JOptionPane.showConfirmDialog(null, “是否保存该医生信息?”, “确定”, JOptionPane.YES_NO_OPTION,

JOptionPane.INFORMATION_MESSAGE);

if (ok == JOptionPane.YES_OPTION) {

// 添加信息到数据库

String sql = “INSERT INTO Doctor(DrId,DrName,DrSex,DrAge,DrPos,DrEdu,DeptName,DrNative,DrDate,DrPhone,Password)VALUES(?,?,?,?,?,?,?,?,?,?,?)”;

PreparedStatement parepare = con.prepareStatement(sql);

parepare.setString(1, tx1.getText());

parepare.setString(2, tx2.getText());

parepare.setString(3, sex.getSelectedItem().toString());

parepare.setString(4, age.getSelectedItem().toString());

parepare.setString(5, position.getSelectedItem().toString());

parepare.setString(6, educated.getSelectedItem().toString());

parepare.setString(7, department.getSelectedItem().toString());

parepare.setString(8, tx8.getText());

parepare.setString(9, showDate1.getText());

parepare.setString(10, tx10.getText());

parepare.setString(11, tx11.getText());

parepare.executeUpdate();

String data[] = new String[] { tx1.getText(), tx2.getText(),

sex.getSelectedItem().toString(), age.getSelectedItem().toString(),

position.getSelectedItem().toString(), educated.getSelectedItem().toString(),

department.getSelectedItem().toString(), tx8.getText(), showDate1.getText(),

tx10.getText(), tx11.getText() };

dtm.addRow(data); // 在表格添加一行刚添加的数据

JOptionPane.showMessageDialog(null, “录入成功”);

tx1.setText(“”);

tx2.setText(“”);

tx8.setText(“”);

tx10.setText(“”);

tx11.setText(“”);

sex.setSelectedIndex(0);

age.setSelectedIndex(0);

position.setSelectedIndex(0);

educated.setSelectedIndex(0);

department.setSelectedIndex(0);

showDate1.setText(“单击选择日期”);

}

}

} catch (Exception e1) {

e1.printStackTrace();

}finally {

}

}

}

}

}

Drug.java


package com.sjsq;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.regex.Pattern;

import javax.swing.*;

import javax.swing.event.DocumentEvent;

import javax.swing.event.DocumentListener;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.TableColumn;

public class Drug extends JFrame implements ActionListener {

JPanel chufangInput = new JPanel();

private JButton button1, button2, button3, button4, button5, button6, button7, button8;

private JLabel inputTitle = new JLabel(“处方单录入”);

private JLabel la0, la1, la2, la3, la4, la5, la6, la7, la8;

private Font laFont = new Font(“宋体”, Font.BOLD, 15);

private Pattern pattern = Pattern.compile(“[0-9]*”);

private Connection con = null;

private JLabel t1, t2;

private static JTable table1, table2, table3, table4, table5;

private static DefaultTableModel dtm1, dtm2, dtm3, dtm4, dtm5;

private JScrollPane JScrollPane = new JScrollPane();

private JScrollPane JScrollPane1 = new JScrollPane();

private JScrollPane JScrollPane4 = new JScrollPane();

private JScrollPane JScrollPane5 = new JScrollPane();

private String columnNames1[] = { “编码”, “名称”, “单价”, “数量”, “计数单位”, “类别”, “病例编码” };

private String columnNames2[] = { “编码”, “名称”, “单价”, “计数单位”, “类别” };

private String columnNames3[] = { “病例编码”, “病人编号”, “病人姓名” };

private JTextField tx1, tx2, tx3, tx4, tx5;

private JComboBox box1, box2, box5;

public Drug() {

DBUtil dbUtil = new DBUtil();

chufangInput.setLayout(null);

dtm1 = new DefaultTableModel(columnNames1, 0) {// dtm2是项目收费表格模版

public boolean isCellEditable(int row, int column) {

if (column == 1 || column == 3)

return true;// 这个是可以编辑的列

// if(rowIndex!=0) return false;

return false;

}// 表格不允许被编辑 }

};

String fontSize1[] = { “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “10”, “12” };

table1 = new JTable(dtm1);// JScrollPane4 项目表

JScrollPane JScrollPane = new JScrollPane(table1);

TableColumn a1 = table1.getColumn(“名称”);

TableColumn a2 = table1.getColumn(“数量”);

JTextField box3 = new JTextField();

box2 = new JComboBox(fontSize1);

box3.getDocument().addDocumentListener(new DocumentListener() {

@Override

public void removeUpdate(DocumentEvent e) {

updata_combobox();

}

@Override

public void insertUpdate(DocumentEvent e) {

updata_combobox();

}

@Override

public void changedUpdate(DocumentEvent e) {

updata_combobox();

}

private void updata_combobox() {

String s1 = null;

s1 = box3.getText();

System.out.println(s1);

JScrollPane1.setVisible(true);

String sql = “select * from Price where PeName like '%” + s1 + “%'and PeClass=‘其他类’”;

databaseSearch1(sql, 5);

}

});

box3.setEditable(true);

DefaultCellEditor dce2 = new DefaultCellEditor(box3);

a1.setCellEditor(dce2);

box2.setEditable(true);

box2.setMaximumRowCount(5);

DefaultCellEditor dce3 = new DefaultCellEditor(box2);

a2.setCellEditor(dce3);

box2.addActionListener(this);

dtm2 = new DefaultTableModel(columnNames2, 0);// 项目明细表

table2 = new JTable(dtm2) {

public boolean isCellEditable(int row, int column) {

return false;

}// 表格不允许被编辑 }

};

String sql = “select * from Price where PeClass=‘其他类’”;

databaseSearch1(sql, 5);

JScrollPane1.setViewportView(table2);

chufangInput.add(JScrollPane1);

JScrollPane1.setBounds(70, 150, 400, 100);

JScrollPane1.setVisible(false);

// 设置用药表

dtm3 = new DefaultTableModel(columnNames1, 0) {// dtm3是药物收费表格模版

public boolean isCellEditable(int row, int column) {

if (column == 1 || column == 3)

return true;// 这个是可以编辑的列

// if(rowIndex!=0) return false;

return false;

}// 表格不允许被编辑 }

};

table3 = new JTable(dtm3);//

JScrollPane JScrollPane3 = new JScrollPane(table3);

TableColumn b1 = table3.getColumn(“名称”);

TableColumn b2 = table3.getColumn(“数量”);

JTextField box4 = new JTextField();

box5 = new JComboBox(fontSize1);

box4.getDocument().addDocumentListener(new DocumentListener() {

@Override

public void removeUpdate(DocumentEvent e) {

updata_combobox();

}

@Override

public void insertUpdate(DocumentEvent e) {

updata_combobox();

}

@Override

public void changedUpdate(DocumentEvent e) {

updata_combobox();

}

private void updata_combobox() {

String s1 = null;

s1 = box4.getText();

JScrollPane4.setVisible(true);

String sql1 = “select * from Price where PeName like '%” + s1 + “%’ and PeClass='诊断类’or PeName like '%”

  • s1 + “%’ and PeClass=‘药品类’”;

databaseSearch2(sql1, 5);

}

});

dtm4 = new DefaultTableModel(columnNames2, 0);// 药物明细表

table4 = new JTable(dtm4) {

public boolean isCellEditable(int row, int column) {

return false;

}// 表格不允许被编辑 }

};

String sql1 = “select * from Price where PeClass='诊断类’or PeClass=‘药品类’”;

databaseSearch2(sql1, 5);

JScrollPane4.setViewportView(table4);

chufangInput.add(JScrollPane4);

JScrollPane4.setBounds(550, 150, 400, 100);

JScrollPane4.setVisible(false);

box4.setEditable(true);

DefaultCellEditor dce1 = new DefaultCellEditor(box4);

b1.setCellEditor(dce1);

box2.setEditable(true);

box2.setMaximumRowCount(5);

DefaultCellEditor dce0 = new DefaultCellEditor(box5);

b2.setCellEditor(dce0);

dtm5 = new DefaultTableModel(columnNames3, 0);// 项目明细表

table5 = new JTable(dtm5) {

public boolean isCellEditable(int row, int column) {

return false;

}// 表格不允许被编辑 }

};

String sql2 = “select * from Medical_records where MrId not in(select MrId from DrugTable)”;

databaseSearch3(sql2, 3);

JScrollPane5.setViewportView(table5);

chufangInput.add(JScrollPane5);

JScrollPane5.setBounds(120, 100, 300, 100);

JScrollPane5.setVisible(false);

// 设置背景

ImageIcon background = new ImageIcon(“picture/right_bg.jpg”);

JLabel label = new JLabel(background);

inputTitle.setFont(new Font(“宋体”, Font.BOLD, 30));

inputTitle.setBounds(60, 10, 1000, 50);

chufangInput.add(inputTitle);

;

// 设置控件

la1 = new JLabel(“病例编号:”);

la2 = new JLabel(“病人编号:”);

la3 = new JLabel(“病人姓名:”);

t1 = new JLabel(“项目单”);

t2 = new JLabel(“药物单”);

tx1 = new JTextField();

tx2 = new JTextField();

tx3 = new JTextField();

button1 = new JButton(“增加”);

button2 = new JButton(“确定”);

button3 = new JButton(“修改”);

button4 = new JButton(“删除”);

button5 = new JButton(“增加”);

button6 = new JButton(“确定”);

button7 = new JButton(“修改”);

button8 = new JButton(“删除”);

button2.addActionListener(this);

button6.addActionListener(this);

// 给按钮添加监听事件

button1.addActionListener(new ActionListener() {// 添加事件

public void actionPerformed(ActionEvent e) {

String[] da1 = { “”, “” };

String[] rowValues = da1;

dtm1.addRow(rowValues); // 添加一行

button1.setEnabled(false);

}

});

button5.addActionListener(new ActionListener() {// 药物表添加事件

public void actionPerformed(ActionEvent e) {

String[] da = { “”, “” };

String[] rowValues = da;

dtm3.addRow(rowValues); // 添加一行

button5.setEnabled(false);

}

});

button4.addMouseListener(new MouseAdapter() { // 删除按钮实现删除记录的功能

public void mouseClicked(MouseEvent e) {

int row = table1.getSelectedRow();// 这句选择要删除的行

Connection con;

con = dbUtil.getConnection();

Statement stmt;

String val = (String) table1.getValueAt(row, 6);

String val1 = (String) table1.getValueAt(row, 0);

String sql = “delete from DrugTable where MrId='” + val + “‘and PeNo=’” + val1 + “'”;

try {

stmt = con.createStatement();

stmt.executeUpdate(sql);

button1.setEnabled(true);

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

if (row != -1) { // 这句判断是否有选中的行

dtm1.removeRow(row);

} // 这句删除指定行

}

});

button8.addMouseListener(new MouseAdapter() { // 删除按钮实现删除记录的功能

public void mouseClicked(MouseEvent e) {

int row = table3.getSelectedRow();// 这句选择要删除的行

Connection con;

con = dbUtil.getConnection();

Statement stmt;

String val = (String) table3.getValueAt(row, 6);

String val1 = (String) table3.getValueAt(row, 0);

String sql = “delete from DrugTable where MrId='” + val1 + “‘and PeNo=’” + val + “'”;

try {

stmt = con.createStatement();

stmt.executeUpdate(sql);

button5.setEnabled(true);

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

if (row != -1) { // 这句判断是否有选中的行

dtm3.removeRow(row);

} // 这句删除指定行

}

});

box3.addMouseListener(new MouseAdapter() {// 设置TABLE双击鼠标事件

public void mouseClicked(MouseEvent e) {

if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键

JScrollPane1.setVisible(true);

}

});

box4.addMouseListener(new MouseAdapter() {// 设置TABLE双击鼠标事件

public void mouseClicked(MouseEvent e) {

if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键

JScrollPane4.setVisible(true);

}

});

table2.addMouseListener(new MouseAdapter() {// 设置TABLE双击鼠标事件

public void mouseClicked(MouseEvent e) {

if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键

if (e.getClickCount() == 2) {

String xingming = tx1.getText();

int o = table2.getSelectedRow();

int row = table1.getSelectedRow();

String ao = (String) table2.getValueAt(o, 1);

String bo = (String) table2.getValueAt(o, 0);

String co = (String) table2.getValueAt(o, 2);

String do1 = (String) table2.getValueAt(o, 3);

String eo = (String) table2.getValueAt(o, 4);

box3.setText(ao);

table1.setValueAt(bo, row, 0);

table1.setValueAt(do1, row, 4);

table1.setValueAt(co, row, 2);

table1.setValueAt(eo, row, 5);

table1.setValueAt(xingming, row, 6);

JScrollPane1.setVisible(false);

}

}

});

tx1.addMouseListener(new MouseAdapter() {// 设置TABLE双击鼠标事件

public void mouseClicked(MouseEvent e) {

if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键

JScrollPane5.setVisible(true);

}

});

tx1.getDocument().addDocumentListener(new DocumentListener() {

@Override

public void removeUpdate(DocumentEvent e) {

updata_combobox();

}

@Override

public void insertUpdate(DocumentEvent e) {

updata_combobox();

}

@Override

public void changedUpdate(DocumentEvent e) {

updata_combobox();

}

private void updata_combobox() {

String s1 = null;

s1 = tx1.getText();

JScrollPane5.setVisible(true);

String sql2 = “select * from Medical_records where MrId like '%” + s1

  • “%'and MrId not in(select MrId from DrugTable)”;

databaseSearch3(sql2, 3);

}

});

table4.addMouseListener(new MouseAdapter() {// 设置TABLE双击鼠标事件

public void mouseClicked(MouseEvent e) {

if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键

if (e.getClickCount() == 2) {

String xingming = tx1.getText();

int o = table4.getSelectedRow();

int row = table3.getSelectedRow();

String ao = (String) table4.getValueAt(o, 1);

String bo = (String) table4.getValueAt(o, 0);

String co = (String) table4.getValueAt(o, 2);

String do1 = (String) table4.getValueAt(o, 3);

String eo = (String) table4.getValueAt(o, 4);

box4.setText(ao);

table3.setValueAt(bo, row, 0);

table3.setValueAt(do1, row, 4);

table3.setValueAt(co, row, 2);

table3.setValueAt(eo, row, 5);

table3.setValueAt(xingming, row, 6);

JScrollPane4.setVisible(false);

}

}

});

table5.addMouseListener(new MouseAdapter() {// 设置TABLE双击鼠标事件

public void mouseClicked(MouseEvent e) {

if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键

if (e.getClickCount() == 2) {

int o = table5.getSelectedRow();

String ao = (String) table5.getValueAt(o, 1);

String bo = (String) table5.getValueAt(o, 0);

String co = (String) table5.getValueAt(o, 2);

tx1.setText(bo);

tx2.setText(ao);

tx3.setText(co);

JScrollPane5.setVisible(false);

}

}

});

// 添加控件到面板以及设置控件位置

chufangInput.add(la1);

chufangInput.add(la2);

chufangInput.add(la3);

chufangInput.add(tx1);

chufangInput.add(tx2);

chufangInput.add(tx3);

chufangInput.add(button1);

chufangInput.add(button2);

chufangInput.add(button3);

chufangInput.add(button4);

chufangInput.add(button5);

chufangInput.add(button6);

chufangInput.add(button7);

chufangInput.add(button8);

chufangInput.add(t1);

chufangInput.add(t2);

button1.setBounds(460, 250, 70, 50);

button2.setBounds(460, 300, 70, 50);

button3.setBounds(460, 350, 70, 50);

button4.setBounds(460, 400, 70, 50);

button5.setBounds(950, 250, 70, 50);

button6.setBounds(950, 300, 70, 50);

button7.setBounds(950, 350, 70, 50);

button8.setBounds(950, 400, 70, 50);

t1.setBounds(50, 200, 100, 50);

t2.setBounds(520, 200, 100, 50);

la1.setBounds(50, 70, 100, 40);

la2.setBounds(300, 70, 100, 40);

la3.setBounds(500, 70, 100, 40);

tx1.setBounds(120, 75, 100, 30);

tx2.setBounds(370, 75, 100, 30);

tx3.setBounds(570, 75, 100, 30);

chufangInput.add(JScrollPane);

JScrollPane.setBounds(60, 250, 400, 200);

chufangInput.add(JScrollPane3);

JScrollPane3.setBounds(550, 250, 400, 200);

chufangInput.add(label);

label.setBounds(0, 0, 1100, 700);

}

private void databaseSearch3(String sql2, int i) {

// TODO Auto-generated method stub

Connection con;

DBUtil dbUtil = new DBUtil();

con = dbUtil.getConnection();

ResultSet rs;

try {

int rowcount = dtm5.getRowCount() - 1;

if (rowcount != -1) {

for (int i1 = rowcount; i1 >= 0; i1–) {

dtm5.removeRow(i1); // 删除Jtable中的所有行

}

dtm5.setRowCount(0); // 将Jtable中的行数设为零

}

Statement stmt = con.createStatement();

rs = stmt.executeQuery(sql2);

String[] data = new String[3];

while (rs.next()) {

for (int j = 1; j <= 3; j++) {

data[j - 1] = rs.getString(j); // 取出数据库中的数组装载到数组中

}

dtm5.addRow(data); // 在Jtabl

}

con.close();

// 设置表格隔行背景色(隔行背景色不同)

} catch (Exception err) {

}

}

private void databaseSearch2(String sql1, int i) {

// TODO Auto-generated method stub

DBUtil dbUtil = new DBUtil();

con = dbUtil.getConnection();

ResultSet rs;

try {

int rowcount = dtm4.getRowCount() - 1;

if (rowcount != -1) {

for (int i1 = rowcount; i1 >= 0; i1–) {

dtm4.removeRow(i1); // 删除Jtable中的所有行

}

dtm4.setRowCount(0); // 将Jtable中的行数设为零

}

Statement stmt = con.createStatement();

rs = stmt.executeQuery(sql1);

String[] data = new String[5];

while (rs.next()) {

for (int j = 1; j <= 5; j++) {

data[j - 1] = rs.getString(j); // 取出数据库中的数组装载到数组中

}

dtm4.addRow(data); // 在Jtabl

}

con.close();

// 设置表格隔行背景色(隔行背景色不同)

} catch (Exception err) {

}

}

private void databaseSearch1(String sql, int i) {

// TODO Auto-generated method stub

DBUtil dbUtil = new DBUtil();

con = dbUtil.getConnection();

ResultSet rs;

try {

int rowcount = dtm2.getRowCount() - 1;

if (rowcount != -1) {

for (int i1 = rowcount; i1 >= 0; i1–) {

dtm2.removeRow(i1); // 删除Jtable中的所有行

}

dtm2.setRowCount(0); // 将Jtable中的行数设为零

}

Statement stmt = con.createStatement();

rs = stmt.executeQuery(sql);

String[] data = new String[5];

while (rs.next()) {

for (int j = 1; j <= 5; j++) {

data[j - 1] = rs.getString(j); // 取出数据库中的数组装载到数组中

}

dtm2.addRow(data); // 在Jtabl

}

con.close();

// 设置表格隔行背景色(隔行背景色不同)

} catch (Exception err) {

}

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if (e.getSource() == button2) {

try {

String s = (String) box2.getSelectedItem();

int i = Integer.valueOf(s).intValue();

DBUtil dbUtil = new DBUtil();

Connection con;

con = dbUtil.getConnection();

int row = table1.getSelectedRow();

String sql = “INSERT INTO DrugTable(PeNo,PeName,PePrice,PeNumber,PeUnit,PeClass,MrId)VALUES(?,?,?,?,?,?,?)”;

PreparedStatement parepare = con.prepareStatement(sql);

parepare.setString(1, (String) table1.getValueAt(row, 0));

parepare.setString(2, (String) table1.getValueAt(row, 1));

parepare.setString(3, (String) table1.getValueAt(row, 2));

parepare.setString(4, (String) table1.getValueAt(row, 3));

parepare.setString(5, (String) table1.getValueAt(row, 4));

parepare.setString(6, (String) table1.getValueAt(row, 5));

parepare.setString(7, (String) table1.getValueAt(row, 6));

String w = (String) table1.getValueAt(row, 3);

String w1 = (String) table1.getValueAt(row, 1);

if (table1.getValueAt(row, 0).equals(“”)) {

JOptionPane.showMessageDialog(null, “请输入完整信息”, “错误”, JOptionPane.INFORMATION_MESSAGE);

} else if (w1 == “”) {

JOptionPane.showMessageDialog(null, “请输入药物名称”, “错误”, JOptionPane.INFORMATION_MESSAGE);

} else if (i <= 0 || w == null) {

JOptionPane.showMessageDialog(null, “数量不能为空或者小于0”, “错误”, JOptionPane.INFORMATION_MESSAGE);

} else {

parepare.executeUpdate();

JOptionPane.showMessageDialog(null, “录入成功”, “录入成功”, JOptionPane.INFORMATION_MESSAGE);

button1.setEnabled(true);

}

} catch (Exception et) {

et.printStackTrace();

}

}

else if (e.getSource() == button6) {

try {

String s = (String) box5.getSelectedItem();

int i = Integer.valueOf(s).intValue();

DBUtil dbUtil = new DBUtil();

Connection con;

con = dbUtil.getConnection();

int row = table3.getSelectedRow();

String sql = “INSERT INTO DrugTable(PeNo,PeName,PePrice,PeNumber,PeUnit,PeClass,MrId)VALUES(?,?,?,?,?,?,?)”;

PreparedStatement parepare = con.prepareStatement(sql);

parepare.setString(1, (String) table3.getValueAt(row, 0));

parepare.setString(2, (String) table3.getValueAt(row, 1));

parepare.setString(3, (String) table3.getValueAt(row, 2));

parepare.setString(4, (String) table3.getValueAt(row, 3));

parepare.setString(5, (String) table3.getValueAt(row, 4));

parepare.setString(6, (String) table3.getValueAt(row, 5));

parepare.setString(7, (String) table3.getValueAt(row, 6));

String w = (String) table3.getValueAt(row, 3);

String w1 = (String) table3.getValueAt(row, 1);

if (w1 == “”) {

JOptionPane.showMessageDialog(null, “请输入药物名称”, “错误”, JOptionPane.INFORMATION_MESSAGE);

} else if (i <= 0 || w == null) {

JOptionPane.showMessageDialog(null, “数量不能为空或者小于0”, “错误”, JOptionPane.INFORMATION_MESSAGE);

} else {

parepare.executeUpdate();

JOptionPane.showMessageDialog(null, “录入成功”, “录入成功”, JOptionPane.INFORMATION_MESSAGE);

button5.setEnabled(true);

}

} catch (Exception et) {

et.printStackTrace();

}

}

}

}

JIUYIModify.java


package com.sjsq;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Vector;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTable;

import javax.swing.JTextField;

import javax.swing.table.DefaultTableModel;

public class JIUYIModify extends JFrame implements ActionListener {

private static final String KeyValue = null;

public JLabel la0, la1, la2, la3, la4, la5, la6, la7, la8, la9;

public JTextField t1, t2, t3, t4, t5, t6, t7, t8, t9;

public JButton button;

Font f2 = new Font(“隶书”, Font.BOLD, 25);

public JComboBox jcbb2, comboBox, jcombobox1;

public java.sql.Connection con = null;

DBUtil dbUtil = new DBUtil();

JIUYIModify() {

JPanel panel2 = new JPanel();

ImageIcon ic; // 按钮图片

ic = new ImageIcon(“picture/right_bg.jpg”);

JLabel label = new JLabel(ic);// 把背景图片显示在一个标签里面

panel2.setLayout(null);

button = new JButton(“保存”);

la0 = new JLabel(“修改就医档案”);

la1 = new JLabel(“就医档案编号:”);

la2 = new JLabel(“病人编号 :”);

la3 = new JLabel(“病人姓名 :”);

la4 = new JLabel(“录入时间 :”);

la5 = new JLabel(“医生编号 :”);

la6 = new JLabel(“医生姓名 :”);

la7 = new JLabel(“就医科室 :”);

la8 = new JLabel(“病因 :”);

la9 = new JLabel(“”);

t1 = new JTextField();

t2 = new JTextField();

t3 = new JTextField();

t4 = new JTextField();

t5 = new JTextField();

t6 = new JTextField();

t7 = new JTextField();

t8 = new JTextField();

t1.setBounds(90, 150, 100, 40);

t1.setEditable(false);

t2.setBounds(290, 150, 100, 40);

t3.setBounds(90, 200, 100, 40);

t4.setBounds(90, 250, 100, 40);

t5.setBounds(290, 250, 80, 40);

t6.setBounds(90, 300, 120, 40);

t7.setBounds(290, 300, 120, 40);

t8.setBounds(290, 200, 120, 40);

t3.setEditable(false);

t4.setEditable(false);

t5.setEditable(false);

t6.setEditable(false);

t2.setEditable(false);

la0.setBounds(10, 10, 200, 50);

la0.setFont(f2);

la1.setBounds(20, 150, 100, 50);

la2.setBounds(220, 150, 100, 50);

la3.setBounds(20, 200, 100, 50);

la4.setBounds(220, 200, 100, 50);

la5.setBounds(20, 250, 100, 50);

la6.setBounds(220, 250, 100, 50);

la7.setBounds(20, 300, 100, 50);

la8.setBounds(220, 300, 100, 50);

la9.setBounds(20, 350, 100, 50);

Vector model1 = new Vector();

String locationid1 = “”;

String locationname1 = “”;

String locationdept1 = “”;

try {

con = dbUtil.getConnection();

Statement st = con.createStatement();

String sql = “select DrId, DrName,DeptName from Doctor”;

ResultSet rss = st.executeQuery(sql);

while (rss.next()) {

locationid1 = rss.getString(“DrName”);

locationname1 = rss.getString(“DrId”);

locationdept1 = rss.getString(“DeptName”);

KeyValue Itemlocation1 = new KeyValue(locationname1, locationid1, locationdept1);

model1.addElement(Itemlocation1);

}

} catch (SQLException e) {

e.printStackTrace();

}

jcbb2 = new JComboBox(model1);

jcbb2.addActionListener(this);

jcbb2.setBounds(290, 250, 100, 40);

panel2.add(jcbb2);

panel2.add(button);

button.setBounds(350, 400, 80, 50);

button.addActionListener(this);

label.setBounds(0, 0, 500, 500);

panel2.add(la0);

panel2.add(la1);

panel2.add(la2);

panel2.add(la3);

panel2.add(la4);

panel2.add(la5);

panel2.add(la6);

panel2.add(la7);

panel2.add(la8);

panel2.add(la9);

panel2.add(t1);

panel2.add(t2);

panel2.add(t3);

panel2.add(t4);

panel2.add(t5);

panel2.add(t6);

panel2.add(t7);

panel2.add(t8);

panel2.add(label);

this.add(panel2);

this.setSize(450, 500); // 设置窗口大小

this.setResizable(false); // 设置不可调整窗口大小

this.setLocationRelativeTo(null);

this.setVisible(true);

}

public void openDialog(JTable table, DefaultTableModel dtm) {

// TODO Auto-generated method stub

int rown;

int coln;

rown = table.getSelectedRow();

coln = table.getSelectedColumn();

String value0 = (String) table.getValueAt(rown, 0);

String value1 = (String) table.getValueAt(rown, 1);

String value2 = (String) table.getValueAt(rown, 2);

String value3 = (String) table.getValueAt(rown, 3);

String value4 = (String) table.getValueAt(rown, 4);

String value5 = (String) table.getValueAt(rown, 5);

String value6 = (String) table.getValueAt(rown, 6);

String value7 = (String) table.getValueAt(rown, 7);

t1.setText(value0);

t2.setText(value1);

t3.setText(value2);

t4.setText(value4);

t5.setText(value5);

t6.setText(value6);

t7.setText(value7);

t8.setText(value3);

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

Object aa = jcbb2.getSelectedItem();

String se = aa.toString();

Connection con;

con = dbUtil.getConnection();

Statement stmt;

String sql = “update Medical_records set PaId='” + t2.getText().trim() + “‘,PaName=’”

  • t3.getText().trim() + “‘,MrDate=’” + t8.getText().trim() + “‘,DrId=’” + t4.getText().trim()

  • “‘,DrName=’” + jcbb2.getSelectedItem().toString() + “‘,DeptName=’” + t6.getText().trim()

  • “‘,SickCause=’” + t7.getText().trim() + “’ where MrId='” + t1.getText().trim() + “'”;

try {

stmt = con.createStatement();

stmt.executeUpdate(sql);

JOptionPane.showMessageDialog(null, “修改成功”, “修改成功”, JOptionPane.INFORMATION_MESSAGE, null);

int row2 = table.getSelectedRow();

String[] xiugai = new String[] { t1.getText(), t2.getText(), t3.getText(), t8.getText(),

t4.getText(), jcbb2.getSelectedItem().toString(), t6.getText(), t7.getText() };

dtm.removeRow(row2);

dtm.insertRow(row2, xiugai);

dtm.fireTableDataChanged();

dispose();

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

});

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if (jcbb2 == e.getSource()) {

KeyValue item1 = (KeyValue) jcbb2.getSelectedItem();

String a = item1.getId();

String b = item1.getdept();

t6.setText(b);

t4.setText(a);

}

}

class KeyValue {

public String id;

public String name;

public String dept;

public KeyValue(String id, String name, String dept) {

this.id = id;

this.name = name;

this.dept = dept;

}

public KeyValue(Object selectedItem) {

// TODO Auto-generated constructor stub

}

public String getId() {

return id;

}

public String getName() {

return name;

}

public String getdept() {

return dept;

}

public String toString() {

return name;

}

}

}

JIUYIModifyQuery1.java


package com.sjsq;

import java.awt.Color;

import java.awt.Component;

import java.awt.Font;

import java.awt.Rectangle;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import javax.swing.*;

import javax.swing.border.TitledBorder;

import javax.swing.table.DefaultTableCellRenderer;

import javax.swing.table.DefaultTableModel;

public class JIUYIModifyQuery1 extends JFrame implements ActionListener {

public JLabel la1, la2, la3, la4, la5, la6, la7, la8, la9;

public JTextField tx1, tx2, tx3, tx4, tx5, tx6, tx7;

public static DefaultTableModel dtm;

Font f2 = new Font(“隶书”, Font.BOLD, 30);

Font f1 = new Font(“草书”, Font.CENTER_BASELINE, 30);

public static JTable table;

String o;

private JComboBox jcbb1;

private JScrollPane JScrollPane = new JScrollPane();

public JPanel panel = new JPanel();

JButton button1 = new JButton(“查询”);

JButton button2 = new JButton(“修改”);

JButton button3 = new JButton(“删除”);

JButton button4 = new JButton(“诊疗明细操作”);

JButton button5 = new JButton(“用药明细操作”);

DBUtil dbUtil = new DBUtil();

JIUYIModifyQuery1(String Stitle) {

super(Stitle);

panel.setLayout(null);

this.add(panel);

ImageIcon ic; // 按钮图片

ic = new ImageIcon(“picture/right_bg.jpg”);

JLabel label = new JLabel(ic);// 把背景图片显示在一个标签里面

panel.add(label);

String columnNames[] = { “就医档案编号”, “病人编号”, “病人姓名”, “就医档案录入时间”, “医生编号”, “医生姓名”, “所属科室”, “病因” };

dtm = new DefaultTableModel(columnNames, 0) {

public boolean isCellEditable(int rowIndex, int columnIndex) {

return false;

}

};

table = new JTable(dtm);

JScrollPane.setViewportView(table);

JScrollPane.setBounds(new Rectangle(40, 60, 870, 250));

String SQL = “select * from Medical_records”;

databaseSearch(SQL, 8);

//

la5 = new JLabel(“病例编号:”);

la6 = new JLabel(“病人姓名:”);

la7 = new JLabel(“就医档案综合操作”);

la8 = new JLabel(“病人人数统计:”);

la9 = new JLabel(“人”);

la7.setFont(f2);

la8.setFont(f1);

la9.setFont(f1);

tx5 = new JTextField();

tx6 = new JTextField();

tx7 = new JTextField();

tx7.setFont(f1);

button2.setBounds(400, 400, 100, 50);

button3.setBounds(600, 400, 100, 50);

button4.setBounds(910, 60, 100, 100);

button5.setBounds(910, 200, 100, 100);

la7.setBounds(40, 0, 300, 50);

la8.setBounds(800, 350, 250, 50);

la9.setBounds(870, 395, 50, 50);

tx7.setBounds(800, 400, 60, 35);

button4.addActionListener(this);

button5.addActionListener(this);

button2.addActionListener(this);

panel.add(button4);

panel.add(button3);

panel.add(button2);

panel.add(button5);

panel.add(JScrollPane);

panel.add(la7);

panel.add(tx7);

panel.add(la8);

panel.add(la9);

tx7.setEditable(false);

// 设置表格隔行颜色

setbgcolor();

final JPanel panel1 = new JPanel();

panel1.setLayout(null);

panel1.setBackground(Color.YELLOW);

panel1.setBorder(new TitledBorder(null, “查询操作”, TitledBorder.DEFAULT_JUSTIFICATION,

TitledBorder.DEFAULT_POSITION, null, null));

panel1.setBounds(50, 350, 300, 150);

panel.add(panel1);

button1.setBounds(220, 80, 60, 40);

panel1.add(button1);

button1.setBackground(Color.white);

la5.setBounds(20, 73, 80, 50);

la6.setBounds(20, 73, 80, 50);

la5.setVisible(false);

tx6.setVisible(false);

la6.setVisible(false);

tx5.setVisible(false);

panel1.add(la5);

panel1.add(la6);

tx5.setBounds(90, 80, 120, 35);

panel1.add(tx5);

tx6.setBounds(90, 80, 120, 35);

panel1.add(tx6);

Connection con;

con = dbUtil.getConnection();

ResultSet rs;

try {

String sql1 = “select Count(*) from Medical_records”;

Statement stmt = con.createStatement();

rs = stmt.executeQuery(sql1);

while (rs.next()) {

o = rs.getString(1);

}

tx7.setText(o);

} catch (Exception r) {

r.printStackTrace();

}

jcbb1 = new JComboBox();

jcbb1.addActionListener(new ActionListener() {// 下拉框添加事件,用于显示相应的查询文本框,以及标签

public void actionPerformed(final ActionEvent e) {

Object SelectName = jcbb1.getSelectedItem();

String selectNamecontent = SelectName.toString();

if (selectNamecontent.equals(“请选择查询种类”)) {

la5.setVisible(false);

la6.setVisible(false);

tx5.setVisible(false);

tx6.setVisible(false);

System.out.println(“什么也不做”);

return;

} else if (selectNamecontent.equals(“病例编号”)) {

la5.setVisible(true);

tx5.setVisible(true);

tx5.setText(“”);

la6.setVisible(false);

tx6.setVisible(false);

return;

} else if (selectNamecontent.equals(“病人姓名”)) {

tx5.setVisible(false);

la5.setVisible(false);

tx6.setVisible(true);

la6.setVisible(true);

tx6.setText(“”);

return;

}

// ++++++++++++++++++++++++++++++++++++++++++++++++++

}

});

jcbb1.setModel(new DefaultComboBoxModel(new String[] { “请选择查询种类”, “病例编号”, “病人姓名” }));

jcbb1.setBounds(20, 28, 135, 25);

panel1.add(jcbb1);

// 添加背景

panel.add(label);

label.setBounds(0, 0, 1100, 700);

button3.addMouseListener(new MouseAdapter() { // 删除按钮实现删除记录的功能

public void mouseClicked(MouseEvent e) {

int row = table.getSelectedRow();// 这句选择要删除的行

Connection con;

con = dbUtil.getConnection();

Statement stmt;

String val = (String) table.getValueAt(row, 0);

String sql = “delete from Medical_records where MrId='” + val + “'”;

try {

stmt = con.createStatement();

stmt.executeUpdate(sql);

JOptionPane.showMessageDialog(null, " 删除成功!", “成功”, JOptionPane.INFORMATION_MESSAGE);

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

if (row != -1) { // 这句判断是否有选中的行

dtm.removeRow(row);

} // 这句删除指定行

}

});

table.addMouseListener(new MouseAdapter() {// 设置TABLE双击鼠标事件

public void mouseClicked(MouseEvent e) {

if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键

if (e.getClickCount() == 2) {

JIUYIModify c = new JIUYIModify();

c.openDialog(table, dtm);

}

}

});

button1.addMouseListener(new MouseAdapter() {// 查询按钮添加鼠标事件,对应相应的查询功能

public void mouseClicked(final MouseEvent e) {

System.out.println(“Good idea!!!”);

Object SelectName = jcbb1.getSelectedItem();

String selectNamecontent = SelectName.toString();

if (selectNamecontent.equals(“请选择查询种类”)) {

System.out.println(“什么也不做”);

return;

} else if (selectNamecontent.equals(“病例编号”)) {

if (tx5.getText().equals(“”)) {

JOptionPane.showMessageDialog(null, " 请输入病例编号!", “注意”, JOptionPane.ERROR_MESSAGE);

return;

}

String sickName = tx5.getText().trim();

String SQL = “select * from Medical_records where MrId like '%” + sickName + “%'”;

databaseSearch(SQL, 8);

return;

}

else if (selectNamecontent.equals(“病人姓名”)) {

if (tx6.getText().equals(“”)) {

JOptionPane.showMessageDialog(null, " 请输入病人姓名!", “注意”, JOptionPane.ERROR_MESSAGE);

return;

}

String sickCaseID = tx6.getText().trim();

String SQL = “select * from Medical_records where PaName like '%” + sickCaseID + “%'”;

databaseSearch(SQL, 8);

return;

}

}

});

}

private void setbgcolor() {

// TODO Auto-generated method stub

// 设置表格隔行背景颜色不同

try {

DefaultTableCellRenderer tcr = new DefaultTableCellRenderer() {

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,

boolean hasFocus, int row, int column) {

if (row % 2 == 0)

setBackground(new Color(223, 220, 239)); // 设置奇数行底色

else if (row % 2 == 1)

setBackground(Color.white); // 设置偶数行底色

return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

}

};

for (int i = 0; i < table.getColumnCount(); i++) {

table.getColumn(table.getColumnName(i)).setCellRenderer(tcr);

}

} catch (Exception ex) {

ex.printStackTrace();

}

}

private void databaseSearch(String SQL, int i) {

// TODO Auto-generated method stub

Connection con;

con = dbUtil.getConnection();

ResultSet rs;

try {

} catch (Exception e1) {

e1.printStackTrace();

}

try {

int rowcount = dtm.getRowCount() - 1;

if (rowcount != -1) {

for (int i1 = rowcount; i1 >= 0; i1–) {

dtm.removeRow(i1); // 删除Jtable中的所有行

}

dtm.setRowCount(0); // 将Jtable中的行数设为零

}

Statement stmt = con.createStatement();

rs = stmt.executeQuery(SQL);

String[] data = new String[8];

while (rs.next()) {

for (int j = 1; j <= 8; j++) {

data[j - 1] = rs.getString(j); // 取出数据库中的数组装载到数组中

}

dtm.addRow(data); // 在Jtabl

}

con.close();

} catch (Exception err) {

String error = err.getMessage();

JOptionPane.showMessageDialog(null, error);

err.printStackTrace();

} finally {

}

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if (e.getSource() == button2) {

JIUYIModify t = new JIUYIModify();

t.openDialog(table, dtm);

} else if (e.getSource() == button4) {

ChufangModify y = new ChufangModify(“诊疗明细”);

int row = table.getSelectedRow();

String r = (String) table.getValueAt(row, 0);

String SQL1 = “select * from DrugTable where MrId='” + r + “'and PeClass=‘其他类’”;

y.databaseSearch2(SQL1, 6);

y.addrow(table);

} else if (e.getSource() == button5) {

ProjectModify y = new ProjectModify(“用药明细”);

int row = table.getSelectedRow();

String r = (String) table.getValueAt(row, 0);

String SQL1 = “select * from DrugTable where MrId='” + r + “’ and PeClass=‘药品类’or MrId=’” + r

  • “'and PeClass=‘诊断类’”;

y.databaseSearch2(SQL1, 7);

y.addrow(table);

}

}

}

MainPanelCashier.java


最后

笔者已经把面试题和答案整理成了面试专题文档

image

image

image

image

image

image

);

tx6.setVisible(false);

la6.setVisible(false);

tx5.setVisible(false);

panel1.add(la5);

panel1.add(la6);

tx5.setBounds(90, 80, 120, 35);

panel1.add(tx5);

tx6.setBounds(90, 80, 120, 35);

panel1.add(tx6);

Connection con;

con = dbUtil.getConnection();

ResultSet rs;

try {

String sql1 = “select Count(*) from Medical_records”;

Statement stmt = con.createStatement();

rs = stmt.executeQuery(sql1);

while (rs.next()) {

o = rs.getString(1);

}

tx7.setText(o);

} catch (Exception r) {

r.printStackTrace();

}

jcbb1 = new JComboBox();

jcbb1.addActionListener(new ActionListener() {// 下拉框添加事件,用于显示相应的查询文本框,以及标签

public void actionPerformed(final ActionEvent e) {

Object SelectName = jcbb1.getSelectedItem();

String selectNamecontent = SelectName.toString();

if (selectNamecontent.equals(“请选择查询种类”)) {

la5.setVisible(false);

la6.setVisible(false);

tx5.setVisible(false);

tx6.setVisible(false);

System.out.println(“什么也不做”);

return;

} else if (selectNamecontent.equals(“病例编号”)) {

la5.setVisible(true);

tx5.setVisible(true);

tx5.setText(“”);

la6.setVisible(false);

tx6.setVisible(false);

return;

} else if (selectNamecontent.equals(“病人姓名”)) {

tx5.setVisible(false);

la5.setVisible(false);

tx6.setVisible(true);

la6.setVisible(true);

tx6.setText(“”);

return;

}

// ++++++++++++++++++++++++++++++++++++++++++++++++++

}

});

jcbb1.setModel(new DefaultComboBoxModel(new String[] { “请选择查询种类”, “病例编号”, “病人姓名” }));

jcbb1.setBounds(20, 28, 135, 25);

panel1.add(jcbb1);

// 添加背景

panel.add(label);

label.setBounds(0, 0, 1100, 700);

button3.addMouseListener(new MouseAdapter() { // 删除按钮实现删除记录的功能

public void mouseClicked(MouseEvent e) {

int row = table.getSelectedRow();// 这句选择要删除的行

Connection con;

con = dbUtil.getConnection();

Statement stmt;

String val = (String) table.getValueAt(row, 0);

String sql = “delete from Medical_records where MrId='” + val + “'”;

try {

stmt = con.createStatement();

stmt.executeUpdate(sql);

JOptionPane.showMessageDialog(null, " 删除成功!", “成功”, JOptionPane.INFORMATION_MESSAGE);

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

if (row != -1) { // 这句判断是否有选中的行

dtm.removeRow(row);

} // 这句删除指定行

}

});

table.addMouseListener(new MouseAdapter() {// 设置TABLE双击鼠标事件

public void mouseClicked(MouseEvent e) {

if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键

if (e.getClickCount() == 2) {

JIUYIModify c = new JIUYIModify();

c.openDialog(table, dtm);

}

}

});

button1.addMouseListener(new MouseAdapter() {// 查询按钮添加鼠标事件,对应相应的查询功能

public void mouseClicked(final MouseEvent e) {

System.out.println(“Good idea!!!”);

Object SelectName = jcbb1.getSelectedItem();

String selectNamecontent = SelectName.toString();

if (selectNamecontent.equals(“请选择查询种类”)) {

System.out.println(“什么也不做”);

return;

} else if (selectNamecontent.equals(“病例编号”)) {

if (tx5.getText().equals(“”)) {

JOptionPane.showMessageDialog(null, " 请输入病例编号!", “注意”, JOptionPane.ERROR_MESSAGE);

return;

}

String sickName = tx5.getText().trim();

String SQL = “select * from Medical_records where MrId like '%” + sickName + “%'”;

databaseSearch(SQL, 8);

return;

}

else if (selectNamecontent.equals(“病人姓名”)) {

if (tx6.getText().equals(“”)) {

JOptionPane.showMessageDialog(null, " 请输入病人姓名!", “注意”, JOptionPane.ERROR_MESSAGE);

return;

}

String sickCaseID = tx6.getText().trim();

String SQL = “select * from Medical_records where PaName like '%” + sickCaseID + “%'”;

databaseSearch(SQL, 8);

return;

}

}

});

}

private void setbgcolor() {

// TODO Auto-generated method stub

// 设置表格隔行背景颜色不同

try {

DefaultTableCellRenderer tcr = new DefaultTableCellRenderer() {

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,

boolean hasFocus, int row, int column) {

if (row % 2 == 0)

setBackground(new Color(223, 220, 239)); // 设置奇数行底色

else if (row % 2 == 1)

setBackground(Color.white); // 设置偶数行底色

return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

}

};

for (int i = 0; i < table.getColumnCount(); i++) {

table.getColumn(table.getColumnName(i)).setCellRenderer(tcr);

}

} catch (Exception ex) {

ex.printStackTrace();

}

}

private void databaseSearch(String SQL, int i) {

// TODO Auto-generated method stub

Connection con;

con = dbUtil.getConnection();

ResultSet rs;

try {

} catch (Exception e1) {

e1.printStackTrace();

}

try {

int rowcount = dtm.getRowCount() - 1;

if (rowcount != -1) {

for (int i1 = rowcount; i1 >= 0; i1–) {

dtm.removeRow(i1); // 删除Jtable中的所有行

}

dtm.setRowCount(0); // 将Jtable中的行数设为零

}

Statement stmt = con.createStatement();

rs = stmt.executeQuery(SQL);

String[] data = new String[8];

while (rs.next()) {

for (int j = 1; j <= 8; j++) {

data[j - 1] = rs.getString(j); // 取出数据库中的数组装载到数组中

}

dtm.addRow(data); // 在Jtabl

}

con.close();

} catch (Exception err) {

String error = err.getMessage();

JOptionPane.showMessageDialog(null, error);

err.printStackTrace();

} finally {

}

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if (e.getSource() == button2) {

JIUYIModify t = new JIUYIModify();

t.openDialog(table, dtm);

} else if (e.getSource() == button4) {

ChufangModify y = new ChufangModify(“诊疗明细”);

int row = table.getSelectedRow();

String r = (String) table.getValueAt(row, 0);

String SQL1 = “select * from DrugTable where MrId='” + r + “'and PeClass=‘其他类’”;

y.databaseSearch2(SQL1, 6);

y.addrow(table);

} else if (e.getSource() == button5) {

ProjectModify y = new ProjectModify(“用药明细”);

int row = table.getSelectedRow();

String r = (String) table.getValueAt(row, 0);

String SQL1 = “select * from DrugTable where MrId='” + r + “’ and PeClass=‘药品类’or MrId=’” + r

  • “'and PeClass=‘诊断类’”;

y.databaseSearch2(SQL1, 7);

y.addrow(table);

}

}

}

MainPanelCashier.java


最后

笔者已经把面试题和答案整理成了面试专题文档

[外链图片转存中…(img-J5pAsGld-1721136593325)]

[外链图片转存中…(img-bDgC2Ouu-1721136593326)]

[外链图片转存中…(img-uPSWF5so-1721136593326)]

[外链图片转存中…(img-IhHWfUN5-1721136593326)]

[外链图片转存中…(img-bYGENycy-1721136593327)]

[外链图片转存中…(img-MabwoN9u-1721136593327)]

  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值