疯狂java实战演义第章 图书进存销系统Word格式文档下载.docx

上传人:b****1 文档编号:15020448 上传时间:2022-10-26 格式:DOCX 页数:59 大小:356.63KB
下载 相关 举报
疯狂java实战演义第章 图书进存销系统Word格式文档下载.docx_第1页
第1页 / 共59页
疯狂java实战演义第章 图书进存销系统Word格式文档下载.docx_第2页
第2页 / 共59页
疯狂java实战演义第章 图书进存销系统Word格式文档下载.docx_第3页
第3页 / 共59页
疯狂java实战演义第章 图书进存销系统Word格式文档下载.docx_第4页
第4页 / 共59页
疯狂java实战演义第章 图书进存销系统Word格式文档下载.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

疯狂java实战演义第章 图书进存销系统Word格式文档下载.docx

《疯狂java实战演义第章 图书进存销系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《疯狂java实战演义第章 图书进存销系统Word格式文档下载.docx(59页珍藏版)》请在冰豆网上搜索。

疯狂java实战演义第章 图书进存销系统Word格式文档下载.docx

销售治理界面

销售治理界面主要用于进行书的销售操纵,添加一本需要生意业务的书、从生意业务列表中移除该书、进行生意业务等操纵,在本界面的上半部门为生意业务记载列表,我们约定生意业务记载列表所显示的为今天进行的生意业务,并提供一个输入日期的输入框,可以凭据日期进行查询该天的生意业务记载。

本界面的下半部门为显示某笔生意业务的具体信息,包罗该笔生意业务所涉及的金额、销售量、生意业务日期、生意业务所涉及的书等信息。

开端的界面如图9.2所示。

图9.2销售界面

如图9.2,销售治理界面的生意业务记载列表中,每列的字段分别为该生意业务所涉及的书本名、总价、生意业务日期、总数量。

销售治理界面的下面部门,是显示具体某笔生意业务的界面,显示对应某笔生意业务的总价、生意业务日期、总数量、生意业务涉及书的列表,其中生意业务中涉及书的列表中,包罗书的书名、单价、和本次生意业务中该本书出售的数量。

生意业务中涉及的书列表下,可以选择书和输入书的数量,并提供添加和删除按钮,当选择了一本书并输入相应的生意业务数量,再点击添加时,即可向生意业务涉及的书列表中添加书的记载,固然也可以进行删除操纵。

在界面的最上面,有一个查询按键,可以输入日期进行生意业务记载查询。

注:

具体某笔生意业务的界面(界面的下面部门),总价、生意业务日期和总数量是不可输入的,这是由于总价是由各本书的单价乘以生意业务数量得出来的,生意业务日期是当前生意业务时系统的时间为准的,总数量是各本书的生意业务数量总和,因此并不需要人手进行输入。

另外,如果在书本的下拉框中选择了某本书时,将会带出该本书的单介和库存,好让使用者在操纵时对该本书的状况有所了解。

在本例中,每一个界面对应一个JPanel,每个界面都是一个JPanel类的子类,销售治理界面里面是一个JSplitPane东西,上面放一个个JScrollPane东西,下面部门也是一个JScrollPane东西。

上面的JScrollPane东西主要存放一个JTable,下面的JScrollPane主要放一些Box东西进行结构,详细请看图书进存销系统代码清单中的SalePanel类。

9.2.3入库治理界面

入库治理界面和销售治理界面的结构大抵相同,只是其中的数据列和文字有所差距。

入加治理界面如图9.3所示。

图9.3库存治理界面

与销售治理界面类似,上面的列表是入库记载,一条入库记载包罗入库时所涉及的书本、入库日期和入库书本的总数量。

界面下面部门是具体某条入库记载的具体信息,包罗入库日期、总数量和入库书本的列表,同样地,入库日期与总数量都不可以手动输入。

在新增一条入库记载时,可以向书本列表添加和删除书本,体现该入库记载中所涉及的书本及对应的数量。

在选择某本书时,需要自动带出该书的库存。

在本例中,入库治理界面对应的类为RepertoryPanel类,是JPanel的子类。

9.2.4书本治理界面

书本治理界面主要包罗书本的查询、列表、检察等功效,书本在本例中作为底子数据的脚色,主要用于销售和入库。

这里需要注意的是,在新增一本书的时候,该书的库存为0,只有经过销售和入库才会对书的库存量产生影响。

书的根本信息除了书名、代价介绍、所属出书社和书的种类外,还需要有书的图片,为简朴起见,本例中的每本书只有一张图片,因此不需要另外创建表来存放书的图片。

书本治理界面如图9.4所示。

图9.4书本治理界面

书本治理界面上面的列表主要显示书本名称、简介、所属种类、出书社、库存数量和代价这些信息,此处的书本名称与销售治理(入库治理)界面中的书本名称有所区别,这里的书本名称的列宽较窄,这是由于销售(入库)中所涉及的是多本书,而书本治理界面中每一条书的记载只是代表一本书。

