当前位置: 首页 > news >正文

JAVA医药进销存管理系统(附源码+调试)

JAVA医药进销存管理系统

功能描述

(1)登录模块:登录信息等存储在数据库中
(2)基本信息模块:分为药品信息模块、客户情况模块、供应商情况模块;
(3)业务管理模块:分为药品采购模块、药品销售模块、库存盘点模块、销售退货模块、客户回款模块;
(4)业务查询模块:分为基本信息模块、入库明细模块、销售明细模块、回款明细模块;
(5)用户管理模块:分为增加用户模块、维护用户模块;
(6)窗口管理:更适应更多使用者的前端需求。

代码链接:https://pan.baidu.com/s/1F7dEBfny5aAU_AKpLpwCiA
提取码:3pxo

功能截图

1、登录模块

在这里插入图片描述

2、医药进销存管理系统主界面

在这里插入图片描述

3、药品情况模块

在这里插入图片描述

4、供应商基本信息情况模块

在这里插入图片描述

5、入库明细模块

在这里插入图片描述

部分关键代码

package com.lzw;import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;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.JTextField;
import javax.swing.UIManager;
import javax.swing.border.BevelBorder;import com.lzw.dao.AdapterDao;
import com.lzw.model.Obj_UserName;
import com.lzw.view.JF_main;public class LoginDialog extends JFrame {private static final long serialVersionUID = 8107215375516572660L;private LoginPanel loginPanel = null;private JLabel jLabel = null;private JTextField userField = null;private JLabel jLabel1 = null;private JPasswordField passwordField = null;private JButton loginButton = null;private JButton exitButton = null;private JF_main mainFrame;/*** @param owner*/public LoginDialog() {try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());mainFrame = new JF_main();initialize();} catch (Exception e) {e.printStackTrace();}}/*** 初始化loginPanel登录面板的方法* * @return com.lzw.login.LoginPanel*/private LoginPanel getLoginPanel() {if (loginPanel == null) {jLabel1 = new JLabel();jLabel1.setFont(new Font("", Font.BOLD, 12));jLabel1.setBounds(new Rectangle(101, 147, 55, 18));jLabel1.setText("密 码:");jLabel = new JLabel();jLabel.setFont(new Font("", Font.BOLD, 12));jLabel.setText("用户名:");jLabel.setBounds(new Rectangle(100, 117, 56, 18));loginPanel = new LoginPanel();loginPanel.setLayout(null);loginPanel.setBackground(new Color(0xD8DDC7));loginPanel.add(jLabel);loginPanel.add(getUserField());loginPanel.add(jLabel1);loginPanel.add(getPasswordField());loginPanel.add(getLoginButton());loginPanel.add(getExitButton());}return loginPanel;}/*** This method initializes userField* * @return javax.swing.JTextField*/private JTextField getUserField() {if (userField == null) {userField = new JTextField();userField.setBorder(new BevelBorder(BevelBorder.LOWERED));userField.setBounds(new Rectangle(157, 115, 127, 22));}return userField;}/*** This method initializes passwordField* * @return javax.swing.JPasswordField*/private JPasswordField getPasswordField() {if (passwordField == null) {passwordField = new JPasswordField();passwordField.setBorder(new BevelBorder(BevelBorder.LOWERED));passwordField.setBounds(new Rectangle(158, 145, 125, 22));passwordField.addKeyListener(new KeyAdapter() {@Overridepublic void keyTyped(KeyEvent e) {if (e.getKeyChar() == '\n')loginButton.doClick();}});}return passwordField;}/*** This method initializes loginButton* * @return javax.swing.JButton*/private JButton getLoginButton() {if (loginButton == null) {loginButton = new JButton();loginButton.setContentAreaFilled(false);loginButton.setBounds(new Rectangle(155, 175, 58, 25));loginButton.setIcon(new ImageIcon(getClass().getResource("/images/loginButton.png")));loginButton.addActionListener(new ActionListener() {private Obj_UserName user;@Overridepublic void actionPerformed(ActionEvent e) {String id = getUserField().getText().trim();if (id == null || id.length() <= 0) {JOptionPane.showMessageDialog(null, "输入用户ID不能为空,请重新输入!!!", "系统提示", JOptionPane.ERROR_MESSAGE);getUserField().requestFocus();return;}String sqlStr = "from Obj_UserName where id = '" + id + "'";List list = null;list = AdapterDao.QueryObject(sqlStr);if (list.size() > 0) {Iterator iterator = list.iterator();user = (Obj_UserName) iterator.next();String pass = new String(getPasswordField().getPassword());if (!user.getPassword().equals(pass)) {JOptionPane.showMessageDialog(LoginDialog.this, "用户名或密码错误,无法登录", "登录失败", JOptionPane.ERROR_MESSAGE);return;}}Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();Dimension frameSize = mainFrame.getSize();if (frameSize.height > screenSize.height) {frameSize.height = screenSize.height;}if (frameSize.width > screenSize.width) {frameSize.width = screenSize.width;}mainFrame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);mainFrame.setVisible(true);LoginDialog.this.setVisible(false);}});}return loginButton;}/*** This method initializes exitButton* * @return javax.swing.JButton*/private JButton getExitButton() {if (exitButton == null) {exitButton = new JButton();exitButton.setContentAreaFilled(false);exitButton.setBounds(new Rectangle(230, 175, 58, 25));exitButton.setIcon(new ImageIcon(getClass().getResource("/images/exitButton.png")));exitButton.addActionListener(new java.awt.event.ActionListener() {@Overridepublic void actionPerformed(java.awt.event.ActionEvent e) {System.exit(0);}});}return exitButton;}/*** 界面初始化方法* * @return void*/private void initialize() {Dimension size = getToolkit().getScreenSize();setLocation((size.width - 296) / 2, (size.height - 188) / 2);setSize(389, 256);this.setTitle("系统登录");setContentPane(getLoginPanel());}public static void main(String[] args) {try {new Thread() {private FileInputStream fis;private Scanner scanner;private LoginDialog jf_login;@Overridepublic void run() {try {initAndRecLog(); // 初始化并记录日志fis = new FileInputStream("APPJXC.log");scanner = new Scanner(fis);while (scanner.hasNextLine()) {String str = scanner.nextLine();int startInt = str.indexOf('-') + 1;if (startInt == -1)startInt = 0;str = "启动信息:" + str.substring(startInt);Thread.sleep(100);}scanner.close();fis.close();jf_login.setVisible(true);} catch (Exception e) {e.printStackTrace();}}// 初始化系统,并记录日志private void initAndRecLog() throws FileNotFoundException {FileOutputStream fop = new FileOutputStream("APPJXC.log", false);PrintStream ps = new PrintStream(fop);System.setOut(ps);AdapterDao dao = new AdapterDao();if (!dao.getdao())return;jf_login = new LoginDialog();}}.start();} catch (Exception e) {e.printStackTrace();}}
}
http://www.lryc.cn/news/169114.html

相关文章:

  • H5 <blockquote> 标签
  • nginx配置指南
  • 【数据结构】优先级队列(堆)
  • 前端笔试2
  • LeetCode:66.加一
  • Redis 常用命令
  • Integer.valueOf()用于字符和字符串的区别
  • 机械寿命预测(基于NASA C-MAPSS数据的剩余使用寿命RUL预测,Python代码,CNN_LSTM模型,有详细中文注释)
  • ConfigMaps-1
  • docker上安装es
  • #循循渐进学51单片机#c语言基础和流水灯实现#not.3
  • 算法刷题 week3
  • TCP详解之流量控制
  • mac根目录下创建文件不能问题
  • stable diffusion model训练遇到的问题【No module named ‘triton‘】
  • 线性dp,优化记录,273. 分级
  • JWT 安全及案例实战
  • Vue2+Vue3
  • 华为云云耀云服务器L实例评测|redis漏洞回顾 MySQL数据安全解决 搭建主从集群MySQL 相关设置
  • 【C++】详解std::thread
  • Apache HTTPD 漏洞复现
  • 【C++从入门到精通】第2篇:C++基础知识(中)
  • 【RuoYi移动端】uni-app中实现生成二维码功能(代码示例)
  • 深度解剖数据在栈中的应用
  • Android10 SystemUI系列 需求定制(一)状态栏控制中心默认tile定制属性适配
  • 【微信小程序】文章设置
  • 程序员在线周刊(冒泡算法篇)
  • string
  • html的日期选择插件
  • OPPO哲库事件 “ 始末 ” ! 集体打哑谜?