超市管理系统_第1页
超市管理系统_第2页
超市管理系统_第3页
超市管理系统_第4页
超市管理系统_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

超市管理系统主讲人:段江城计科11505采用技术语言:JAVA数据库:SQLServerUI:Swing(用于开发Java应用程序用户界面的开发工具包)UI(服务)逻辑数据应用程序SwingSQLServerJAVA问题的定义及可行性分析目的用最小的代价在尽可能短的时间内确定问题能否解决三方面考虑技术可行性经济可行性操作可行性成本一般占总成本的5~10%需求分析信息来源用户沟通用户往往不能准确、全面地提出系统需求设计开发人员可按信息系统建设的思路来引导用户必要时可先按照用户最初的描述,建立系统原型设计开发人员以往类似系统经验(文档)同行业类似系统的经验通过操作使用类似软件系统,整理最初的需求文档,并在此基础上,与用户沟通、改进需求需求分析登录功能主界面1.菜单2.工具3.功能面板需求分析——业务流程订单供货商商品采购入库信息到货发货出库信息销售商品销售商需求分析——实体登录管理员信息运营管理订单(记录)信息入库(记录)信息出库(记录)信息人员管理部门信息(部门+负责人)员工信息(基本信息+联系方式+部门信息+职务信息)基本档案供货商信息销售商信息商品信息仓库信息需求分析——实体联系图运营管理订单信息入库信息仓库信息出库信息买存取1nn1n1供货商信息销售商信息商品信息卖1n需求分析——实体联系图公司管理基本信息部门信息职位信息属于m1联系信息拥有1拥有11需求分析——功能模块超市管理系统基本档案管理采购订货管理仓库入库管理仓库出库管理人员管理部门管理供货商管理销售商管理货品档案管理仓库管理登录需求分分析——需求列列表功能模块子模块功能描述基本档案管理供货商管理添加添加供货商信息删除删除供货商信息查询根据供货商名称或地址,查询供货商信息修改修改供货商信息销售商管理添加添加销售商信息删除删除销售商信息查询根据销售商名称或地址,查询销售商信息修改修改销售商信息货品档案管理添加添加货品信息删除删除货品信息查询根据货品名称,查询货品信息修改修改货品信息仓库管理添加添加仓库信息删除删除仓库信息查询根据仓库编号或者管理员,查询仓库信息修改修改仓库信息需求分分析——需求列列表功能模块功能描述采购订货添加订单添加一条新订单(及相关信息)删除订单删除所选择的订单查询订单根据条件(客户、订单号、交换日期)查询订单修改订单修改所选择的订单由订单入库由订单表入库,并改变订单状态(由“未入库”改为“已经入库”状态)商品入库添加入库信息添加一条入库信息——选择一条已有订单的(全部或部分)商品,将其转移至指定的仓库中删除入库信息删除所选择的入库信息查询入库信息根据条件(订单号、入库时间)查询入库信息修改入库信息修改所选择的入库信息商品出库添加出库信息添加一条出库信息——选择仓库及该仓库中已有的商品,以及重量、时间等信息,同时更新剩余商品的数量删除出库信息删除所选择的出库信息查询出库信息根据条件(仓库号、出库时间)查询出库信息修改出库信息修改所选择的出库信息需求分分析——需求列列表功能模块功能描述人员管理添加新员工添加一条新员工信息——选择部门、职位,并填写姓名、年龄、性别等信息删除员工删除所选择的员工信息查询员工根据部门,查询该部门某员工信息(基本信息,及详细的联系方式)修改员工修改所选择的员工信息部门管理添加新部门添加一条新部门信息——指定部门名称及负责人删除部门删除所选择的部门信息查询部门信息根据条件(部门名称、负责人)查询部门信息修改部门信息修改所选择的部门信息权限管理登录管理员用户、密码登录需求分分析——需求总总结超市管理系统商品管理公司管理买卖订单入库出库人员管理部门管理登录基本档案需求分分析——需求总总结实体体登录录管理理员员信信息息运营营管管理理订单单((记记录录))信信息息入库库((记记录录))信信息息出库库((记记录录))信信息息人员管理理部门信息息员工信息息(基本本信息+联系方式式+职务信息息)基本档案案供货商信信息销售商信信息商品信息息仓库信息息需求分析析——实体联系系图运营管理理、基本本档案订单信息息入库信息息仓库信息息出库信息息买存取1nn1n1供货商信信息销售商信信息商品信息息卖1nn11nn1需求分析析——需求总结结实体联系系图——公司管理理基本信息部门信息职位信息属于m1联系信息拥有1拥有11总体设计计——数据库设设计总体设计计——数据库设设计功能模块表实体登录tb_users管理员信息人员管理tb_basicMessage基本信息tb_contact联系方式tb_headship职务信息部门管理tb_dept部门信息运营管理tb_stock订单信息tb_joinDepot入库信息tb_outDepot出库信息基本档案tb_provide供货商信息tb_sell销售商信息tb_ware货品信息tb_depot仓库信息总体设计计——数据库设设计管理员信信息表(tb_users)列名类型允许空描述idint不能为空主键userNamevarchar(20)用户名passWordvarchar(20)密码总体设计计——数据库设设计基本档案案——供货商信信息表(tb_provide)列名类型允许空描述idint不能为空主键cNamevarchar(20)不能为空供货商名称addressvarchar(40)地址linkmanvarchar(50)联系人linkPhonevarchar(20)电话faxesvarchar(20)传真postNumvarchar(10)邮编bankNumvarchar(30)银行账号netAddressvarchar(30)网址emaillAddressvarchar(50)电子邮件remarkvarchar(200)

