1.7.4 供應商修改與刪除實現(xiàn)過程
供應商修改與刪除使用的數(shù)據(jù)表:tb_gysinfo。
(1)創(chuàng)建GysXiuGaiPanel類,用于實現(xiàn)本系統(tǒng)的供應商修改功能。在程序界面中有多個用于輸入供應商信息的文本框,這些文本框的內(nèi)容會根據(jù)所選供應商自動填充,修改部分或全部內(nèi)容后,單擊“修改”按鈕將修改供應商數(shù)據(jù)。界面中定義的主要控件如表1.7所示。
(2)編寫initComboBox()方法,用于初始化“選擇供應商”下拉列表框。該方法調(diào)用Dao類的getGysInfos()方法獲取數(shù)據(jù)庫中所有的供應商信息,然后將供應商的ID編號和供應商名稱封裝成Item對象并添加到“選擇供應商”下拉列表框中,在下拉列表框中Item的toString()方法將顯示供應商的名稱。initComboBox()方法的關鍵代碼如下:
例程18 代碼位置:光盤\TM\01\JXCManager\src\internalFrame\gysGuanLi\GysXiuGaiPanel.java
public void initComboBox() { //初始化供應商下拉列表框的方法
List gysInfo = Dao.getGysInfos(); //調(diào)用getGysInfos()方法獲取供應商列表
List<Item> items = new ArrayList<Item>(); //創(chuàng)建Item列表
gys.removeAllItems(); //清除下拉列表框中原有的選項
for (Iterator iter = gysInfo.iterator(); iter.hasNext();) {
List element = (List) iter.next();
Item item = new Item(); //封裝供應商信息
item.setId(element.get(0).toString().trim());
item.setName(element.get(1).toString().trim());
if (items.contains(item)) //如果 Items 列表中包含該供應商的封裝對象
continue; //跳出本次循環(huán)
items.add(item);
gys.addItem(item); //否則添加該對象到下拉列表框中
}
doGysSelectAction(); //doGysSelectAction() 方法
}
(3)編寫doGysSelectAction()方法,它在更改下拉列表框中的供應商信息時被調(diào)用,主要用于根據(jù)選擇的供應商名稱,把供應商的其他信息填充到相應的文本框中。關鍵代碼如下:
例程19 代碼位置:光盤\TM\01\JXCManager\src\internalFrame\gysGuanLi\GysXiuGaiPanel.java
private void doGysSelectAction() { //處理供應商選擇事件
Item selectedItem;
if (!(gys.getSelectedItem() instanceof Item)) {
return;
}
selectedItem = (Item) gys.getSelectedItem(); //獲取 Item 對象
TbGysinfo gysInfo = Dao.getGysInfo(selectedItem); //通過 Item 對象調(diào)用 getGysInfo() 方法獲取供應商信息
quanChengF.setText(gysInfo.getName()); //填充供應商信息到文本框中
diZhiF.setText(gysInfo.getAddress());
jianChengF.setText(gysInfo.getJc());
bianMaF.setText(gysInfo.getBianma());
dianHuaF.setText(gysInfo.getTel());
chuanZhenF.setText(gysInfo.getFax());
lianXiRenF.setText(gysInfo.getLian());
lianXiRenDianHuaF.setText(gysInfo.getLtel());
EMailF.setText(gysInfo.getMail());
yinHangF.setText(gysInfo.getYh());
}