软件编程
位置:首页>> 软件编程>> java编程>> Java+Swing实现医院管理系统的完整代码

Java+Swing实现医院管理系统的完整代码

作者:水坚石青  发布时间:2023-03-17 00:40:21 

标签:Java,Swing,医院管理系统

一、系统介绍

本系统实现的以下功能
管理员功能:登录系统、病人信息的增删改查、就医档案的录入、医生信息的增删改查、科室信息的增删改查、收费统计功能、修改密码。
医生功能:登录系统、病人信息的增删改查、医生信息的增删改查、科室信息的增删改查、收费统计功能、修改密码。
收费员功能:价格管理、收费管理、修改密码。
JDK版本:1.8
数据库:Mysql8.0.13

数据库用到的表
cashier
charge
department
doctor
drugtable
manager
medical_records
patient
price

工程截图

Java+Swing实现医院管理系统的完整代码

二、系统展示

1.登录页

Java+Swing实现医院管理系统的完整代码

2.主页面

Java+Swing实现医院管理系统的完整代码

3.病人信息录入

Java+Swing实现医院管理系统的完整代码

4.病人信息操作

Java+Swing实现医院管理系统的完整代码

5.就医档案录入

Java+Swing实现医院管理系统的完整代码

6.处方单录入

Java+Swing实现医院管理系统的完整代码

7.就医档案操作

Java+Swing实现医院管理系统的完整代码

8.医生信息录入

Java+Swing实现医院管理系统的完整代码

9.医生信息操作

Java+Swing实现医院管理系统的完整代码

10.科室信息录入

Java+Swing实现医院管理系统的完整代码

11.科室信息操作

Java+Swing实现医院管理系统的完整代码

12.收费操作

Java+Swing实现医院管理系统的完整代码

13.收费统计

Java+Swing实现医院管理系统的完整代码

14.修改密码

Java+Swing实现医院管理系统的完整代码

15.医生主页面

Java+Swing实现医院管理系统的完整代码

16.收费员主页面

Java+Swing实现医院管理系统的完整代码

三、系统实现

Login.java


package com.sjsq;

import java.awt.Color;
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 javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

