诚之和:使用Java+Swing实现医院管理系统的实战练习 附完整实例代码

本篇文章将和大家分享使用Java的Swing工具类来完成医院管理系统的实战练习,有兴趣的小伙伴们可以一起实操学习一下,本文内容有助于大家对于Java的学习和理解。

一、系统介绍

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

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

工程截图

在这里插入图片描述

二、系统展示

1.登录页

在这里插入图片描述

2.主页面

在这里插入图片描述

3.病人信息录入

在这里插入图片描述

4.病人信息操作

在这里插入图片描述

5.就医档案录入

在这里插入图片描述

6.处方单录入

在这里插入图片描述

7.就医档案操作

在这里插入图片描述

8.医生信息录入

在这里插入图片描述

9.医生信息操作

在这里插入图片描述

10.科室信息录入

在这里插入图片描述

11.科室信息操作

在这里插入图片描述

12.收费操作

在这里插入图片描述

13.收费统计

在这里插入图片描述

14.修改密码

在这里插入图片描述

15.医生主页面

在这里插入图片描述

16.收费员主页面

在这里插入图片描述

三、系统实现

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 pan
  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_45378258

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值