1.7.2 基础信息模块技术分析
基础信息模块中使用了Java Swing的JTabbedPane选项卡面板组件分别为客户信息管理、商品信息管理和供应商信息管理提供了多个操作界面,例如供应商信息管理中分别存在供应商添加和供应商修改与删除界面,而这两个界面都存在于一个窗体中,可以通过选择顶部的两个选项卡,在不同的界面间来回切换。
1.7.3 供应商添加实现过程
供应商添加使用的数据表:tb_gysinfo。
(1)创建GysTianJiaPanel类,用于实现本系统的供应商添加功能。该类将在界面中显示多个用于输入供应商信息的文本框。界面中定义的主要控件如表1.6所示。
(2)创建ResetActionListener类,该类是“重填”按钮的事件监听器,它必须实现ActionListener接口,并在actionPerformed()方法中清除界面中的所有文本框内容。关键代码如下:
例程16 代码位置:光盘\TM\01\JXCManager\src\internalFrame\gysGuanLi\GysTianJiaPanel.java
u class ResetActionListener implements ActionListener { //“重填”按钮的事件监听类
v public void actionPerformed(
w final ActionEvent e) {
diZhiF.setText(""); //将文本框中的内容设置为空字符串
bianMaF.setText("");
chuanZhenF.setText("");
jianChengF.setText("");
lianXiRenF.setText("");
lianXiRenDianHuaF.setText("");
EMailF.setText("");
quanChengF.setText("");
dianHuaF.setText("");
yinHangF.setText("");
}
}
U 代码贴士
u ActionListener接口:该接口是控件的动作监听器接口,实现该接口的类可以成为按钮和菜单项等控件的监听器。
v actionPerformed():该方法是监听器ActionListener接口定义的方法,当事件产生时,将调用监听器实现类的actionPerformed()方法处理相应的业务逻辑。
w ActionEvent:该类是动作事件类,当用户单击按钮时,将产生该事件,这个事件会被监听器捕获并执行相应的业务逻辑。
(3)创建TjActionListener类,该类是“添加”按钮的事件监听器,它必须实现ActionListener接口,并在actionPerformed()方法中实现用户输入的验证和供应商信息的保存。关键代码如下:
例程17 代码位置:光盘\TM\01\JXCManager\src\internalFrame\gysGuanLi\GysTianJiaPanel.java
class TjActionListener implements ActionListener { //“添加”按钮的事件监听类
public void actionPerformed(final ActionEvent e) {
if (diZhiF.getText().equals("") || quanChengF.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, "请填写全部信息");
return;
}
try { //验证是否存在同名供应商
ResultSet haveUser = Dao.query("select * from tb_gysinfo where name='"
+ quanChengF.getText().trim() + "'");
if (haveUser.next()) {
JOptionPane.showMessageDialog(GysTianJiaPanel.this,
"供应商信息添加失败,存在同名供应商", "供应商添加信息",
JOptionPane.INFORMATION_MESSAGE);
return;
}
ResultSet set = Dao.query("select max(id) from tb_gysinfo"); //获取供应商的最大 ID 编号
String id = null;
if (set != null && set.next()) { //创建新的供应商编号
String sid = set.getString(1).trim();
if (sid == null)
id = "gys1001";
else {
String str = sid.substring(3);
id = "gys" + (Integer.parseInt(str) + 1);
}
}
TbGysinfo gysInfo = new TbGysinfo(); //创建供应商实体对象
gysInfo.setId(id); //初始化供应商对象
gysInfo.setAddress(diZhiF.getText().trim());
gysInfo.setBianma(bianMaF.getText().trim());
gysInfo.setFax(chuanZhenF.getText().trim());
gysInfo.setYh(yinHangF.getText().trim());
gysInfo.setJc(jianChengF.getText().trim());
gysInfo.setName(quanChengF.getText().trim());
gysInfo.setLian(lianXiRenF.getText().trim());
gysInfo.setLtel(lianXiRenDianHuaF.getText().trim());
gysInfo.setMail(EMailF.getText().trim());
gysInfo.setTel(dianHuaF.getText().trim());
Dao.addGys(gysInfo); //调用addGys()方法存储供应商
JOptionPane.showMessageDialog(GysTianJiaPanel.this, "已成功添加客户",
"客户添加信息", JOptionPane.INFORMATION_MESSAGE);
resetButton.doClick(); //触发“重填”按钮的单击动作
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}