在界面的下方有一个表单,用于检察、修改和添加书本操纵,表单的右边是书的图片显示区,用于显示书本所对应的缩略图,当用户点击缩略图的时候,可以弹出新的窗口用于展示大图。

与前面的界面一样,在步伐中,我们新增一个BookPanel作为该界面。

9.2.5种类治理界面

书的种类,体现一本书是属于哪个种类的,例如盘算机、文学、执法等等,这些都是书的种类,我们提供一个种类治理界面,可以用于治理各个种类。

种类在本例中与书本一样,属于底子数据。

新增种类并不需要任何约束,只需要输入种类的名称即可。

在书的治理界面中,如果需要添加一本书,必须选择该书所对应的种类。

种类治理界面如图9.5所示。

图9.5种类治理界面

如图9.5所示,种类治理界面并不庞大,上面是一个简朴的列表,下面是普通的检察、新增与修改的表单。

在步伐中,我们新增一个TypePanel作为该界面。

出书社治理界面

添加一本书,除了需要有种类之外,还需要选择该书的出书社,我们提供一个出书社治理界面。

如图9.6所示。

图9.6出书社治理界面

出书社列表中,主要显示出书社名称、联系人、联系电话和简介这些信息,下面的表单与前面几个界面的表单类似,都是用于检察、修改和新增。

在步伐中,我们新增一个ConcernPanel来体现这个界面。

到此,我们所需要的界面已经全部完成了,在中我们将对各个界面的代码进行优化,再去为主界面加上相应的菜单,我们的界面就全部完成。

修改界面代码

本例中涉及的各个界面,我们可以发明界面险些都大同小异,界面上面部门是一个列表,下面是一个表单,因此,我们可以将这几个界面的配合部门提取出来,作为每个界面东西(JPanel)的父类,将一些可以重用的代码提升至父类,并可以使用“模板要领”,提供一些抽象的要领让各个子类去实现。

以下代码为各个界面东西的父类(CommonPanel)的代码。

代码清单:

code\book\src\org\crazyit\book\ui\CommonPanel.java

privateJTabletable;

//存放数据的table

protectedVector<

Vector>

datas;

//列表数据

publicvoidsetJTable(JTabletable){

this.table=table;

}

publicJTablegetJTable(){

returnthis.table;

publicVector<

getDatas(){

returndatas;

publicvoidsetDatas(Vector<

datas){

this.datas=datas;

//将数据设置进JTable中

publicvoidinitData(){

if(this.table==null)return;

DefaultTableModeltableModel=(

//将数据设入表格Model中

tableModel.setDataVector(getDatas(),getColumns());

//设置表格样式

setTableFace();

//刷新列表的要领

publicvoidrefreshTable(){

initData();

getJTable().repaint();

//获取表列聚集,由子类去实现

publicabstractVector<

String>

getColumns();

//设置列表的样式,由子类去实现

publicabstractvoidsetTableFace();

//设置数据列表的要领,由子类去实现

publicabstractvoidsetViewDatas();

//清空界面下边的列表

publicabstractvoidclear();

//给子类使用的要领,用于获取一个列表的id列值

publicStringgetSelectId(JTabletable){

introw=table.getSelectedRow();

intcolumn=table.getColumn("

id"

).getModelIndex();

Stringid=(String)table.getValueAt(row,column);

returnid;

以上的代码,提供一个JTable的属性,这是因为每个界面中都有一个主要的列表东西,例如销售治理界面中的销售记载列表、书本治理界面中的书本列表等。

注意代码中的黑体部门,都是由子类去实现的要领,getColumns()由子类去提供列表的列聚集;

setTableFace()是由子类去设置JTable的显示,例如需要设置某一列的宽度大概设置列表的行高等等;

而setViewDatas()要领是重新去数据库读取数据,由子类去实现;

clear()要领是刷新每个界面下边的表单,同样由子类去实现。

在CommonPanel中提供了一个getSelectId要领,用来得到JTable属性中所选中的某一行中id列的值,也就是意味着在列表中,必须要有一个列名叫做id的列。

父类界说好范例之后,子类就可以凭据差别的情况,给父类差别的列,让父类进行显示,除了需要提供列的聚集外,还需要提供数据,也就是CommonPanel中的datas属性。

我们这里提供了一个setViewDatas的要领,主要从数据库中读取相关的数据,再调用父类的initDatas要领构建列表。

那么存放各个界面东西的JFrame类中,可以提供一个要领,当界面产生转换时,就调用setViewDatas要领,具体代码如下。

code\book\src\org\crazyit\book\ui\MainFrame.java

//切换各个界面

privatevoidchangePanel(CommonPanelcommonPanel){

//移除当前显示的JPanel

this.remove(currentPanel);

//添加需要显示的JPanel

this.add(commonPanel);

//设置当前的JPanel

this.currentPanel=commonPanel;

this.repaint();

this.setVisible(true);

//调用CommonPanel的要领重新读取数据并刷新列表

commonPanel.setViewDatas();

//清空界面下边的表单

commonPanel.clear();

以上代码的黑体部门,调各个界面东西父类的se

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1