public class Login extends JFrame {

public static String namew;
// 输入的用户Id
public static String userId;
// 输入的用户名
public static String username;
// 输入的密码
public static String password;
// 验证标识
int loginFlag = 0;
private static final long serialVersionUID = 1L;
DBUtil dbUtil = new DBUtil();
Connection con = dbUtil.getConnection();

// 账号
JLabel accountJLabel = new JLabel("账号:");
// 错误提示标签
JLabel errorJLabel = new JLabel("用户名或者密码不对,请重新输入");
// 密码
JLabel passwordJLabel = new JLabel("密码:");

// r1:管理员 r2:收费员 r3:医生
public JRadioButton r1, r2, r3;
ImageIcon bg = new ImageIcon("picture/login_bg.jpg");
JLabel bgJLabel = new JLabel(bg);

JButton loginJButton = new JButton("登录");
JButton cancelJButton = new JButton("取消");

private boolean flag;
static JTextField usernameJTextField = new JTextField();
static JPasswordField passwordJPasswordField = new JPasswordField();

Login(String sTitle) {
super(sTitle);
this.setLayout(null);
this.add(errorJLabel); // 添加控件

this.add(accountJLabel);
this.add(passwordJLabel);
this.add(loginJButton);
this.add(cancelJButton);

this.add(usernameJTextField);
this.add(passwordJPasswordField);

final JRadioButton r1 = new JRadioButton("管理员");
final JRadioButton r2 = new JRadioButton("收费员");
final JRadioButton r3 = new JRadioButton("医生");

ButtonGroup rg = new ButtonGroup();
this.add(r2);
rg.add(r1);
this.add(r3);
rg.add(r3);
this.add(r1);
rg.add(r2);
r1.setBounds(150, 180, 80, 30);
r2.setBounds(230, 180, 80, 30);
r3.setBounds(310, 180, 80, 30);
r1.setFocusPainted(false);
r2.setFocusPainted(false);
r3.setFocusPainted(false);
r3.setContentAreaFilled(false);
r1.setContentAreaFilled(false);
r2.setContentAreaFilled(false);

errorJLabel.setBounds(100, 130, 200, 50);
errorJLabel.setForeground(Color.black);
errorJLabel.setVisible(false);

bgJLabel.setBounds(0, 0, 592, 350);

// 登录监听
loginJButton.addActionListener(new ActionListener() {
public boolean flag = false;

public void actionPerformed(ActionEvent e) {

// 医生
if (r3.isSelected()) {
try {
String usernameText = usernameJTextField.getText().toString(); // 获取帐号文本框内容
String passwordText = passwordJPasswordField.getText().toString(); // 获取密码文本框内容
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from doctor"); // 执行SQL语句,返回结果集
while (rs.next()) {

userId = rs.getString("DrId"); // 获取登录的用户编号,
username = rs.getString("DrName");// 获取登录的用户姓名
password = rs.getString("Password"); // 获取数据库中的数据项的密码
if (userId.equals(usernameText) && password.equals(passwordText)) {// 判断数据库的用户编号以及密码是否与文本框的值相同
loginFlag = 1;
break;
}

}
if (loginFlag == 1) {
JOptionPane.showMessageDialog(null, "登录成功");
// 显示系统主界面
MainPanelDoctor a = new MainPanelDoctor("医生界面");
a.setVisible(true);
Login.this.setVisible(false);// 关闭登录按钮
} else {
usernameJTextField.setText(""); // 错误的话则文本框内容设置为空,显示错误标签
passwordJPasswordField.setText("");

JOptionPane.showMessageDialog(null, "登陆错误");
}
} catch (SQLException e2) {
System.out.println(e2);
}
}

// 管理员
else if (r1.isSelected()) {

try {

String usernameText = usernameJTextField.getText().toString(); // 获取帐号文本框内容
String passwordText = passwordJPasswordField.getText().toString(); // 获取密码文本框内容

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from manager"); // 执行SQL语句,返回结果集
while (rs.next()) {

userId = rs.getString("ManagerID"); // 获取登录的用户编号,
username = rs.getString("ManagerName");// 获取登录的用户姓名
password = rs.getString("MaPassWord"); // 获取数据库中的数据项的密码
if (userId.equals(usernameText) && password.equals(passwordText)) {// 判断数据库的用户编号以及密码是否与文本框的值相同

loginFlag = 1;

break;
}

}
// 登录成功
if (loginFlag == 1) {
JOptionPane.showMessageDialog(null, "登录成功");
new MainPanelManager("管理员界面"); // 显示系统主界面
Login.this.setVisible(false);// 关闭登录按钮
// 登录失败
} else {
usernameJTextField.setText(""); // 错误的话则文本框内容设置为空,显示错误标签
passwordJPasswordField.setText("");
JOptionPane.showMessageDialog(null, "登陆错误");
}
} catch (SQLException e3) {
System.out.println(e3);
}

}
// 收费员
else if (r2.isSelected()) {

try {
String usernameText = usernameJTextField.getText().toString(); // 获取帐号文本框内容
String passwordText = passwordJPasswordField.getText().toString(); // 获取密码文本框内容

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from cashier"); // 执行SQL语句,返回结果集
while (rs.next()) {

userId = rs.getString("cashierId"); // 获取登录的用户编号,
username = rs.getString("cashierName");// 获取登录的用户姓名
password = rs.getString("cashierPassWord"); // 获取数据库中的数据项的密码
if (userId.equals(usernameText) && password.equals(passwordText)) {// 判断数据库的用户编号以及密码是否与文本框的值相同

loginFlag = 1;

break;
}

}
if (loginFlag == 1) {
JOptionPane.showMessageDialog(null, "登录成功");
new MainPanelCashier("收费员页面"); // 显示系统主界面
Login.this.setVisible(false);// 关闭登录按钮
} else {
usernameJTextField.setText(""); // 错误的话则文本框内容设置为空,显示错误标签
passwordJPasswordField.setText("");

JOptionPane.showMessageDialog(null, "登陆错误");
}
} catch (SQLException e3) {
System.out.println(e3);
}

} else if (r1.isSelected() == false && r2.isSelected() == false && r3.isSelected() == false) {
JOptionPane.showMessageDialog(null, "请选择用户类型");

}

}
});

// 登录按钮添加功能事件

// 账号
accountJLabel.setBounds(150, 50, 100, 50);
accountJLabel.setFont(new Font("", 1, 20));

// 密码
passwordJLabel.setBounds(150, 120, 100, 50);
passwordJLabel.setFont(new Font("", 1, 20));

// 登录
loginJButton.setBounds(150, 220, 100, 40);
loginJButton.setBackground(Color.CYAN);

// 取消
cancelJButton.setBounds(280, 220, 100, 40);
cancelJButton.setBackground(Color.CYAN);

// 账号输入框
usernameJTextField.setBounds(250, 60, 150, 30);
// 密码输入框
passwordJPasswordField.setBounds(250, 120, 150, 30);

this.add(bgJLabel);
this.setVisible(true);
this.setSize(600, 350); // 设置窗口大小
this.setResizable(false); // 设置不可调整窗口大小
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String args[]) {
Login login = new Login("医院管理系统");
}

}

