正文

进销存管理系统(20)

Java项目开发案例全程实录(第2版) 作者:明日科技


代码贴士

ItemListener:下拉列表框的事件监听器必须实现的分接口。

ItemStateChanged():当下拉列表框的选中项发生改变时将触发该方法。

ItemEvent:这是选项事件类,在用户更改带有多项选择内容的组件选项时(例如下拉选择框组件),将产生该事件。

(4)创建OkActionListener类,它必须实现ActionListener接口和接口中的actionPerformed()方法,在这个方法中获取新的库存商品价格,然后调用Dao类的updateKucunDj()方法更新库存价格。关键代码如下:

例程30 代码位置:光盘\TM\01\JXCManager\src\internalFrame\JiaGeTiaoZheng.java

class OkActionListener implements ActionListener {

public void actionPerformed(final ActionEvent e) {

kcInfo.setDj(Double.valueOf(danJia.getText()));

kcInfo.setKcsl(Integer.valueOf(kuCunShuLiang.getText()));

int rs = Dao.updateKucunDj(kcInfo);

if (rs > 0)

JOptionPane.showMessageDialog(getContentPane(), "价格调整完毕。",

kcInfo.getSpname() + "价格调整",

JOptionPane.QUESTION_MESSAGE);

}

}

1.10.4 单元测试

在价格调整界面中输入单价时,如果输入“1l33”程序将抛出NumberFormatException异常,如图1.31所示。这是因为输入单价的数字格式不对,注意输入值“1l33”的第二个“l”字符并不是数字,而是英文字母L的小写形式,字母当然不能用作数字,所以产生了这个错误,导致程序无法执行价格调整。

解决这一问题的方法是在执行价格调整之前,对输入的单价进行数字格式验证。可是,非要等操作员输入单价之后,再验证输入单价的正确与否吗?如果利用按键监听器,监听“单价”文本框中的每一次按键,当按键是数字时,继续接收输入;反之,当按键不是数字或小数点时(那它就应该是字母或其他的什么,反正不是数字),就取消本次按键的输入。这样在用户输入时,就能够有效地屏蔽非数字格式的输入,这比之前的数字格式验证更有效。关键代码如下:

例程31  代码位置:光盘\TM\01\JXCManager\src\internalFrame\JiaGeTiaoZheng.java

danJia.addKeyListener(new KeyAdapter() { //添加按键监听器

public void keyTyped(KeyEvent e) {

String numStr = "0123456789." + (char) 8; //数字格式的字符串,其中(char)8是回退键,用于删除字符

if (numStr.indexOf(e.getKeyChar()) < 0) //如果按键字符不在数字格式字符串中

e.consume(); //销毁按键对象

else //否则

updateJinE(); //更新库存金额

}

});

 


上一章目录下一章

Copyright © 读书网 www.dushu.com 2005-2020, All Rights Reserved.
鄂ICP备15019699号 鄂公网安备 42010302001612号