备注总体设计计——数据库设设计基本档案案——销售商信信息表(tb_sell)列名类型允许空描述idint不能为空主键sellNamevarchar(50)销售商名称addressvarchar(50)地址linkmanvarchar(50)联系人linkPhonevarchar(50)联系地址faxNumvarchar(50)传真postNumvarchar(50)邮编bankNumvarchar(50)银行账号netAddressvarchar(50)网址emaillAddressvarchar(50)电子邮件remarkvarchar(50)备注总体设计计——数据库设设计基本档案案——货品档案案信息表表(tb_ware)列名类型允许空描述idint不能为空主键wareNamevarchar(50)货品名称warBewritevarchar(50)货品描述specvarchar(50)单位stockPricefloat进货价retailPricefloat零售价associatorPricefloat

会员价总体设计计——数据库设设计基本档案案——仓库管理理信息表表(tb_depot)列名类型允许空描述idint不能为空主键managevarchar(50)管理员functionalvarchar(200)描述总体设计计——数据库设设计采购订货货信息表表(tb_stock)列名类型允许空描述idint不能为空主键sNamevarchar(50)客户orderIdvarchar(50)订单号consignmentDatevarchar(50)交货日期baleNamevarchar(50)商品名countvarchar(50)数量moneyfloat

金额总体设计计——数据库设设计仓库入库库信息表表(tb_joinDepot)列名类型允许空描述idint不能为空主键oidvarchar(50)订单号dIdint仓库编号wareNamevarchar(40)货品名称joinTimevarchar(50)入库时间weightfloat重量remarkvarchar(200)

备注总体设计计——数据库设设计仓库出库库信息表表(tb_outDepot)列名类型允许空描述idint不能为空主键didint仓库编号wNamevarchar(50)货品名称outDatevarchar(50)出库时间wightfloat重量remarkvarchar(500)备注总体设计计——数据库设设计部门信息息表(tb_dept)职位信息息表(tb_headship)列名类型允许空描述idint不能为空主键dNamevarchar(50)部门名称principalvarchar(50)负责人bewritevarchar(500)(部门)描述列名类型允许空描述idint不能为空主键headshipNamevarchar(50)(职位)描述总体设计计——数据库设设计员工信息息表基本信息息表(tb_basicMessage)联系方式式信息表表(tb_contact)列名类型允许空描述idint不能为空主键namevarchar(10)姓名ageint年龄sexvarchar(50)性别deptint部门headshipint

职务列名类型允许空描述idint不能为空主键hidint外键,与员工基本信息表主键对应contactvarchar(20)手机officePhonevarchar(30)办公室电话faxvarchar(20)不能为空传真emailvarchar(50)电子邮件faddressvarchar(50)