HomePage.java


HomePage.java
package com.sjsq;
import java.awt.Font;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class HomePage extends JFrame {
JPanel homePage = new JPanel();
private JLabel la1, la2;
private Font laFont = new Font("隶书", Font.BOLD, 100);

public HomePage() {
homePage.setLayout(null);
// 获取项目路径
ImageIcon background = new ImageIcon("picture/right_bg.jpg");
JLabel label = new JLabel(background);

la1 = new JLabel("欢迎使用");
la2 = new JLabel("医院信息管理系统");

la1.setBounds(330, 0, 800, 300);
la1.setFont(laFont);
la2.setBounds(120, 150, 1000, 300);
la2.setFont(laFont);

homePage.add(la1);
homePage.add(la2);

homePage.add(label);
label.setBounds(0, 0, 1100, 700);
}
}

Charge.java


package com.sjsq;

import java.awt.Color;
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.text.SimpleDateFormat;
import java.util.Date;

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;

public class Charge extends JFrame implements ActionListener {
private JComboBox box1;
private JScrollPane JScrollPane5 = new JScrollPane();
JPanel panel2 = new JPanel();
Font f2 = new Font("隶书", Font.BOLD, 30);
private JLabel la0, la1, la2, la3, la4, la5, la6, la7, la8, la9, la10, la11, la12, la13, l14, l15, la14, la15;
private JTextField tx13, tx0, tx1, tx2, tx3, tx4, tx5, tx6, tx7, tx8, tx9, tx10, tx11, tx12, tx14;
public static JTable table3;
public static DefaultTableModel dtm3;
private JButton btn1, btn2;
private double suma = 0;
private double sumd = 0;
private double sumb = 0;
private double sume = 0;
private double sumc = 0;
private double sumf = 0;
String b;
private String columnNames[] = { "就医档案编号", "病人编号", "病人姓名", "就医科室" };

Charge() {
// 获取时间
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd");
String dateString = sdf.format(now);
ImageIcon background = new ImageIcon("picture/right_bg.jpg"); // 背景图片
JLabel label = new JLabel(background);

panel2.setLayout(null);

// 控件的定义
btn1 = new JButton("确定结算");
btn2 = 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("挂号费: ");
la10 = new JLabel("处置费: ");
la11 = new JLabel("化验费: ");
la12 = new JLabel("押金累计: ");
la13 = new JLabel("押金余额: ");
la14 = new JLabel("结账日期: ");
la15 = new JLabel("收费操作 ");
la13.setForeground(Color.red);
la12.setForeground(Color.red);
tx0 = new JTextField();
tx1 = new JTextField();
tx2 = new JTextField();
tx3 = new JTextField();
tx4 = new JTextField();
tx5 = new JTextField();
tx6 = new JTextField();
tx7 = new JTextField();
tx8 = new JTextField();
tx9 = new JTextField();
tx10 = new JTextField();
tx11 = new JTextField();
tx12 = new JTextField();
tx13 = new JTextField();
tx14 = new JTextField(dateString);
la15.setFont(f2);

// 设置文本框的边缘不显示
tx0.setBorder(null);
tx2.setBorder(null);
tx3.setBorder(null);
tx4.setBorder(null);
tx14.setBorder(null);
tx14.setEditable(false);

// 设置一个新的面板
final JPanel panel1 = new JPanel();
JPanel panel12 = new JPanel();
JPanel panel13 = new JPanel();
panel13.setBackground(Color.pink);
panel12.setBackground(Color.pink);
panel1.setLayout(null);// 设置空布局
panel1.setBorder(new TitledBorder(null, "收费结算", TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.DEFAULT_POSITION, null, null));
panel1.setBounds(10, 100, 800, 500);
panel1.setBackground(Color.WHITE);
panel1.add(panel12);
panel12.setBounds(600, 0, 10, 500);
panel1.add(panel13);
panel13.setBounds(0, 330, 600, 10);

btn1.addActionListener(this); // 设置按钮事件
btn2.addActionListener(this);

// 默认表格模版的设置,添加表头和设置表格不可编辑
dtm3 = new DefaultTableModel(columnNames, 0);
table3 = new JTable(dtm3) {
public boolean isCellEditable(int row, int column) {
return false;
}// 表格不允许被编辑 }
};
String sql = "select MrId,PaId,PaName,DeptName from Medical_records";
databaseSearch1(sql, 4);

JScrollPane5.setViewportView(table3);// 给表格添加滚动条
panel1.add(JScrollPane5);
JScrollPane5.setBounds(10, 0, 400, 100);
JScrollPane5.setVisible(false);

// 面板添加控件,设置位置
panel2.add(tx0);
tx0.setBounds(290, 60, 100, 30);
panel1.add(btn1);
btn1.setBounds(650, 100, 100, 50);
panel1.add(btn2);
btn2.setBounds(650, 200, 100, 50);
panel1.add(tx2);
tx2.setBounds(150, 70, 70, 30);
panel1.add(tx3);
tx3.setBounds(150, 120, 70, 30);
panel1.add(tx4);
tx4.setBounds(150, 170, 70, 30);
panel1.add(tx5);
tx5.setBounds(180, 220, 70, 30);
panel1.add(tx6);
tx6.setBounds(180, 270, 70, 30);
panel1.add(tx7);
tx7.setBounds(475, 70, 70, 30);
panel1.add(tx8);
tx8.setBounds(460, 120, 70, 30);
panel1.add(tx9);
tx9.setBounds(460, 170, 70, 30);
panel1.add(tx10);
tx10.setBounds(460, 220, 70, 30);
panel1.add(tx11);
tx11.setBounds(270, 350, 70, 30);
panel1.add(tx12);
tx12.setBounds(470, 350, 70, 30);
panel1.add(tx13);
tx13.setBounds(80, 350, 70, 30);

panel2.add(la1);
la1.setBounds(20, 50, 100, 50);
panel2.add(la2);
la2.setBounds(250, 50, 100, 50);
panel2.add(tx1);
tx1.setBounds(110, 58, 120, 30);
panel1.add(la3);
la3.setBounds(100, 70, 100, 30);
panel1.add(la4);
la4.setBounds(100, 120, 100, 30);
panel1.add(la5);
la5.setBounds(100, 170, 100, 30);
panel1.add(la6);
la6.setBounds(100, 220, 100, 30);
panel1.add(la7);
la7.setBounds(100, 270, 100, 30);

panel1.add(la8);
la8.setBounds(400, 70, 100, 30);
panel1.add(la9);
la9.setBounds(400, 120, 100, 30);
panel1.add(la10);
la10.setBounds(400, 170, 100, 30);
panel1.add(la11);
la11.setBounds(400, 220, 100, 30);
panel1.add(la0);
la0.setBounds(10, 350, 100, 30);

la15.setBounds(30, 0, 200, 50);
panel2.add(la15);
la12.setBounds(200, 350, 100, 30);
panel1.add(la12);
la13.setBounds(400, 350, 100, 30);
panel1.add(la13);
panel2.add(panel1);

panel2.add(la14);
la14.setBounds(400, 60, 100, 30);
panel2.add(tx14);
tx14.setBounds(480, 60, 100, 30);

// 设置文本框不可编辑
tx0.setEditable(false);
tx2.setEditable(false);
tx3.setEditable(false);
tx4.setEditable(false);
tx11.setEditable(false);
tx12.setEditable(false);
tx13.setEditable(false);

panel2.add(label);// 面板添加背景图片,设置位置
label.setBounds(-30, 0, 1100, 700);

tx1.addMouseListener(new MouseAdapter() {// 给tx1的文本框添加按钮事件,显示一个表格
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键
JScrollPane5.setVisible(true);
}
});
// tx1文本框添加事件,根据文本框内容的改变模糊查询到数据库内容,显示到表格中
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(); // 根据S1的内容模糊查询数据库对应的数据
JScrollPane5.setVisible(true);
String sql = "select MrId,PaId,PaName,DeptName from Medical_records where MrId like  '%" + s1 + "%'";
databaseSearch1(sql, 5);
}
});
// 根据你选择表格的某一行内容,输入到对应的文本框内。
table3.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) // 单击鼠标左键
if (e.getClickCount() == 1) {
String sum1 = null;
String sum3 = null;
String sum6 = null;
String sum2 = null;
String sum4 = null;
String sum5 = null;
int row = table3.getSelectedRow();
String ao = (String) table3.getValueAt(row, 2);
String bo = (String) table3.getValueAt(row, 0);
String do1 = (String) table3.getValueAt(row, 1);
String co = (String) table3.getValueAt(row, 3);
tx2.setText(do1);
tx3.setText(ao);
tx1.setText(bo);
tx0.setText(ao);
tx4.setText(co);
JScrollPane5.setVisible(false);

// 连接数据库,查询对应的价格
DBUtil dbUtil = new DBUtil();
Connection con = dbUtil.getConnection();
ResultSet rs;
try {
// 查询数据库中用药的费用
String sql1 = "select PePrice,PeNumber from DrugTable where MrId='" + tx1.getText()
+ "' and PeClass='诊断类'or PeClass='药品类'and MrId='" + tx1.getText() + "'";
Statement stmt = con.createStatement();
rs = stmt.executeQuery(sql1);
while (rs.next()) {
String a = rs.getString(1);
String b = rs.getString(2);

double a1 = Double.valueOf(a).doubleValue();
int b1 = Integer.valueOf(b).intValue();

double d = a1 * b1;

suma = suma + d;
sum1 = String.valueOf(suma);

}
suma = 0;// 设置为0,否则会应为再次输入而无法清楚原来的数值
if (sum1 != null) {
tx5.setText(sum1);
} else {
tx5.setText("0.0");
}

} catch (Exception ex) {
ex.printStackTrace();
}
try {

String sql2 = "select PePrice,PeNumber from DrugTable where MrId='" + tx1.getText()
+ "' and PeClass='其他类'and PeName not in('检查费','挂号费','处置费','化验费')";

Statement stmt = con.createStatement();
rs = stmt.executeQuery(sql2);

while (rs.next()) {
String a = rs.getString(1);
String b = rs.getString(2);
double a1 = Double.valueOf(a).doubleValue();
int b1 = Integer.valueOf(b).intValue();

double d = a1 * b1;

sumb = sumb + d;
sum3 = String.valueOf(sumb);
System.out.println(a);
System.out.println(b);
}
sumb = 0;
if (sum3 != null) {
tx6.setText(sum3);
} else {
tx6.setText("0.0");

}

} catch (Exception ex) {
ex.printStackTrace();
}

try {

String sql1 = "select PePrice,PeNumber from DrugTable where MrId='" + tx1.getText()
+ "' and PeName='检查费'";

Statement stmt = con.createStatement();
rs = stmt.executeQuery(sql1);

while (rs.next()) {
String a = rs.getString(1);
String b = rs.getString(2);
double a1 = Double.valueOf(a).doubleValue();
int b1 = Integer.valueOf(b).intValue();

double d = a1 * b1;

sumc = sumc + d;
sum2 = String.valueOf(sumc);

}
sumc = 0;
if (sum2 != null) {
tx7.setText(sum2);
} else {
tx7.setText("0.0");
}

} catch (Exception ex) {
ex.printStackTrace();
}

try {

String sql1 = "select PePrice,PeNumber from DrugTable where MrId='" + tx1.getText()
+ "' and PeName='挂号费'";

Statement stmt = con.createStatement();
rs = stmt.executeQuery(sql1);

while (rs.next()) {

String a = rs.getString(1);
String b = rs.getString(2);
double a1 = Double.valueOf(a).doubleValue();
int b1 = Integer.valueOf(b).intValue();

double d = a1 * b1;

sumd = sumd + d;
sum4 = String.valueOf(sumd);

}
sumd = 0;
if (sum4 != null) {
tx8.setText(sum4);
} else {
tx8.setText("0.0");
}

} catch (Exception ex) {
ex.printStackTrace();
}
try {

String sql1 = "select PePrice,PeNumber from DrugTable where MrId='" + tx1.getText()
+ "' and PeName='处置费'";

Statement stmt = con.createStatement();
rs = stmt.executeQuery(sql1);

while (rs.next()) {

String a = rs.getString(1);
String b = rs.getString(2);
double a1 = Double.valueOf(a).doubleValue();
int b1 = Integer.valueOf(b).intValue();

double d = a1 * b1;

sume = sume + d;
sum5 = String.valueOf(sume);

}
sume = 0;
if (sum5 != null) {
tx9.setText(sum5);
} else {
tx9.setText("0.0");
}

} catch (Exception ex) {
ex.printStackTrace();
}
try {
String sql1 = "select PePrice,PeNumber from DrugTable where MrId='" + tx1.getText()
+ "' and PeName='化验费'";

Statement stmt = con.createStatement();
rs = stmt.executeQuery(sql1);

while (rs.next()) {
String a = rs.getString(1);
String b = rs.getString(2);
double a1 = Double.valueOf(a).doubleValue();
int b1 = Integer.valueOf(b).intValue();

double d = a1 * b1;

sumf = sumf + d;
sum6 = String.valueOf(sumf);

}
sumc = 0;
if (sum6 != null) {
tx10.setText(sum6);
} else {
tx10.setText("0.0");
}

} catch (Exception ex) {
ex.printStackTrace();
}
try {
String sql1 = "select PaPay from Patient  where PaId='" + tx2.getText() + "'";
Statement stmt = con.createStatement();
rs = stmt.executeQuery(sql1);
while (rs.next()) {
String a = rs.getString(1);
if (a != null) {
tx11.setText(a);
} else {
tx11.setText("0.0");
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
String t;
String y;
String u;
String u1;
String u2;
String u3;
String u4;
t = tx5.getText();
u1 = tx6.getText();
u2 = tx8.getText();
u3 = tx9.getText();
u4 = tx10.getText();
u = tx7.getText();
y = tx11.getText();
float c = Float.parseFloat(u);
float c1 = Float.parseFloat(t);
float c2 = Float.parseFloat(y);
float c4 = Float.parseFloat(u1);
float c5 = Float.parseFloat(u2);
float c6 = Float.parseFloat(u3);
float c7 = Float.parseFloat(u4);
float q = (float) (c2 - (c7 + c6 + c5 + c4 + c1 + c));// 减除押金后需要交的钱
float q1 = (float) ((c7 + c6 + c5 + c4 + c1 + c));// 费用总计
String s = String.valueOf(q);
String s1 = String.valueOf(q1);
tx12.setText(s);
tx13.setText(s1);
tx12.setForeground(Color.BLUE);
tx11.setForeground(Color.BLUE);
}
}
});

}

