Java 超市管理系统、商品进销存系统 -窗体程序

该文章介绍了一个使用Java语言和Swing框架开发的超市管理系统,具备系统登录、密码修改、库存查询、商品进货和销售等功能。系统界面美观,提供完整源码,并有详细的运行说明和设计文档。

今天为大家分享一个java语言编写的超市管理系统,目前系统功能已经很全面,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步

开发环境

开发语言为Java,开发环境Eclipse或者IDEA都可以。数据库采用:MySQL。运行主程序,或者执行打开JAR文件即可以运行本程序。运行程序可以在编辑器中运行 run as applicaiton,或者jar ***.jar运行

系统框架

利用JDK自带的SWING框架开发,不需要安装第三方JAR包。MySQL数据库,纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档

主要功能

小型商店进销存管理系统主要的功能有以下几点

1 系统登陆:通过输入密码,登陆到系统中来

2 修改密码:对用户的密码进行修改,修改后密码保存到数据库

3 库存查询:查询商品在库存在的信息

4 商品进货:进货信息包含类型、商品名称、数量等信息

5 进货查询:查询历史上的进货信息。进货信息包括:商品类型、商品名称、数量、进货日期

6 商品销售:销售商品中的信息。销售信息包括:商品类型,商品名称,商品数量,单价,总价、销售日期等信息

7 库存缺货补货提醒:当用户登陆进系统后,商品库存小于指定的库存信息的时候,会弹出提醒。

实现效果

1 界面登陆

2 主界面

3 缺货提醒

4 超市进货

5 进货记录查询

6 新货上架

7 物品销售

8 修改密码

核心代码

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Image;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

public class MainFrame extends JFrame{
    private static final long serialVersionUID = -8808883923263763897L;
    
    private ClientContext clientContext;
    
    public MainFrame(){
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        init();
    }
    
    public void init(){
        this.setTitle("小型商店进销存管理系统");
        this.setSize(550, 400);
        this.setContentPane(createContentPane());
        int windowWidth = this.getWidth(); //获得窗口宽
        int windowHeight = this.getHeight(); //获得窗口高
        Toolkit kit = Toolkit.getDefaultToolkit(); //定义工具包
        Dimension screenSize = kit.getScreenSize(); //获取屏幕的尺寸
        int screenWidth = screenSize.width; //获取屏幕的宽
        int screenHeight = screenSize.height; //获取屏幕的高
        this.setLocation(screenWidth / 2 - windowWidth / 2, screenHeight / 2 - windowHeight / 2);//设置窗口居中显示
        this.setResizable(false);
    }

    private Container createContentPane() {
        JPanel panel = new JPanel(new BorderLayout());
        panel.add(createFunctionPanel(), BorderLayout.CENTER);
        return panel;
    }

    private Component createFunctionPanel() {
        Image image=new ImageIcon(MainFrame.class.getResource("icon/bg.png")).getImage(); 
        JPanel panel = new BackgroundPanel(image);
        Font font16=new Font("微软雅黑", 1, 16);
        
        JButton sale=new JButton("销  售",new ImageIcon(MainFrame.class.getResource("icon/sell.png")));
        sale.setHorizontalTextPosition(SwingConstants.CENTER);
        sale.setVerticalTextPosition(SwingConstants.BOTTOM);
        sale.setBorderPainted(false);
        sale.setFocusPainted(false);
        sale.setContentAreaFilled(false);
        sale.setFocusable(true);
        sale.setMargin(new Insets(180, 10, 0, 30));
        sale.setFont(font16);
        sale.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                clientContext.showSellFrame();
            }
        });
        panel.add(sale);
        
        JButton purchases=new JButton("进  货",new ImageIcon(MainFrame.class.getResource("icon/inventory.png")));
        purchases.setHorizontalTextPosition(SwingConstants.CENTER);
        purchases.setVerticalTextPosition(SwingConstants.BOTTOM);
        purchases.setBorderPainted(false);
        purchases.setFocusPainted(false);
        purchases.setContentAreaFilled(false);
        purchases.setFocusable(true);
        purchases.setMargin(new Insets(180, 10, 0, 30));
        purchases.setFont(font16);
        purchases.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                clientContext.showOrHidePurchaseFrame(true);
            }
        });
        panel.add(purchases);
        
        JButton stock=new JButton("库  存",new ImageIcon(MainFrame.class.getResource("icon/storage.png")));
        stock.setHorizontalTextPosition(SwingConstants.CENTER);
        stock.setVerticalTextPosition(SwingConstants.BOTTOM);
        stock.setBorderPainted(false);
        stock.setFocusPainted(false);
        stock.setContentAreaFilled(false);
        stock.setFocusable(true);
        stock.setMargin(new Insets(180, 10, 0, 30));
        stock.setFont(font16);
        stock.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                clientContext.showOrHideStorageFrame(true);
            }
        });
        panel.add(stock);
        
        JButton sellHistoryBtn=new JButton("销售记录",new ImageIcon(MainFrame.class.getResource("icon/summary.png")));
        sellHistoryBtn.setHorizontalTextPosition(SwingConstants.CENTER);
        sellHistoryBtn.setVerticalTextPosition(SwingConstants.BOTTOM);
        sellHistoryBtn.setBorderPainted(false);
        sellHistoryBtn.setFocusPainted(false);
        sellHistoryBtn.setContentAreaFilled(false);
        sellHistoryBtn.setFocusable(true);
        sellHistoryBtn.setMargin(new Insets(180, 10, 0, 10));
        sellHistoryBtn.setFont(font16);
        sellHistoryBtn.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                clientContext.showSellHistoryFrame();
            }
        });
        panel.add(sellHistoryBtn);
        
        JButton setting=new JButton("修改密码",new ImageIcon(MainFrame.class.getResource("icon/setting.png")));
        setting.setHorizontalTextPosition(SwingConstants.CENTER);
        setting.setVerticalTextPosition(SwingConstants.BOTTOM);
        setting.setBorderPainted(false);
        setting.setFocusPainted(false);
        setting.setContentAreaFilled(false);
        setting.setFocusable(true);
        setting.setMargin(new Insets(180, 10, 0, 10));
        setting.setFont(font16);
        setting.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                clientContext.showModifyPwdFrame(true);
            }
        });
        panel.add(setting);
        
        return panel;
    }

    public static void main(String[] args) {
        MainFrame mf = new MainFrame();
        mf.init();
        mf.setVisible(true);
    }

    public ClientContext getClientContext() {
        return clientContext;
    }

    public void setClientContext(ClientContext clientContext) {
        this.clientContext = clientContext;
    }

}

项目总结

开发一套系统,最重要的是细心,并不是一定要做到面面俱到,在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。我们不可能做到面面俱到,但一定要做到步步扎实,作为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。 通过这次课程设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

计算机程序

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

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

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

打赏作者

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

抵扣说明:

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

余额充值