JAVA UI应用开发项目实训报告.docx
《JAVA UI应用开发项目实训报告.docx》由会员分享,可在线阅读,更多相关《JAVA UI应用开发项目实训报告.docx(33页珍藏版)》请在冰豆网上搜索。
JAVAUI应用开发项目实训报告
XXXXXX职业技术学院
《JAVAUI应用开发项目实训》实训报告
实训项目名称
仓库管理系统UI设计
任课教师
XXX
系部
XXX系
专业
计算机应用技术
班级
软件1532
组别
RJ003
组长
XXX
组员
XXX、XXX、XXX
完成日期
XXXX年XX月XX日
XXXXXX职业技术学院·XXX系
XXXX-XXXX学年第XX学期
《JAVAUI应用开发项目实训》实训报告
------仓库管理系统UI设计
1实训目的
JAVAUI应用开发项目实训是计算机应用技术专业重要的专业技术基础实践课程。
为了能够较好的完成实训任务,学生应具备JAVA图形界面开发技术的基础知识,实训的主要目的是要求学生将课堂上学习到的各类技术应用于实际项目,完成一个相对完整的管理系统界面开发。
本实训课程将为整个专业学习及软件设计水平的提高打下良好的基础,对提高学生项目分析与设计能力,代码编写、调试和测试能力,以及培养学生基本的、良好的团队协作能力等职业素质方面具有重要的意义。
2仓库管理系统项目设计与实现
2.1系统功能描述
传统仓库管理是手工填写表格及相关各种资料,不仅耗费时间、浪费资源,而且速度慢、效率低。
利用计算机管理可以提高查找商品的速度,迅速的将管理者要求与商品的出入,提高了工作效率,同时可靠性高、保密性好,从很大程度上降低了时间成本、人力成本。
在分析仓库管理系统基本需求的基础上,本系统设计了6大功能模块,及16个界面。
(如图1所示)
图1仓库管理系统功能结构图
在进入该系统前通过系统登录模块验证进入,界面设计如下:
图2登录模块界面图
2.2系统功能模块设计
登录成功后,进入仓库管理系统主界面。
界面设计如下:
图3仓库管理系统主界面
2.2.1“仓库商品目录管理”模块设计
图4“仓库商品目录管理”模块设计结构图
(1)仓库商品目录管理:
其下具有添加、修改、删除商品信息的功能。
图5“商品信息设置”界面设计图
单击图中“添加”按钮,进入如下图所示“商品信息添加操作”的界面。
图6“商品信息添加”界面设计图
(2)商品信息查询
图7“商品信息查询”界面设计图
2.2.2“入库信息管理”模块设计
图8“入库信息管理”模块设计机构图
(1)入库信息管理:
其下具有添加、修改、删除商品信息的功能。
图9“入库信息管理”界面设计图
单击图中“添加”按钮,进入如下图所示“商品信息添加操作”的界面。
图10“入库信息添加”界面设计图
(2)入库信息查询
图11“入库信息查询”界面设计图
2.2.3“出库信息管理”模块设计
图12“出库信息管理”模块设计机构图
(1)出库信息管理:
其下具有添加、修改、删除商品信息的功能。
图13“出库信息管理”界面设计图
单击图中“添加”按钮,进入如下图所示“商品信息添加操作”的界面。
图14“出库信息添加”界面设计图
(2)出库信息查询
图15“出库信息查询”界面设计图
2.2.4“系统管理”模块设计
注销
图16“系统管理”设计模块结构图
(1)用户管理
图17“用户管理”界面设计图
(2)密码管理
图18“密码管理”界面设计图
2.2.5“工具”模块设计
图19“工具”设计模块结构图
此模块中只有“时钟”,设计如下。
图20“时钟”界面图
2.2.6“帮助”模块设计
图21“帮助”设计模块机构图
(1)帮助信息
图22“帮助信息”界面设计图
(2)版本信息
图23“版本信息”界面设计图
2.3源代码清单与主要代码
2.3.1源文件清单
共有16个源文件,具体功能如下表所示。
表1仓库管理系统源文件清单
序号
文件名
功能描述
完成人
1
DengLu.java
登录界面
xxx
2
ZhuJieMian.java
主界面
xxx
3
ShangPinXinXiSeZhi.java
商品信息设置
xxx
4
ShangPinXinXiChaXun.java
商品信息查询
xxx
5
ShangPintianjia.java
商品添加
xxx
6
RuKushezhi.java
入库信息设置
xxx
7
RuKuchaxun.java
入库信息查询
xxx
8
RuKutianjia.java
入库添加
xxx
9
Chukushezhi.java
出库信息设置
xxx
10
Chukuchaxun.java
出库信息查询
xxx
11
Chukutianjia.java
出库添加
xxx
12
Yonghuguanli.java
用户管理
xxx
13
Mimaguanli.java
密码管理
xxx
14
Shizhong.java
时间
xxx
15
Banzhuxinxi.java
帮助信息
xxx
16
BanBenXinXi.java
版本信息
xxx
2.3.2主要代码
1.登录界面窗口代码实现(Denglu.java)
packagecom.gup;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.KeyEvent;
importjava.awt.event.KeyListener;
importjavax.swing.Box;
importjavax.swing.Icon;
importjavax.swing.ImageIcon;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JPasswordField;
importjavax.swing.JTextArea;
importjavax.swing.JTextField;
publicclassDengluextendsJFrameimplementsActionListener,KeyListener{
//创建五个盒子,其中四个水平盒子,一个垂直盒子
publicstaticStringyhm="hhhh";//定义用户名
publicstaticStringmm="123";//定义密码
publicstaticStringyhm1="1111";//定义用户名
publicstaticStringmm1="123";//定义密码
privateBoxbox0=Box.createHorizontalBox();//水平盒子
privateBoxbox1=Box.createHorizontalBox();//水平盒子
privateBoxbox2=Box.createHorizontalBox();//水平盒子
privateBoxbox3=Box.createHorizontalBox();//水平盒子
privateBoxbox4=Box.createVerticalBox();//垂直盒子
privateImageIconicon=null;//图片对象
privateJLabeltop=newJLabel();//标签
privateJLabelluser=newJLabel("用户名");
privateJLabellpwb=newJLabel("密码");
privateJTextFielduser=newJTextField("1111");//文本框
privateJPasswordFieldpwd1=newJPasswordField("123");//密码文本框
privateJButtonok=newJButton("登陆");//按钮
privateJButtoncancel=newJButton("取消");
publicstaticStringwbk="";//定义一个字符串接受文本框中的值
publicstaticStringmmk="";//定义一个字符串接受密码文本框中的值
publicDenglu(){
super("登录界面");//窗体命名
setSize(520,450);//设置窗体大小
setLocationRelativeTo(null);//使窗体居中显示
init();//实现方法
setVisible(true);//窗体可见
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicvoidinit(){
intwidth=500,height=200;
icon=newImageIcon("res/01.jpg");
icon.setImage(icon.getImage().getScaledInstance(width,height,ICONIFIED));
top.setSize(width,height);
top.setIcon(icon);
box0.add(top);
box1.add(Box.createHorizontalStrut(40));
box1.add(luser);
box1.add(user);
box1.add(Box.createHorizontalStrut(40));
box2.add(Box.createHorizontalStrut(40));
box2.add(lpwb);
box2.add(pwd1);
box2.add(Box.createHorizontalStrut(40));
box3.add(Box.createHorizontalStrut(50));
box3.add(ok);
box3.add(Box.createHorizontalStrut(30));
box3.add(cancel);
box3.add(Box.createHorizontalStrut(50));
box4.add(box0);
box4.add(Box.createVerticalStrut(30));
box4.add(box1);
box4.add(Box.createVerticalStrut(30));
box4.add(box2);
box4.add(Box.createVerticalStrut(30));
box4.add(box3);
box4.add(Box.createVerticalStrut(30));
this.add(box4);
ok.addActionListener(this);
cancel.addActionListener(this);
user.addKeyListener(this);
pwd1.addKeyListener(this);
this.addKeyListener(this);
}
@Override
publicvoidactionPerformed(ActionEvente){
wbk=user.getText().toString();
mmk=pwd1.getText().toString();
if(wbk.equals(yhm)&&mmk.equals(mm)){
if(e.getSource()==ok){
setVisible(false);
newZhuJieMian();
}
}else{
if(wbk.equals(yhm1)&&mmk.equals(mm1)){
if(e.getSource()==ok){
setVisible(false);
newZhuJieMian();
}
}else{
if(user.getText().toString().equals("")&&user.getText().toString().equals("")){
if(e.getSource()==ok){
JOptionPane.showMessageDialog(null,"账户或密码不能为空","温馨提示",JOptionPane.CANCEL_OPTION);
}
}else{
if(e.getSource()==ok){
JOptionPane.showMessageDialog(null,"登陆失败","温馨提示",JOptionPane.CANCEL_OPTION);
}
}
}
}
if(e.getSource()==user){
System.exit(0);
}
}
publicstaticvoidmain(String[]args){
newDenglu();
}
@Override
publicvoidkeyPressed(KeyEvente){
wbk=user.getText().toString();
mmk=pwd1.getText().toString();
if(e.getKeyCode()==KeyEvent.VK_ENTER&&wbk.equals(yhm)&&mmk.equals(mm)){
setVisible(false);
newZhuJieMian();
}else{
if(e.getKeyCode()==KeyEvent.VK_ENTER&&wbk.equals(yhm1)&&mmk.equals(mm1)){
setVisible(false);
newZhuJieMian();
}else{
if(user.getText().toString().equals("")&&user.getText().toString().equals("")){
if(e.getSource()==ok){
JOptionPane.showMessageDialog(null,"账户或密码不能为空","温馨提示",JOptionPane.CANCEL_OPTION);
}
}else{
if(e.getSource()==ok){
JOptionPane.showMessageDialog(null,"登陆失败","温馨提示",JOptionPane.CANCEL_OPTION);
}
}
}
}
}
@Override
publicvoidkeyReleased(KeyEventarg0){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidkeyTyped(KeyEventarg0){
//TODOAuto-generatedmethodstub
}
}
2.界面窗口代码实现(ZhuJieMian.java)
packagecom.gup;
importjava.awt.BorderLayout;
importjava.awt.Container;
importjava.awt.Graphics;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.ImageIcon;
importjavax.swing.JFrame;
importjavax.swing.JMenu;
importjavax.swing.JMenuBar;
importjavax.swing.JMenuItem;
importjavax.swing.JPanel;
publicclassZhuJieMianextendsJFrameimplementsActionListener{
privateJMenuBarjBar;
privateJMenumuli,ruku,cuku,xiton,gonju,banzhu;
privateJMenuItemssz,scx,rsz,rcx,csz,ccx,ygl,mgl,zx,sj,bz,gl;
privateJPanelp1;
privateJPanelp2;
publicZhuJieMian(){
super("仓库管理系统");
setSize(1900,1000);
into();
setLocationRelativeTo(null);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicvoidinto(){
Containerc=getContentPane();
p2=newJPanel();
p1=newJPanel(){
publicvoidpaintComponent(Graphicsg){
ImageIconicon=newImageIcon("res/123.gif");
g.drawImage(icon.getImage(),0,0,
this.getSize().width,
this.getSize().height,
this);
}
};
p1.add(p2);
jBar=newJMenuBar();
jBar.setSize(this.getWidth(),30);
p2.add(jBar);
p1.setLayout(newBorderLayout());
p1.add(jBar,BorderLayout.NORTH);
muli=newJMenu("仓库商品目录管理");
ruku=newJMenu("入库信息管理");
cuku=newJMenu("出库信息管理");
xiton=newJMenu("系统管理");
gonju=newJMenu("工具");
banzhu=newJMenu("帮助");
jBar.add(muli);
jBar.add(ruku);
jBar.add(cuku);
jBar.add(xiton);
jBar.add(gonju);
jBar.add(banzhu);
c.add(p1);
ssz=newJMenuItem("商品信息设置");
scx=newJMenuItem("商品信息查询");
rsz=newJMenuItem("入库信息设置");
rcx=newJMenuItem("入库信息查询");
csz=newJMenuItem("出库信息设置");
ccx=newJMenuItem("出库信息查询");
ygl=newJMenuItem("用户管理");
if(Denglu.wbk.equals("1111")&&Denglu.mmk.equals("123")){
ygl.setEnabled(false);
}
mgl=newJMenuItem("密码管理");
zx=newJMenuItem("注销");
sj=newJMenuItem("时间");
bz=newJMenuItem("帮助信息");
gl=newJMenuItem("管理信息");
muli.add(ssz);
muli.add(scx);
ruku.add(rsz);
ruku.add(rcx);
cuku.add(csz);
cuku.add(ccx);
xiton.add(ygl);
xiton.add(mgl);
xiton.add(zx);
gonju.add(sj);
banzhu.add(bz);
banzhu.add(gl);
ssz.addActionListener(this);
scx.addActionListener(this);
rsz.addActionListener(this);
rcx.addActionListener(this);
csz.addActionListener(this);
ccx.addActionListener(this);
ygl.addActionListener(this);
mgl.addActionListener(this);
zx.addActionListener(this);
sj.addActionListener(this);
bz.addActionListener(this);
gl.addActionListener(this);
}
publicstaticvoidmain(String[]args){
newZhuJieMian();
}
@Override
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==ssz){
newShangPi