private void databaseSearch1(String sql, 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(sql);
String[] data = new String[4];
while (rs.next()) {
for (int j = 1; j <= 4; j++) {
data[j - 1] = rs.getString(j); // 取出数据库中的数组装载到数组中
}
dtm3.addRow(data); // 在Jtabl

}

con.close();
// 设置表格隔行背景色(隔行背景色不同)
} catch (Exception err) {
}
}

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getSource() == btn1) {
// 把费用表录入到收费表中
try {
DBUtil dbUtil = new DBUtil();
Connection con = dbUtil.getConnection();

Statement stmt = con.createStatement();

String sql = "INSERT INTO Charge(MrId,PaId,PaName,DeptName,Drugfee,treatmentfee,checkfee,registrationfee,disposalfee,assayfee,sum,time)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.setString(5, tx5.getText());
parepare.setString(6, tx6.getText());
parepare.setString(7, tx7.getText());
parepare.setString(8, tx8.getText());
parepare.setString(9, tx9.getText());
parepare.setString(10, tx10.getText());
parepare.setString(11, tx13.getText());
parepare.setString(12, tx14.getText());
// 判断是否有输入错误的,做提示操作
if (tx1.getText().equals("")) {
JOptionPane.showMessageDialog(null, "请输入结算的档案号", "错误", JOptionPane.INFORMATION_MESSAGE);
} else {
parepare.executeUpdate();
JOptionPane.showMessageDialog(null, "结账成功,需要交(退)" + tx12.getText() + "", "结账成功",
JOptionPane.INFORMATION_MESSAGE);

String sql1 = "delete from Patient where PaId='" + tx2.getText() + "'";
try {

stmt.executeUpdate(sql1);
tx0.setText("");

tx1.setText("");
tx2.setText("");
tx3.setText("");
tx4.setText("");
tx5.setText("");
tx6.setText("");
tx7.setText("");
tx8.setText("");
tx9.setText("");
tx10.setText("");
tx11.setText("");
tx12.setText("");
tx13.setText("");
tx14.setText("");
JScrollPane5.setVisible(false);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

}

} catch (Exception e2) {
e2.printStackTrace();
}

} else if (e.getSource() == btn2) {
tx0.setText("");

tx1.setText("");
tx2.setText("");
tx3.setText("");
tx4.setText("");
tx5.setText("");
tx6.setText("");
tx7.setText("");
tx8.setText("");
tx9.setText("");
tx10.setText("");
tx11.setText("");
tx12.setText("");
tx13.setText("");
tx14.setText("");
JScrollPane5.setVisible(false);

}
}
}

