面向对象课程设计--- 工资管理系统(2)

2019-02-20 20:18

gbc.gridwidth = GridBagConstraints.BOTH; //占据横向剩余空间 gbc.weightx = 1;//横向可扩展

gbc.gridwidth = GridBagConstraints.REMAINDER; gbLayout.setConstraints(p[0], gbc); add(p[0]);

//将gridbagconstraints对

象与组建相联系

(4)用GridLayout的布局设计分别将查询按钮、储存按钮、修改按钮和删除按钮加入

Panel[1]中,然后用GridBagLayout的布局设计将Panel[1]加入MyApplet中。具体过程是定义各一个四个元素的Button类型的数组,并实例化其中每个元素。参数分别为“查询”、“储存”、“修改”和“删除”。并依次将该数组的每个按钮加入到Panel[1]中。其实现代码如下:

Button[] b = new Button[4];

b[0] = new Button(\查询\);

b[0].addActionListener(this);//注册监听 b[1] = new Button(\储存\);

b[1].addActionListener(this); b[2] = new Button(\修改\);

b[2].addActionListener(this); b[3] = new Button(\删除\); b[3].addActionListener(this);

p[1] = new Panel(new GridLayout(1,4)); for(int i=0;i<4;i++){

p[1].add(b[i]);

p[1].add(new Label(\)); //将按钮分开 }

gbc.insets = new Insets(20,4,4,4); gbLayout.setConstraints(p[1], gbc); add(p[1]);

(5)初始化的Panel数组的第三个元素p[3]采用卡片的布局设计,卡片设计的显示形式是让要显示的东西像扑克一样叠起来,每次都只能显示最表面的一张,其他的都在下方,不显示。目的是使得查询模块、储存模块、修改模块和删除模块以卡片的形式显示在四个选择功能的按钮下方。让页面看起来简洁、清晰、明朗。

CardLayout的使用步骤:

(1) 创建一个CardLayout对象作为布局编辑器: Mycard = new CardLayout(); (2) 将容器p[3]设置为Mycard 的布局:p[3].setLayout(Mycard);

6 / 66

(3) 将p[3]加入MyApplet中; (4) 设置中各组件的显示方式。

本设计中,p[3]中各组件的显示方式只有设置为按名显示最为适合,窗口的显示如图3,创建到显示的实现代码如下:

QueryPanel qp = new QueryPanel();//查询模块 addPanel ap =new addPanel();//增加用户模块 updatePanel up = new updatePanel();//修改模块 deletePanel dp = new deletePanel();//删除模块

p[2] = new Panel(myCard); p[2].setLayout(myCard); p[2].add(qp,\查询\); p[2].add(ap,\储存\); p[2].add(up,\修改\); p[2].add(dp,\删除\);

gbc.insets = new Insets(20,4,4,4); gbLayout.setConstraints(p[2], gbc); add(p[2]);

//事件处理:当用户点击四大功能按钮时,下方显示对应的功能的子模块

publicvoid actionPerformed(ActionEvent e) { }

myCard.show(p[2], e.getActionCommand());

7 / 66

图3

2.1.3 外层模块事件处理

(1)分别将查询按钮、储存按钮、修改按钮和删除按钮注册给监听器,并在类头的继承类后面加上implements ActionListener实现接口ActionListener之后,重写接口里定义的抽象方法 publicvoid actionPerformed(ActionEvent e);在该方法里设计按名显示功能模块的程序,即

publicvoid actionPerformed(ActionEvent e) { }

myCard.show(p[2], e.getActionCommand());

8 / 66

2.2 查询模块设计

2.2.1 查询模块模样

查询模块的模样如图4所示。

图4

查询模块的设计,新建一个叫QueryPanel的java类,这各类也继承了Applet类,所以本身就是一个容器。并对本容器设置GridBagLayout的布局设计,从上往下,加入三个子容器。第一个叫select,用来装载查询方式下拉框、查询范围下拉框、排列下拉框、排序下拉框和查询按钮;第二个容器id,作用是当用用户在select容器中的查询方式选择为“按工号查询”时,光标跳转到id容器的id输入框,之后,当用户点击“按工号查询”按钮时,结果显示文本框中显示用户输入的id号即工号的员工的工资信息;第二个容器叫name,作用是当用户点击按姓名查询的时候,光标跳转到提示输入姓名的标签的后面的输入框中,同第二个一样,当用户点击“按姓名查询”按钮后,所输入姓名的员工的工作信息会显示在下方的文本里;最下方的就用文本框了,作用上述已经说明了。缺省情况下,即用户什么都没有选择的情况下,直接点击“查询”按钮后,将显示全体员工的工资信息。

查询方式下拉框中有按工号、按姓名和默认全部的选项;查询范围的下拉框中有各个阶段范围的对应选择,默认是范围不限;排列下拉框中有按基础工资、职务工资、奖金、工资总额和默认是工号的选项;排序下拉框中就升序和降序两种选择,默认是升序排序。这些下拉框的中的每一个选项都是任由用户选择的,但是选择的项不能相互矛盾,比如选择了按工号查询,就不能

9 / 66

查询模块的设计 Panel select: 查询方式 Panel id: 查询范围 排列依据 排序方式 查询按钮 标签(输入ID) 输入框 按工号查询 Panel name: 标签(输入姓名) 输入框 按姓名查询 显示查询结果: 显示结果的文本框

在输入姓名的输入框中输入信息。这些跳转控制,在事件处理中有详细的设计。

布局设计的代码和外层模块设计的完全一样,不再重复,代码中有注明,下拉框是用一个Choice类型的数组来表示的,窗口显示如图5。实现下拉框的代码如下:

Choice c[] = new Choice[5];//下拉框数组

for(int i=0;i<4;i++) { }

c[0].add(\查询方式\); c[0].add(\按工号\); c[0].add(\按姓名\); c[0].add(\默认是全部\); c[1].add(\查询范围\); c[1].add(\); c[1].add(\); c[1].add(\); c[1].add(\); c[1].add(\); c[1].add(\默认全部\); c[2].add(\排列\); c[2].add(\按工资总额\); c[2].add(\按基础工资\); c[2].add(\按职务工资\); c[2].add(\按奖金\); c[3].add(\排序\); c[3].add(\升序\); c[3].add(\降序\);

c[2].add(\默认按工号\);

c[i] = new Choice();

c[i].addItemListener(this); select.add(c[i]);

c[1].add(\);

c[3].add(\默认升序\);

10 / 66


面向对象课程设计--- 工资管理系统(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:建筑安装工程施工组织设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: