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