正文

進銷存管理系統(tǒng)(11)

Java項目開發(fā)案例全程實錄(第2版) 作者:明日科技


1.7.2 基礎(chǔ)信息模塊技術(shù)分析

基礎(chǔ)信息模塊中使用了Java Swing的JTabbedPane選項卡面板組件分別為客戶信息管理、商品信息管理和供應(yīng)商信息管理提供了多個操作界面,例如供應(yīng)商信息管理中分別存在供應(yīng)商添加和供應(yīng)商修改與刪除界面,而這兩個界面都存在于一個窗體中,可以通過選擇頂部的兩個選項卡,在不同的界面間來回切換。

1.7.3 供應(yīng)商添加實現(xiàn)過程

供應(yīng)商添加使用的數(shù)據(jù)表:tb_gysinfo。

(1)創(chuàng)建GysTianJiaPanel類,用于實現(xiàn)本系統(tǒng)的供應(yīng)商添加功能。該類將在界面中顯示多個用于輸入供應(yīng)商信息的文本框。界面中定義的主要控件如表1.6所示。

(2)創(chuàng)建ResetActionListener類,該類是“重填”按鈕的事件監(jiān)聽器,它必須實現(xiàn)ActionListener接口,并在actionPerformed()方法中清除界面中的所有文本框內(nèi)容。關(guān)鍵代碼如下:

例程16  代碼位置:光盤\TM\01\JXCManager\src\internalFrame\gysGuanLi\GysTianJiaPanel.java

u class ResetActionListener implements ActionListener { //“重填”按鈕的事件監(jiān)聽類

v public void actionPerformed(

w final ActionEvent e) {

diZhiF.setText(""); //將文本框中的內(nèi)容設(shè)置為空字符串

bianMaF.setText("");

chuanZhenF.setText("");

jianChengF.setText("");

lianXiRenF.setText("");

lianXiRenDianHuaF.setText("");

EMailF.setText("");

quanChengF.setText("");

dianHuaF.setText("");

yinHangF.setText("");

}

}

U 代碼貼士

u ActionListener接口:該接口是控件的動作監(jiān)聽器接口,實現(xiàn)該接口的類可以成為按鈕和菜單項等控件的監(jiān)聽器。

v actionPerformed():該方法是監(jiān)聽器ActionListener接口定義的方法,當(dāng)事件產(chǎn)生時,將調(diào)用監(jiān)聽器實現(xiàn)類的actionPerformed()方法處理相應(yīng)的業(yè)務(wù)邏輯。

w ActionEvent:該類是動作事件類,當(dāng)用戶單擊按鈕時,將產(chǎn)生該事件,這個事件會被監(jiān)聽器捕獲并執(zhí)行相應(yīng)的業(yè)務(wù)邏輯。

(3)創(chuàng)建TjActionListener類,該類是“添加”按鈕的事件監(jiān)聽器,它必須實現(xiàn)ActionListener接口,并在actionPerformed()方法中實現(xiàn)用戶輸入的驗證和供應(yīng)商信息的保存。關(guān)鍵代碼如下:

例程17  代碼位置:光盤\TM\01\JXCManager\src\internalFrame\gysGuanLi\GysTianJiaPanel.java

class TjActionListener implements ActionListener { //“添加”按鈕的事件監(jiān)聽類

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, "請?zhí)顚懭啃畔?);

return;

}

try { //驗證是否存在同名供應(yīng)商

ResultSet haveUser = Dao.query("select * from tb_gysinfo where name='" 

+ quanChengF.getText().trim() + "'");

if (haveUser.next()) {

JOptionPane.showMessageDialog(GysTianJiaPanel.this,

"供應(yīng)商信息添加失敗,存在同名供應(yīng)商", "供應(yīng)商添加信息",

JOptionPane.INFORMATION_MESSAGE);

return;

}

ResultSet set = Dao.query("select max(id) from tb_gysinfo"); //獲取供應(yīng)商的最大 ID 編號

String id = null;

if (set != null && set.next()) { //創(chuàng)建新的供應(yīng)商編號

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(); //創(chuàng)建供應(yīng)商實體對象

gysInfo.setId(id); //初始化供應(yīng)商對象

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); //調(diào)用addGys()方法存儲供應(yīng)商

JOptionPane.showMessageDialog(GysTianJiaPanel.this, "已成功添加客戶",

"客戶添加信息", JOptionPane.INFORMATION_MESSAGE);

resetButton.doClick(); //觸發(fā)“重填”按鈕的單擊動作

} catch (SQLException e1) {

e1.printStackTrace();

}

}

}

 


上一章目錄下一章

Copyright ? 讀書網(wǎng) leeflamesbasketballcamps.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號