图9
2.4.2 修改模块事件处理
当用户点击主模块中的修改按钮时,下方将显示修改模块的界面。修改界面中结构比较简
单,两个下拉框和两个输入文本框,两个下拉框分别是修改方式的选择和修改项的选择。
(1)修改方式中有修改行和修改列两种选择,修改行是修改一行,然后选择修改项,这种情况必须输入工号,新值在不输入的情况下将以0为缺省型,但是不推荐。
(2)当用户选择的修改方式为修改列时,不需要输入工号,此时,工号输入框不能进行输入,只要为输入框设置属性setFocusable(false);即可;当用户选择修改行时重置过来即setFocusable(true);即可。
(3)做完(1),(2)的选择后,用户点击修改按钮时,系统将弹出确认修改的对话框,让 用户选择是都确认修改,如果用户点击对话框上的确认,系统将执行修改。如果修改成功,系统将会弹出修改成功的对话框。操作实例如图9,关键代码如下:
int row;
if(e.getActionCommand()==\修改\){ try {
num = Integer.parseInt(no.getText()); num=-1;
} catch (NumberFormatException e2) { } try {
newValue = Integer.parseInt(data.getText()); newValue = -1;
} catch (NumberFormatException e1) { }
if(or==1 && !colum.equals(\) &&num>=0 &&newValue>=0){
y_n = new Dialog(this.y_n,\确定修改?\,true);
//选择的是修改行
//实例化一个对话框 Panel p1 = new Panel();
Y = new Button(\); Y.addActionListener(this); N = new Button(\); N.addActionListener(this);
p1.add(new Label(\确认请按“yes”,撤销请按“no”\)); p1.add(Y); p1.add(N);
y_n.add(\,p1);
16 / 66
{ }
y_n.pack();
y_n.setVisible(true);
y_n = new Dialog(this.y_n,\确定修改?\,true); Panel p1 = new Panel(); Y = new Button(\); Y.addActionListener(this); N = new Button(\); N.addActionListener(this);
p1.add(new Label(\确认请按“yes”,撤销请按“no”\)); p1.add(Y); p1.add(N);
y_n.add(\,p1); y_n.pack();
y_n.setVisible(true);
}elseif(or==2 && !colum.equals(\)&&newValue>=0){
}else
y_n = new Dialog(this.y_n,\信息不全\,true); Panel p1 = new Panel(); Y = new Button(\); Y.addActionListener(this);
p1.add(new Label(\您选择的条件有误,请重新选填;按“yes”继
p1.add(Y);
y_n.add(\,p1); y_n.pack();
y_n.setVisible(true);
续补全\));
}
if(e.getSource()==Y&&or==1 && !colum.equals(\) &&num>=0
&&newValue>=0){//选择修改行 y_n.dispose();
success = new Dialog(this.success,\修改成功\ ,true); Panel p2 = new Panel();
p2.add(new Label(\修改成功!\)); confirm = new Button(\确认\);
confirm.addActionListener(this); p2.add(confirm); success.add(p2); success.pack();
17 / 66
HibernateOperate q = new HibernateOperate(); q.testUpdateByRow(colum, num, newValue);
success.setVisible(true);
}elseif(e.getSource()==Y&&or==2
&& !colum.equals(\)&&newValue>=0){ //确认修改列 y_n.dispose();
HibernateOperate q = new HibernateOperate(); row = q.testUpdateByColum(colum, newValue); if(row>0){ }
y_n.dispose();
success = new Dialog(this.success,\修改成功\ ,true); Panel p2 = new Panel();
p2.add(new Label(\修改成功!\)); confirm = new Button(\确认\);
confirm.addActionListener(this); p2.add(confirm); success.add(p2); success.pack();
success.setVisible(true);
}elseif(e.getActionCommand()==\){
success = new Dialog(this.success,\修改失败\ ,true); Panel p2 = new Panel();
p2.add(new Label(\修改失败!\)); confirm = new Button(\确认\);
confirm.addActionListener(this); p2.add(confirm); success.add(p2); success.pack();
success.setVisible(true); y_n.dispose();
}else
if(e.getActionCommand()==\确认\){ success.dispose(); }
2.5 删除模块设计
2.5.1 删除模块模样
删除模块模样如图10所示。
删除模块设计: 输入提示(工号) 输入框 删除按钮 文本框,用来显示将要删除的用户信息: 18 / 66 显示用户信息
图10
删除模块的设计,新建一个叫DeletePanel的java类,布局设计同上。删除容器中加
入了一个子容器select,Panel select中加入了提示输入工号的标签、工输入框、空标签和删除按钮;下方是一个和select平级的文本框,用来显示用户删除的员工的信息。功能和实现都非常简单,没有超出前面设计的范围,故简略说明,窗口显示如图11所示。
图11
2.5.2删除模块事件处理
该模块几个模块中事件处理最简单的一个模块,其中需要说明的就是删除操作只能按工号
删除。当用户输入工号后,点击删除按钮是并未进行删除操作,系统将准备删除的员工信息打印在下方的显示文本框中,当用户点击确认对话框中的确认时,系统才进行员工信息删除。操作实例如图12,关键代码如下:
if(e.getActionCommand()==\删除\){ try {
int a = Integer.parseInt(input.getText());
19 / 66
}
HibernateOperate q = new HibernateOperate(); q.testQueryById(a,result);
} catch (NumberFormatException e1) { result.setText(\请输入合法的整数!!\); }
y_n = new Dialog(this.y_n,\确定删除?\,true); Panel p1 = new Panel(); Y = new Button(\); Y.addActionListener(this); N = new Button(\); N.addActionListener(this);
p1.add(new Label(\确认请按“yes”,撤销请按“no”\)); p1.add(Y); p1.add(N);
y_n.add(\,p1); y_n.pack();
y_n.setVisible(true);
if(e.getSource()==Y){
y_n.dispose();
id = Integer.parseInt(input.getText()); HibernateOperate q = new HibernateOperate(); if(q.testDeleteById(id)){ }
20 / 66
success = new Dialog(this.success,\删除成功\ ,true); Panel p2 = new Panel();
p2.add(new Label(\删除成功!\)); confirm = new Button(\确认\);
confirm.addActionListener(this); p2.add(confirm); success.add(p2); success.pack();
success.setVisible(true);
success = new Dialog(this.success,\删除失败\ ,true); Panel p2 = new Panel();
p2.add(new Label(\该用户不存在,删除失败!\)); confirm = new Button(\确认\);
confirm.addActionListener(this); p2.add(confirm); success.add(p2); success.pack();
success.setVisible(true);
}else{