家庭住址总体设计计——界面设计计Swing简介——百度百科科Swing是一个用用于开发发Java应用程序序用户界界面的开开发工具具包。以抽象窗窗口工具具包(AWT)为基础础,使跨跨平台应应用程序序可以使使用任何何可插拔拔的外观观风格。。AWT(AbstractWindowToolkit):提供了一套套与本地图形形界面进行交交互的接口,是Java提供的用来建建立和设置Java的图形用户界面面的基本工具。。Swing开发人员只用用很少的代码码就可以利用用Swing丰富、灵活的的功能和模块块化组件来创创建优雅的用用户界面总体设计——界面设计Swing顶级容器图形界面至少少要有一个顶顶级Swing容器顶级Swing容器为其它Swing组件在屏幕上上的绘制和处处理事件提供供支持常用的顶级容容器:JFrame(框架):表表示主程序窗窗口JDialog(对话框)::每个JDialog对象表示一个个对话框,对对话框属于二二级窗口JApplet(小程序)::在浏览器内内显示一个小小程序界面总体设计——界面设计JFrameJPanelJPanelJButtonJTextField...总体设计——界面设计主要控件功能JFrame框架控件,顶级容器JPanel面板控件,控件容器JScrollPane带滚动条的面板控件JTabbedPane标签面板控件,将几个面板集成到一起JLabel静态框JTextField编辑框JPasswordField显示密码的编辑框(密码显示为“*”)JTextArea多行显示编辑框JButton按钮JCheckBox多选按钮ButtonGroup按钮组控件,将几个单选按钮组合在一起JRadioButton单选按钮JComboBox下列组合框JTree树形控件JTable表控件Swing常用的标准控控件总体设计——界面设计Enter(JFrame)BackgroundPanel(JPanel)JLabelJButtonJTextFieldClockPanel(JPanel)登录界面总体设计——界面设计登录界面Enter.javaEnterBackgroundPanelJLabelJButtonJTextFieldClockPanelJFrameJPanel主要函数/类功能main()程序主入口函数Enter()构造函数getLoginPanel()初始化BackgroundPanel面板函数,及添加面板上各种控件,为构造函数所调用TitleMouseAdapter类MouseAdapter子类,实现鼠标事件监听器,获取鼠标事件发生的位置,这个类被设置到BackgroundPanel中(冗余代码,无意义)总体设计——界面设计Enter.java函数调用关系系主函数main()构造函数Enter()getLoginPanel()添加面板上各各控件为按钮添加监监听器,实现现登录总体设计——界面设计Enter.java主函数publicstaticvoidmain(String[]args){

EventQueue.invokeLater(newRunnable()

{publicvoidrun()

{try{

UIManager.setLookAndFeel(newNimbusLookAndFeel());

SwingUtilities.invokeLater(newRunnable()

{publicvoidrun(){

Entermostly=newEnter();//调用构造函数mostly.setVisible(true);}});}catch(Exceptione){e.printStackTrace();}}});}调用invokeLater()方法以请求事件派发线程程(EDT)运行特定代码码设置外观风格格总体设计——界面设计Enter.java构造函数。。。publicEnter(){

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setResizable(false);

setLocationRelativeTo(null);//窗体居中

setTitle("登录窗体");

setBounds(100,100,559,285);contentPane=getLoginPanel();contentPane.setBorder(newEmptyBorder(5,5,5,5));

setContentPane(contentPane);

contentPane.setLayout(null);}设置顶级容器器JFrame属性创建BackgroundPanel,并设置其边边界属性将BackgroundPanel添加到Jframe中总体设计——界面设计Enter.java——getLoginPanel函数创建BackgroundPanel设置BackgroundPanel属性创建子控件设置子控件属属性添加子控件到到BackgroundPanel中返回BackgroundPanelBackgroundPanelJPanelJButtonJTextField...总体设计——界面设计Enter.java——登录按钮监监听器登录按钮enterButton监听器用户名、密密码检测正确?进入主页面面RemoveButtomFrame同时时销销毁毁登登录录窗窗体体提示示错错误误清空空用用户户名名及及密密码码NY总体体设设计计———main函数数逻逻辑辑main()创建建并并显显示示登登录录界界面面((Enter.java)设置置框框架架属属性性,,并并创创建建、、添添加加面面板板设置置面面板板属属性性,,并并创创建建、、添添加加各各种种控控件件为某某些些控控件件添添加加监监听听器器,,处处理理事事件件登录录按按钮钮登录录按按钮钮监监听听器器由控件获取数据创建UserBean对象,并对其属性赋值调用UserDAO的getUser函数,根据用户名、密码查询管理员ID是否存在该管理员创建并显示主框架界面(RemoveButtomFrame)提示出错,并请用户再次输入YN总体体设设计计———界面面设设计计功能能主主界界面面RemoveButtomFrameClockPanelJPanelJLabelCanlenderPanelMyJPanelBGPanelJPanelJPanelJLabelJScrollPanelJTreeSamllScrollPanel1243总体体设设计计———主框框架架界界面面设置框架属性,并创建、添加主面板1.创建时钟面板,并添加到主面板2.创建日历面板,并添加到主面板4.调用getModuleButtonGroup(),添加上方控制面板3.调用getContentPanel(),添加右下方功能面板辅助助控控件件JLabel等JTree及其其监监听听器器由JTree控制制的的内容容面面板板菜单单面面板板SmallScrollPanel添加加按钮钮面面板板,并并设设定定其其为为仅仅一一行行的的网网格格布布局局添加加各各按钮钮(GlassButton)及及其其监监听听器器总体体设设计计———界面面设设计计RemoveButtomFrameMyJPanelJPanelBGPanelCalenderPanelSmallScrollPanel主功能界面JFrameJPanelJLabelClockPanelJPanelJScrollPanelJTreeJLabelJPanel1234时钟日历功能菜单总体设计——界面设计事件响应——监听器tree.addTreeSelectionListener(newTreeSelectionListener(){@OverridepublicvoidvalueChanged(TreeSelectionEvente){if(!tree.isSelectionEmpty()){TreePathselectionPaths=tree.getSelectionPath();Objectpath=selectionPaths.getLastPathComponent();DefaultMutableTreeNodenode=(DefaultMutableTreeNode)path;StringuserObject=(String)node.getUserObject();repaint();if(userObject.equals("供货商管理")){fristLabel.setText(“供货商管理”);//改变功能区标题

sellPanel.removeAll();//清空功能区原有子面板

sellPanel.add(panelFeel.getMessage());//为功能区添加供货商子面板}elseif(userObject.equals("销售商管理")){…}}});界面设计——时钟面板获取时钟背景图片、中心点坐标启动子线程每个1秒,发送repaint事件主线程子线程paint()drawClock()界面设计——时钟面板构造函数。。publicClockPanel(){setOpaque(false);//设置为不透明background=newImageIcon(getClass().getResource(“Core.png”));//加载背景时钟图片//计算时钟的中心(用于画时、分、秒针)inticonWidth=background.getIconWidth();centerX=iconWidth/2;

inticonHeight=background.getIconHeight();centerY=iconHeight/2;

setPreferredSize(newDimension(532,286));//设置时钟面板大小

newThread(this).start();//启动子线程}界面设计——时钟面板paint函数。。。publicvoidpaint(Graphicsg){Graphics2Dg2=(Graphics2D)g.create();//获取2D绘图对象

Compositecomposite=g2.getComposite();//存储当前的Composite

g2.setComposite(AlphaComposite.SrcOver.derive(0.6f));//设置新的Composite

Calendarcalendar=Calendar.getInstance();//获取当前时间

drawClock(g2,calendar);//调用drawClock函数,绘制时钟

g2.setComposite(composite);//恢复原有的Compositeg2.drawImage(background.getImage(),0,0,this);//画背景图片

g2.dispose();//释放资源}界面设计——时钟面板drawClock函数由Calender对象获取当前前时间根据当前时间间计算时、分、秒针针位置利用Gragh2D对象画出时、、分、秒针界面设计——日历面板工具栏:getToolBar():4个JCheckBox(年、月增1或者减1),1个JFormattedTextField(显示示当前前日期期)日历显显示区区:getJPanel1():第一行为星星期Label剩余行为日日期Label调用remark()函数画小格格子日历数据:日历类:封装了日历历操作的方方法界面设计——日历面板功能工具栏——更改年、月月,并在日日历栏显示示该月份日日期日历栏——选择/标准日期工具栏(JPanel)JCheckBoxJCheckBoxJFormattedTextFieldJCheckBoxJCheckBoxGridBagLayout布局日历栏(JPanel)Jlabel(共7个,显示周周)Jlabel(共6*7个,显示日日期)有监听器GridLayout布局年份减1月份减1月份加1年份加1恢复到当前前年月界面设计——日历面板工具栏年月控制按按钮监听器。。。jButton1.addActionListener(newActionAdapter()//

添加监听器{@OverridepublicvoidactionPerformed(ActionEvente)//

监听器响应函数

{calendar.add(Calendar.MONTH,-1);//改变日历信息(月份减1)

calendarChanged();//触发其他已注册的日期改变事件监听器(如果有)

initDayButtons();//根据改变后的年月,更新日历栏

JCheckBoxsource=(JCheckBox)e.getSource();//获取该事件发生的源控件

source.setSelected(false);//将该控件设为没有选中(为了美观)

super.actionPerformed(e);//调用父类所实现的函数,更新日期文本框

}});界面设计——日历面板工具栏日期文本框框监听器。。。dateField.addMouseListener(newMouseAdapter(){

publicvoidmousePressed(MouseEvente){calendar.set(YEAR,MONTH,DAY);//设置当天日期

initDateField();//恢复工具栏日期文本框initDayButtons();//恢复日历栏日期按钮calendarChanged();//触发其他已注册的日期改变事件监听器(如果有)

}});界面设计——日历面板日历栏label监听器privatefinalclassDayClientListenerextendsMouseAdapter//

监听器类定义{@OverridepublicvoidmousePressed(MouseEvente)//

监听接口实现

{JLabellabel=(JLabel)e.getSource();//

获取事件发生的源控件

if(label.getText().isEmpty())//如果这个控件上没有日期,什么都不做,直接返回return;

reMark();//

用红色边框标记当前日期

Stringtext=label.getText();

intdayNum=Integer.parseInt(text);//

获取当前天的日期

calendar.set(Calendar.DAY_OF_MONTH,dayNum);//改变当前日历缓存对象

initDateField();//更新工具栏日期文本框

label.setOpaque(true);//

利用给不透明度和背景标记所选日期label.setBackground(newColor(0xeeee00));

calendarChanged();//触发其他已注册的日期改变事件监听器(如果有)

}

}界面设计计——菜单面板板SmallScrollPanelJbutton左控制按钮控制AlphaScrollPane的偏移位置AlphaScrollPane六个功能控制按钮GlassButton(特殊的显示效果)Jbutton右控制按钮控制AlphaScrollPane的偏移位置为每个按钮添加监听器,实现内容面板的内容切换SmallScrollPanelGlassButtonAlphaScrollPane界面设计计——菜单面板板类父控件功能描述SmallScrollPanelRemoveButtomFrame功能菜单容器面板(内含左右控制按钮、各功能按钮)AlphaScrollPaneSmallScrollPanel包含各功能按钮的面板(在SmallScrollPanel内部,但不包含左右控制按钮)JButtonSmallScrollPanel左右移动按钮GlassButtonAlphaScrollPane功能按钮界面设计计——菜单面板板AlphaScrollPane监听器——控制左右右按钮显显示privateclassScrollButtonShowListenerextendsComponentAdapterimplementsSerializable{privatestaticfinallongserialVersionUID=814596372430146361L;

@OverridepublicvoidcomponentResized(ComponentEvente)

{JScrollBarscrollBar=alphaScrollPane.getHorizontalScrollBar();//获取横向滚动条

intscrollWidth=scrollBar.getMaximum();//获取范围限制参数

intpaneWidth=alphaScrollPane.getWidth();

if(paneWidth>=scrollWidth)//在容器大于包含内容的时候隐藏左右微调按钮

{getLeftScrollButton().setVisible(false);getRightScrollButton().setVisible(false);

}

if(paneWidth<scrollWidth)//在容器小于包含内容的时候显示左右微调按钮

{getLeftScrollButton().setVisible(true);getRightScrollButton().setVisible(true);

}

}

}界面设计计——菜单面板板左右控制制按钮监监听器——控制滚动动条位置置publicvoidmousePressed(MouseEvente){Objectsource=e.getSource();//获取事件源

isPressed=true;

//判断事件源是左侧按钮还是右侧按钮,并执行相应操作if(source==getLeftScrollButton())

{scrollMoved(-1);//左移滚动条

}else

{scrollMoved(1);//右移滚动条

}

}scrollMoved()函数:启动一个个子线程程,鼠标标按下不不抬起时时,每隔隔10毫秒更新新滚动条条位置一一次(在在原有基基础上+3或-3),并刷刷新界面面界面设计计——菜单面板板六个功能能按钮((GlassButton)以“采购购进货””按钮为为例progressButton=newGlassButton();//创建按钮progressButton.setActionCommand(“采购进货”);//设置按钮事件名称//设置按钮(未选中)时显示的图片progressButton.setIcon(newImageIcon(getClass().getResource("/com/mingrisoft/frame/buttonIcons/caigou1.png")));//

创建另一个图标(当该按钮被选中是显示这个图标)ImageIconicon=newImageIcon(getClass().getResource("/com/mingrisoft/frame/buttonIcons/caigou2.png"));progressButton.setRolloverIcon(icon);//设置当按钮翻转是显示这个图标progressButton.setSelectedIcon(icon);//

设置当按钮被选中是显示这个图标progressButton.addActionListener(newtoolsButtonActionAdapter());//为按钮添加监听器界面设计计——菜单面板板六个功能能按钮((GlassButton)监听器以“采购进货货”按钮为例例if(e.getSource()==progressButton)//如果这个事件来自于“采购进货”按钮{

backPanel.removeAll();//

清空功能区面板的所有内容(backPanel为功能区面板)

backPanel.add(label_1);//

功能区面板添加新的标签(firstLabel和label_1)

fristLabel.setBounds(133,38,123,15);//label_1显示的是:“你当前位置是:”标签大小位置设定

backPanel.add(fristLabel);//firstLabel显示的是:“采购订货”

panel_1.setBounds(10,63,611,386);//设置panel_1子面板大小

StockPanelstockPanl=newStockPanel();//

创建“采购进货”功能子面板

fristLabel.setText("采购订货");

backPanel.add(stockPanl);//添加自“采购进货”子面板到backPanel面板上

repaint();//

刷新界面}界面设计——功能面板功能主界面RemoveButtomFrameClockPanelJPanelJLabelCanlenderPanelMyJPanelBGPanelJPanelJPanelJLabelJScrollPanelJTreeSamllScrollPanel1243界面设计——功能面板backPanellabel_1fristLabelStockPanelJoinDepotPanelOutDepotPanelDeptPanelPersonnelPanel采购订货仓库入库仓库出库部门门管管理理人员员管管理理JPanel基本本档档案案管管理理FeelWarePanelSellPanelWarePanelDepotPanel供货货商商销售售商商货品品档档案案仓库库界面面设设计计———功能能面面板板功能能子子面面板板基基本本功功能能删除除添加加更新新查询询JButtonJTextFieldJCombo输入入文文本本框框选择择下下拉拉框框数据据JTable新的的窗窗口口监听听器器(4个))界面面设设计计———功能能面面板板JTable控件件使使用用———维护护一一组组数数据据((记记录录))privateJTabletable;DefaultTableModeldm=newDefaultTableModel();//

创建DefaultTableModel对象…dm.setDataVector(newObject[][]{},//

表的内容

new

Object[]{“是否入库”,“编号”,“客户”,“订单号”,“交货日期”,“商品名”,“金额”,“数量”});//表头

table=newJTable(dm);//

根据DefaultTableModel对象,创建JTable对象JTableDefaultTableModel界面面数据据创建建JTable操作作JTable数据据dm.addRow(newObject[]{“入库",stock.getId(),stock.getsName(),stock.getOrderId(),stock.getConsignmentDate(),stock.getBaleName(),stock.getMoney(),stock.getCount()});界面面设设计计———功能能面面板板Model类功能描述LocalTableModel

供货商/销售商表模型WareModel

货品表模型DepotModel

仓库表模型StockModel

订单表模型JoinDepotModel

入库表模型OutDepotModel

出库表模型DeptModel

部门表模型DefaultTableModel每个个数数据据库库表表定定义义自自己己的的DefaultTableModel(Model/*.java)界面面设设计计———功能能面面板板Model/XXXModel.javaDefaultTableModel的子子类类JTableXXXModel数据库表常用函数功能getColumnName(intcolumn)返回列名称。getRowCount()

返回此数据表中的行数。getColumnCount()

返回此数据表中的列数。getValueAt(introw,intcolumn)返回row和column处单元格的属性值。setValueAt(ObjectaValue,introw,intcolumn)

设置column和row处单元格的对象值。addRow(Object[]rowData)在模型中添加一行。insertRow(introw,Object[]rowData)

在模型中的row位置插入一行。removeRow(introw)移除模型中row位置的行。界面面设设计计———功能能面面板板例::DepotModel(仓仓库库表表模模型型))publicclassDeptModelextendsDefaultTableModel//

继承DefaultTableModel{Class[]types=newClass[]{java.lang.Object.class,java.lang.String.class,//

一条记录中每个元素的类型java.lang.String.class,java.lang.String.class};boolean[]canEdit=newboolean[]{false,false,false,false};//JTable中每条表项是否可编辑(不可)publicDeptModel()//构造函数,调用其父类的构造函数,设定表头{super(newObject[][]{},newString[]{"编号","部门名称","负责人","描述"});}publicClassgetColumnClass(intcolumnIndex)//返回表中每列数据的类型(第3行定义){returntypes[columnIndex];}publicbooleanisCellEditable(introwIndex,intcolumnIndex)//返回表中每个单元是否可编辑(第5行定义){returncanEdit[columnIndex];}}界面面设设计计———功能能面面板板XXXModel.java方法输入输出描述XXXModel()无void构造函数,定义XXX表的每列的标题getColumnClass()int(列)Class返回表中指定列的类型(整型?字符型?…)isCellEditable()int(行)boolean返回给定表格单元(行及列)是否可编辑int(列)属性描述types表中每列数据的类型(列表)canEdit表中每列单元是否可编辑界面面设设计计———功能能面面板板添加加按按钮钮监监听听器器以““采采购购进进货货””按按钮钮为为例例insertButton.addActionListener(newActionListener()//添加监听器{

publicvoidactionPerformed(ActionEvente)//实现监听接口函数{InserStockFrameframe=newInserStockFrame();//创建新的添加面板frame.setVisible(true);//显示新的面板}});界面面设设计计———功能能面面板板修改改按按钮钮监监听听器器以““采采购购进进货货””按按钮钮为为例例updateButton.addActionListener(newActionListener()//添加监听器{publicvoidactionPerformed(ActionEvente)//实现监听接口函数{introw=table.getSelectedRow();//调用JTable控件方法,获取用户选中表格的行数

if(row<0)//

如果没选中任何行,那么输出提示信息,并返回{JOptionPane.showMessageDialog(getParent(),"没有选择要修改的数据!","信息提示框",JOptionPane.INFORMATION_MESSAGE);

return;}else//否则,创建并显示新的面板{

UpdateStockFrameframe=newUpdateStockFrame();//创建修改信息窗体frame.setVisible(true);}}});界面面设设计计———功能能面面板板删除除按按钮钮监监听听器器以““采采购购进进货货””按按钮钮为为例例deleteButton.addActionListener(newActionListener()//添加监听器{publicvoidactionPerformed(ActionEvente)//实现监听接口函数{introw=table.getSelectedRow();//调用JTable控件方法,获取用户选中表格的行数

if(row<0)//

如果没选中任何行,那么输出提示信息,并返回{JOptionPane.showMessageDialog(getParent(),"没有选择要删除的数据!","信息提示框",JOptionPane.INFORMATION_MESSAGE);return;//退出程序}Stringcolumn=dm.getValueAt(row,1).toString();//由JTable控件,获取表第一列(主键)的值(字符串形式)

dao.deleteStock(Integer.parseInt(column));//将字符串形式的主键转换为整型JOptionPane.showMessageDialog(getParent(),"数据删除成功!","信息提示框",JOptionPane.INFORMATION_MESSAGE);//给出提示信息}});界面面设设计计———功能能面面板板查询询按按钮钮监监听听器器以““采采购购进进货货””按按钮钮为为例例findButton.addActionListener(newActionListener()//添加监听器{publicvoidactionPerformed(ActionEvente)//实现监听接口函数{dm.setRowCount(0);//将表格内容清空Stringcondition=comboBox.getSelectedItem().toString();//获取用户选择的查询条件(JCombox)StringconditionText=conditionTextField.getText();//获取用户添加的查询条件(JTextField)if(conditionText.equals(“”))//如果用户没有添加查询条件,那么输出提示信息,并返回{JOptionPane.showMessageDialog(getParent(),"请输入查询条件!","信息提示框",JOptionPane.INFORMATION_MESSAGE);//给出提示信息return;//退出程序}if(condition.equals(“货品名称”)){

…}//

按货品名称查询if(condition.equals(“订单号”)){…}//

按订单号查询if(condition.equals(“交货日期”)){…}//

按交货日期查询}});界面设设计——功能面面板“采购购进货货”查查询按按钮监监听器器按“货货品名名称””查询询if(condition.equals("货品名称")){Listlist=dao.selectStockBySName(conditionText);//调用相应的DAO对象的方法,实现按货品名称查询法

for(inti=0;i<list.size();i++)//循环遍历查询结果,将其显示到JTable控件上

{Stockstock=(Stock)list.get(i);//获取查询记录集中第i条记录(对象)Stringoid=stock.getOrderId();//获取该记录(对象)的订单号信息intid=dao.selectJoinStockByOid(oid);//调用相应的DAO对象的方法,查询该订单号是否入库if(id<=0)//如果该订单的货品在入库表中不存在(尚未入库)

{//将该记录添加到Jtable控件中,并显示为“待入库”dm.addRow(newObject[]{“入库",stock.getId(),stock.getsName(),stock.getOrderId(),stock.getConsignmentDate(),stock.getBaleName(),stock.getMoney(),stock.getCount()});

}

else//如果指定订单号的货品名称在入库表中存在(已经入库){//将该记录添加到Jtable控件中,并显示为“已入库”dm.addRow(newObject[]{"已经入库",stock.getId(),stock.getsName(),stock.getOrderId(),stock.getConsignmentDate(),stock.getBaleName(),stock.getMoney(),stock.getCount()});

}

}}业务逻逻辑超市管理系统基本档案管理采购订货管理仓库入库管理仓库出库管理人员管理部门管理供货商管理销售商管理货品档案管理仓库管理登录业务逻逻辑删除、、查询询面板板(Panel/)beanDAO数据库库添加、、更新新面板板(Archive/)数据操操作数据映映射业务逻逻辑——Bean-DAO-数据库库实体表Bean类DAO类管理员信息tb_usersUserUserDao基本信息tb_basicMessageBasicMessagePersonnelDao联系方式tb_contactContact职务信息tb_headshipHeaderShip部门信息tb_deptDeptDeptDao入库信息tb_joinDepotJoinDepotJoinDepotDao出库信息tb_outDepotOutDepotOutDepotDao订单信息tb_stockStockStockDao仓库信息tb_depotDepotDepotDao供货商信息tb_provideProvideFeelDao销售商信息tb_sellSellSellDao商品信息tb_wareWareWareDao业务逻逻辑——Bean-DAO-数据库库业务逻逻辑——Panel-Frame-DAO实体查询/删除面板添加/更新面板DAO类管理员信息

Enter(登录)无UserDao基本信息

PersonnelPanelInsertPersonnelFrameUpdatePersonnelFramePersonnelDao联系方式职务信息部门信息

DeptPanelInsertDeptFrameUpdateDeptFrameDeptDao入库信息

JoinDepotPanelInsertJoinDepotFrameUpdateJoinDepotFrameJoinDepo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论