ChargeQuery.java


package com.sjsq;

import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.swing.ImageIcon;
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


package com.sjsq;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import javax.swing.*;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class MainPanelCashier extends JFrame implements MouseListener {
// 基本组件
public CardLayout layout = new CardLayout(); // 卡片布局方式
JPanel top, left, bottom, right;
JLabel head;
Font f1 = new Font("隶书", Font.BOLD, 54);
Font f2 = new Font("隶书", Font.BOLD, 25);
// 菜单栏组件
private JPanel pNorth, pSouth, subMenuContainer;
private JButton item1, item2, item3, item4, item5, item6, item7, item8, htn[], gtn[], btn[], ctn[], dtn[], etn[],
ftn[];
// 时间组件
private JPanel timePanel;
private JLabel displayArea;
private String DEFAULT_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; // 设置时间格式
private String time;
private int ONE_SECOND = 1000; // 设置时间间隔
JLabel label1 = new JLabel("欢迎你:");

public MainPanelCashier(String title) {

super("医院管理系统(收费员界面)");

String aa = Login.username; // 获取登录的用户名,放在标签中,显示在上面板。
JLabel label8 = new JLabel(aa);

// 窗口图标设置
Toolkit tk = getToolkit();
Image icon = tk.getImage("picture/icon.jpg");
setIconImage(icon);

// 时间控件设置
timePanel = new JPanel();
displayArea = new JLabel();
configTimeArea();
timePanel.add(displayArea);
timePanel.setBounds(1000, 0, 200, 50);
timePanel.setOpaque(false); // 时间面板设置为透明

// 组件基本设置
left = new JPanel();
left.setBounds(5, 150, 150, 515);
this.add(left);

right = new JPanel();
right.setLayout(layout);
right.setBounds(155, 155, 1045, 510);
HomePage s = new HomePage();
right.add(s.homePage);
this.add(right);

bottom = new JPanel();
bottom.setLayout(null);
bottom.setBounds(0, 666, 1200, 35);
bottom.setBackground(Color.WHITE);
bottom.add(timePanel); // 添加时间控件
this.add(bottom);

top = new JPanel(); // 设置背景图片"picture/top_bg.jpg"
ImageIcon background = new ImageIcon("picture/top_bg.jpg");
JLabel label = new JLabel(background);
top.setLayout(null);
label.setBounds(0, 0, 1200, 145);
top.setBounds(0, 0, 1200, 145);
this.add(top);
top.add(label8);
label8.setBounds(1080, 90, 100, 50);
label8.setFont(f2);

head = new JLabel("医院信息管理系统");
head.setFont(f1);
head.setBounds(375, 40, 500, 75);
top.add(head);

top.add(label1);
label1.setBounds(980, 90, 200, 50);
label1.setFont(f2);
top.add(label);

// Left面板折叠式菜单设置,三面板网格式布局
pNorth = new JPanel();
pNorth.setLayout(new GridLayout(4, 1));
pSouth = new JPanel();
subMenuContainer = new JPanel();

subMenuContainer.setLayout(new GridLayout(4, 1));

item1 = new JButton("首页"); // 设置按钮

item6 = new JButton("价格管理");
item7 = new JButton("收费管理");
item8 = new JButton("系统设置");

item1.setPreferredSize(new Dimension(150, 47)); // 优先设置按钮大小

item6.setPreferredSize(new Dimension(150, 47));
item7.setPreferredSize(new Dimension(150, 47));
item7.setPreferredSize(new Dimension(150, 47));
item8.setPreferredSize(new Dimension(150, 47));

item1.setContentAreaFilled(false); // 设置为透明
item6.setContentAreaFilled(false);
item7.setContentAreaFilled(false);
item8.setContentAreaFilled(false);

pNorth.add(item1);
pNorth.add(item6);
pNorth.add(item7);
pNorth.add(item8);

ftn = new JButton[1];
ftn[0] = new JButton("综合操作");
for (int i = 0; i < ftn.length; i++) {
ftn[i].setBackground(Color.WHITE);
ftn[i].setPreferredSize(new Dimension(150, 30));
ftn[i].addMouseListener(this);
}
gtn = new JButton[2];
gtn[0] = new JButton("结账页面");
gtn[1] = new JButton("综合操作");
for (int i = 0; i < gtn.length; i++) {
gtn[i].setBackground(Color.WHITE);
gtn[i].setPreferredSize(new Dimension(150, 30));
gtn[i].addMouseListener(this);
}
htn = new JButton[1];
htn[0] = new JButton("修改密码");

for (int i = 0; i < htn.length; i++) {
htn[i].setBackground(Color.WHITE);
htn[i].setPreferredSize(new Dimension(150, 30));
htn[i].addMouseListener(this);
}

left.add(pNorth, "North"); // 按钮添加到left面板中
left.add(subMenuContainer, "Center");
left.add(pSouth, "South");

// * 添加
item1.addMouseListener(this);

item6.addMouseListener(this);
item7.addMouseListener(this);
item8.addMouseListener(this);

// 窗体设置
this.setLayout(null);
this.setSize(1200, 730);
this.setLocationRelativeTo(null); // 窗口居中显示
this.setVisible(true);
this.setResizable(false); // 窗体不可改变大小
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args) {
MainPanelCashier mainPanelCashier = new MainPanelCashier("医院信息管理系统");
}

// 时间控件方法
private void configTimeArea() {
Timer tmr = new Timer();
tmr.scheduleAtFixedRate(new JLabelTimerTask(), new Date(), ONE_SECOND);
}

protected class JLabelTimerTask extends TimerTask {
SimpleDateFormat dateFormatter = new SimpleDateFormat(DEFAULT_TIME_FORMAT);

public void run() {
time = dateFormatter.format(Calendar.getInstance().getTime());
displayArea.setText(time);
}
}

public void mouseClicked(MouseEvent e) {
if (e.getSource() == item1) {
this.add(right);
HomePage s = new HomePage(); // 调用主页的类。
right.add(s.homePage, "homePage");
layout.next(right);
}
// 设置折叠按钮功能,先把南面板清空,让后在给各面板设置布局方式,添加按钮也添加子功能按钮,清楚别的子功能按钮

if (e.getSource() == item6) {
pSouth.removeAll();
pNorth.setLayout(new GridLayout(2, 1));
pSouth.setLayout(new GridLayout(2, 1));
pNorth.add(item1);

pNorth.add(item6);
pSouth.add(item7);
pSouth.add(item8);

for (int i = 0; i < ftn.length; i++)
subMenuContainer.add(ftn[i]);
for (int i = 0; i < gtn.length; i++)
subMenuContainer.remove(gtn[i]);
for (int i = 0; i < htn.length; i++)
subMenuContainer.remove(htn[i]);
validate();
getContentPane().repaint();
}
if (e.getSource() == item7) {
pSouth.removeAll();
pNorth.setLayout(new GridLayout(3, 1));
pSouth.setLayout(new GridLayout(1, 1));
pNorth.add(item1);

pNorth.add(item6);
pNorth.add(item7);
pSouth.add(item8);

for (int i = 0; i < ftn.length; i++)
subMenuContainer.remove(ftn[i]);
for (int i = 0; i < gtn.length; i++)
subMenuContainer.add(gtn[i]);
for (int i = 0; i < htn.length; i++)
subMenuContainer.remove(htn[i]);
validate();
getContentPane().repaint();
}
if (e.getSource() == item8) {
pSouth.removeAll();
pNorth.setLayout(new GridLayout(4, 1));

pNorth.add(item1);

pNorth.add(item6);
pNorth.add(item7);
pNorth.add(item8);

for (int i = 0; i < ftn.length; i++)
subMenuContainer.remove(ftn[i]);
for (int i = 0; i < gtn.length; i++)
subMenuContainer.remove(gtn[i]);
for (int i = 0; i < htn.length; i++)
subMenuContainer.add(htn[i]);
validate();
getContentPane().repaint();
}

else if (e.getSource() == ftn[0]) {
this.add(right);
PriceManage s = new PriceManage();
s.save.setEnabled(false);
s.modify.setEnabled(false);
s.delete.setEnabled(false);
right.add(s.priceManage, "priceManage");
layout.next(right);
} else if (e.getSource() == gtn[0]) {

this.add(right);
Charge t = new Charge();

right.add(t.panel2, "第一0个面板");
layout.next(right);
} else if (e.getSource() == gtn[1]) {

this.add(right);
ChargeQuery t = new ChargeQuery();

right.add(t.panel2, "第一0个面板");
layout.next(right);
} else if (e.getSource() == htn[0]) {

this.add(right);
PassWordModifyCashier t = new PassWordModifyCashier("密码修改");

right.add(t.panel2, "第一0个面板");
layout.next(right);

}
}

public void mouseEntered(MouseEvent arg0) {
}

public void mouseExited(MouseEvent arg0) {
}

public void mousePressed(MouseEvent arg0) {
}

public void mouseReleased(MouseEvent arg0) {
}

}

来源:https://blog.csdn.net/helongqiang/article/details/116378619

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com