图1.21 供应商添加界面 图1.22 供应商修改与删除功能界面 1.7.2 基础信息模块技术分析
基础信息模块中使用了Java Swing的JTabbedPane选项卡面板组件分别为客户信息管理、商品信息管理和供应商信息管理提供了多个操作界面,例如供应商信息管理中分别存在供应商添加和供应商修改与删除界面,而这两个界面都存在于一个窗体中,可以通过选择顶部的两个选项卡,在不同的界面间来回切换。 1.7.3 供应商添加实现过程
供应商添加使用的数据表:tb_gysinfo。
(1)创建GysTianJiaPanel类,用于实现本系统的供应商添加功能。该类将在界面中显示多个用于输入供应商信息的文本框。界面中定义的主要控件如表1.6所示。 表1.6 供应商添加界面中的主要控件
控 件 类 型 控 件 名 称 quanChengF JianChengF BianMaF DiZhiF JtextField DianHuaF ChuanZhenF LianXiRenF lianXiRenDianHuaF YinHangF EmailF 主要属性设置 用 途 无 无 无 无 无 无 无 无 无 无 供应商全称 简称 邮政编码 地址 电话 传真 联系人 联系人电话 开户银行 电子信箱 续表
控 件 类 型 控 件 名 称 主要属性设置 设置按钮文本为“添加” TjButton Jbutton ResetButton 象 设置按钮文本为“重填” 设置动作监听器为 ResetActionListener类的实例对象 设置动作监听器为 TjActionListener类的实例对用 途 添加 重填 (2)创建ResetActionListener类,该类是\重填\按钮的事件监听器,它必须实现ActionListener接口,并在actionPerformed()方法中清除界面中的所有文本框内容。关键代码如下:
例程16 代码位置:光盘\\TM\\01\\JXCManager\\src\\internalFrame\\gysGuanLi\\GysTianJiaPanel.java
1. 2. 3.
class ResetActionListener implements ActionListener { //“重填”按钮的事件监听类
public void actionPerformed( ?
final ActionEvent e) { ?
4. 5. 6. 7. 8. 9.
diZhiF.setText(\//将文本框中的内容设置为空字符串 bianMaF.setText(\ chuanZhenF.setText(\ jianChengF.setText(\ lianXiRenF.setText(\
lianXiRenDianHuaF.setText(\
10. EMailF.setText(\ 11. quanChengF.setText(\ 12. dianHuaF.setText(\ 13. yinHangF.setText(\ 14. } 15. }
ActionListener接口:该接口是控件的动作监听器接口,实现该接口的类可以成为按钮和菜单项等控件的监听器。
actionPerformed():该方法是监听器ActionListener接口定义的方法,当事件产生时,将调用监听器实现类的actionPerformed()方法处理相应的业务逻辑。
ActionEvent:该类是动作事件类,当用户单击按钮时,将产生该事件,这个事件会被监听器捕获并执行相应的业务逻辑。
(3)创建TjActionListener类,该类是\添加\按钮的事件监听器,它必须实现ActionListener接口,并在actionPerformed()方法中实现用户输入的验证和供应商信息的保存。关键代码如下:
例程17 代码位置:光盘\\TM\\01\\JXCManager\\src\\internalFrame\\gysGuanLi\\GysTianJiaPanel.java
1. 2. 3. 4. 5. 6. 7. 8. 9.
class TjActionListener implements ActionListener { //“添加”按钮的事件监听类
public void actionPerformed(final ActionEvent e) {
if (diZhiF.getText().equals(\getText().equals(\验证用户输入
|| chuanZhenF.getText().equals(\jianChengF.getText().equals(\
|| yinHangF.getText().equals(\bianMaF.getText().equals(\
|| diZhiF.getText().equals(\lianXiRenF.getText().equals(\
|| lianXiRenDianHuaF.getText().equals(\ || EMailF.getText().equals(\dianHuaF.getText().equals(\
JOptionPane.showMessageDialog (GysTianJiaPanel.this, \请填写全部信息\
10. return; 11. }
12. try {
//验证是否存在同名供应商
13. ResultSet haveUser = Dao.query(\
from tb_gysinfo where name='\
14. + quanChengF.getText().trim() + \ 15. if (haveUser.next()) {
16. JOptionPane.showMessageDialog(GysTianJiaPanel.this,
17. \供应商信息添加失败,存在同名
供应商\供应商添加信息\
18. JOptionPane.INFORMATION_MESSAGE); 19. return; 20. }
21. ResultSet set = Dao.query(\
from tb_gysinfo\获取供应商的最大 ID 编号 22. String id = null;
23. if (set != null && set.next()) {
//创建新的供应商编号
24. String sid = set.getString(1).trim(); 25. if (sid == null) 26. id = \; 27. else {
28. String str = sid.substring(3);
29. id = \ + (Integer.parseInt(str) + 1); 30. } 31. }
32. TbGysinfo gysInfo = new TbGysinfo();
//创建供应商实体对象
33. gysInfo.setId(id);
//初始化供应商对象
34. gysInfo.setAddress(diZhiF.getText().trim()); 35. gysInfo.setBianma(bianMaF.getText().trim()); 36. gysInfo.setFax(chuanZhenF.getText().trim()); 37. gysInfo.setYh(yinHangF.getText().trim()); 38. gysInfo.setJc(jianChengF.getText().trim()); 39. gysInfo.setName(quanChengF.getText().trim()); 40. gysInfo.setLian(lianXiRenF.getText().trim());
41. gysInfo.setLtel(lianXiRenDianHuaF.getText().trim()); 42. gysInfo.setMail(EMailF.getText().trim()); 43. gysInfo.setTel(dianHuaF.getText().trim()); 44. Dao.addGys(gysInfo);
//调用addGys()方法存储供应商
45. JOptionPane.showMessageDialog(GysTianJiaPanel.
this, \已成功添加客户\
46. \客户添加信息
\
47. resetButton.doClick();
//触发“重填”按钮的单击动作
48. } catch (SQLException e1) { 49. e1.printStackTrace(); 50. } 51. } 52. }
1.7.4 供应商修改与删除实现过程(1) 供应商修改与删除使用的数据表:tb_gysinfo。
(1)创建GysXiuGaiPanel类,用于实现本系统的供应商修改功能。在程序界面中有多个用于输入供应商信息的文本框,这些文本框的内容会根据所选供应商自动填充,修改部分或全部内容后,单击\修改\按钮将修改供应商数据。界面中定义的主要控件如表1.7所示。 表1.7 供应商修改与删除界面中的主要控件
控 件 类 型 控 件 名 称 quanChengF jianChengF bianMaF diZhiF JtextField dianHuaF chuanZhenF lianXiRenF 主要属性设置 无 无 无 无 无 无 无 用 途 供应商全称 简称 邮政编码 地址 电话 传真 联系人 联系人电话 开户银行 电子信箱 lianXiRenDianHuaF 无 yinHangF EMailF 无 无 设置初始大小为(230, 21) 调用initComboBox()方 JComboBox Gys 法初始化下拉列表 设置组件的选择事件调用 doGysSelectAction()方法 设置按钮文本为“修改” Jbutton tjButton 设置动作监听器为 ModifyActionListener 类的实例对象 选择供应商 修改供应商信息