版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 數(shù)據(jù)庫課程設計</b></p><p> 系 、 部: 計算機與信息科學系 </p><p> 學 生1: </p><p> 學 生2: </p><p> 專 業(yè): 計算機科學與技術 </p><p> 班
2、級: </p><p> 完成時間: 2011年12月29日 </p><p> 數(shù)據(jù)庫設計題目:編程詞典用戶管理系統(tǒng)</p><p><b> 數(shù)據(jù)庫設計階段</b></p><p><b> 相關的E-R圖</b></p><p> 客
3、戶信息表tb-Buyer的E-R圖</p><p> 詞典信息表tb-Dictionary的E-R圖</p><p> 銷售主要信息表tb-MainSell的E-R圖</p><p> 銷售明細信息表tb-DetailSell的E-R圖</p><p> 操作員信息表tb-Operater的E-R圖</p><p&
4、gt;<b> 數(shù)據(jù)流圖:</b></p><p><b> 關系模式:</b></p><p> 客戶信息表tb-Buyer(buyerid,identityCard,buyer,sex,birthday,address,postalcode,telephone,fax,handest,QQ,email)</p><p
5、><b> 詞典信息表</b></p><p> tb-Dictionary(id,cdId,cdName,price)</p><p> 銷售主要信息表tb-MainSell(sellId,category,totalNumber,totelMoney,buyer,sellDate,operater,dealWithMan,buyerId)</p&
6、gt;<p><b> 銷售明細信息表</b></p><p> tb-DetailSell(id,sellId,buyerId,cdId,price,amount,totalMoney)</p><p><b> 操作員信息表</b></p><p> tb-Operater(id,username
7、,password,grade)</p><p> 數(shù)據(jù)庫的物理結構設計與數(shù)據(jù)字典</p><p> 在 D 盤目錄下創(chuàng)建編程管理數(shù)據(jù)庫: </p><p> CREATE DATABASE db_ProgramDictionary </p><p> ON PRIMARY </p><p> (NAME=t
8、ushu data, filename='D:\tushu.mdf', size=5MB, Maxsize=25MB,</p><p> FILEGROWTH=10%) </p><p> LOG ON (NAME=tushu_log, filename='D:\tushu.ldf', size=5MB, Maxsize=10MB, filegrowth
9、=1MB)</p><p> 客戶信息表tb-Buyer</p><p><b> 詞典信息表</b></p><p> tb-Dictionary</p><p> 銷售主要信息表tb-MainSell(sellId,category,totalNumber,totelMoney,buyer,sellDate,
10、operater,dealWithMan,buyerId)</p><p><b> 銷售明細信息表</b></p><p> tb-DetailSell(id,sellId,buyerId,cdId,price,amount,totalMoney)</p><p><b> 操作員信息表</b></p>
11、<p> tb-Operater(id,username,password,grade)</p><p><b> 需求分析</b></p><p><b> 系統(tǒng)登錄</b></p><p> 系統(tǒng)登錄功能可以保障信息的安全,防止他人非法進入系統(tǒng),要求只有合格用戶輸入正確的用戶名和密碼,才能進入系統(tǒng)
12、進行操作,否則不能進入系統(tǒng)。</p><p><b> 添加詞典信息</b></p><p> 合法用戶通過正確的用戶名和密碼進入系統(tǒng)后,可以通過“基本信息管理”菜單中的“添加詞典信息”菜單項或單擊工具欄上的“添加詞典信息”按鈕,打開“添加詞典信息”對話框添加詞典信息。</p><p><b> 添加客戶信息</b>
13、</p><p> 合法用戶進入系統(tǒng)后,可以添加編程詞典客戶的基本信息,目的是方便對詞典客戶的管理和該客戶所購買編程詞典信息的管理,當需要銷售詞典時需要用到客戶信息。</p><p><b> 詞典銷售</b></p><p> 用于完成詞典的銷售操作,并且在銷售時可以批量添加多條銷售信息,也就是針對一個用戶可以在一個界面中銷售多種詞典,
14、并且每添加一種編程詞典信息,系統(tǒng)會自動計算相關數(shù)據(jù),銷售成功后會將銷售信息分別保存在銷售主表和銷售明細表中。</p><p><b> 查詢統(tǒng)計</b></p><p> 用于完成詞典銷售信息的查詢和相關數(shù)據(jù)的統(tǒng)計,用戶通過該功能可以按客戶名稱,詞典名稱,銷售日期等多種方式進行查詢,并將查詢結果以表格的形式顯示出來,同時會對相關數(shù)據(jù)進行統(tǒng)計,如合計數(shù)量和合計金額。
15、</p><p><b> 修改銷售信息</b></p><p> 用于完成詞典銷售后的修改操作,并且在修改銷售信息是,可以在一個界面中修改多種銷售信息,并且每修改一種編程詞典的銷售信息,系統(tǒng)會自動計算相關數(shù)據(jù),銷售成功后會將銷售信息分別保存在銷售主表和銷售明細中。</p><p><b> 添加用戶</b><
16、/p><p> 管理級別的用戶通過正確的用戶名和密碼進入系統(tǒng)后,可以通過該功能添加新的用戶,并為其指定密碼,一旦新用戶添加成功,以后該用戶就可以通過正確的密碼進入系統(tǒng)從而可以對系統(tǒng)進行操作。</p><p><b> 修改密碼</b></p><p> 為了保護密碼的安全,在使用一段時間后,用戶可以通過該功能修改密碼,為了避免其他人任意修改密
17、碼,要求用戶必須輸入正確的原密碼,然后才可以修改密碼,否則不允許其修改密碼。</p><p><b> 功能結構圖</b></p><p> 編程詞典用戶管理功能結構圖</p><p><b> 流程圖:</b></p><p><b> N</b></p>
18、<p><b> Y</b></p><p> 代碼,注解與測試用例</p><p> 為JTable表格設置單元格編輯器</p><p> TableColumn cdNameColumn=tb_detailSell.getColumnModel().getColumn(0);</p><p>
19、 // 創(chuàng)建單元格編輯器</p><p> DefaultCellEditor cdNameEditor=new DefaultCellEditor(getCmb_tableCellEdit());</p><p> cdNameEditor.setClickCountToStart(2); // 單擊兩次鼠標啟動編輯器</p>&
20、lt;p> cdNameColumn.setCellEditor(cdNameEditor); // 設置表格列對象的編輯器</p><p> 進行多個數(shù)據(jù)表的同步操作</p><p> Connection conn=null; // 聲明數(shù)據(jù)庫連接</p><p> // 聲明PreparedStatement對象&l
21、t;/p><p> PreparedStatement psMain = null;</p><p> PreparedStatement psDetail = null;</p><p><b> try{</b></p><p> conn = DAO.getConn(); // 獲得數(shù)據(jù)庫連接</p>
22、;<p> conn.setAutoCommit(false);</p><p> String sqlMain = "insert into tb_MainSell (totalMoney) values(?)";</p><p> // 創(chuàng)建PreparedStatement對象,并傳遞SQL語句</p><p> p
23、sMain = conn.prepareStatement(sqlMain);</p><p> psMain.setString(1, sellMain.getSellId()); // 為參數(shù)賦值</p><p> psMain.setFloat(1, 8000.0F);</p><p> psMain.executeUpdate();</p>
24、<p> String sqlDetail = "insert into tb_DetailSell (totalMoney) values(?)";</p><p> psDetail = conn.prepareStatement(sqlDetail);</p><p> psDetail.setFloat(1, 8000.0F);</p
25、><p> psDetail.executeUpdate();</p><p> psDetail.addBatch();</p><p> conn.commit();</p><p> JOptionPane.showMessageDialog(null, "添加成功。");</p><p>
26、; }catch(Exception ex){</p><p><b> try {</b></p><p> conn.rollback();</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p&
27、gt;<b> }</b></p><p> JOptionPane.showMessageDialog(null, "添加失敗。");</p><p> ex.printStackTrace();</p><p> return false;</p><p><b> }fina
28、lly{</b></p><p><b> try {</b></p><p> if (conn!=null){</p><p> conn.close();</p><p><b> }</b></p><p> } catch (SQLExcept
29、ion e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 批量添加或更新數(shù)據(jù)表</p&
30、gt;<p> Connection conn=null; // 聲明數(shù)據(jù)庫連接</p><p> // 聲明PreparedStatement對象</p><p> PreparedStatement psDetail = null;</p><p><b> try{</b></p><p>
31、; conn = DAO.getConn(); // 獲得數(shù)據(jù)庫連接</p><p> conn.setAutoCommit(false);</p><p> String sql="insert into tb_DetailSell(amount) values(?)</p><p> Int[]num={20,30,40,50,60}</
32、p><p> For(int i=0;i<num,Length;i++){</p><p> Int sl=num[i]</p><p> psDetail.setInt(1,sl);</p><p> psDetail.executeUpdate();</p><p> psDetail.addBatch
33、();</p><p><b> }</b></p><p> conn.commit();</p><p> JOptionPane.showMessageDialog(null, "批量添加成功。");</p><p> return true;</p><p>
34、 }catch(Exception ex){</p><p><b> try {</b></p><p> conn.rollback();</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p>
35、;<b> }</b></p><p> JOptionPane.showMessageDialog(null, "批量添加失敗。");</p><p> ex.printStackTrace();</p><p> return false;</p><p><b> }fina
36、lly{</b></p><p><b> try {</b></p><p> if (conn!=null){</p><p> conn.close();</p><p><b> }</b></p><p> } catch (SQLExcept
37、ion e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 公工類設計<
38、;/b></p><p><b> 公共類DAO</b></p><p> package com.zzk.dao;</p><p> import java.sql.*;</p><p> import javax.swing.JOptionPane;</p><p> publ
39、ic class DAO {</p><p> private static DAO dao = new DAO(); // 聲明DAO類的靜態(tài)實例</p><p><b> /**</b></p><p> * 構造方法,加載數(shù)據(jù)庫驅(qū)動</p><p><b> */</b></p&
40、gt;<p> public DAO() {</p><p><b> try {</b></p><p> Class.forName("net.sourceforge.jtds.jdbc.Driver"); // 加載數(shù)據(jù)庫驅(qū)動</p><p> } catch (ClassNotFoundExce
41、ption e) {</p><p> JOptionPane.showMessageDialog(null, "數(shù)據(jù)庫驅(qū)動加載失敗,請將JTDS驅(qū)動配置到構建路徑中。\n"</p><p> + e.getMessage());</p><p><b> }</b></p><p><b
42、> }</b></p><p><b> /**</b></p><p> * 獲得數(shù)據(jù)庫連接的方法</p><p><b> * </b></p><p> * @return Connection</p><p><b> */&l
43、t;/b></p><p> public static Connection getConn() {</p><p><b> try {</b></p><p> Connection conn = null; // 定義數(shù)據(jù)庫連接</p><p> String url = "jdbc:jt
44、ds:sqlserver://localhost:1433/db_ProgramDictionary"; // 數(shù)據(jù)庫db_ProgramDictionary的URL</p><p> String username = "sa"; // 數(shù)據(jù)庫的用戶名</p><p> String password = "123"; // 數(shù)據(jù)庫密
45、碼</p><p> conn = DriverManager.getConnection(url, username, password); // 建立連接</p><p> return conn; // 返回連接</p><p> } catch (Exception e) {</p><p> JOptionPane.show
46、MessageDialog(null,</p><p> "數(shù)據(jù)庫連接失敗。\n請檢查是否安裝了SP4補丁,\n以及數(shù)據(jù)庫用戶名和密碼是否正確。"</p><p> + e.getMessage());</p><p> return null;</p><p><b> }</b></
47、p><p><b> }</b></p><p><b> }</b></p><p> 公共類SaveUserStateTool</p><p> package com.zzk.tool;</p><p> public class SaveUserStateToo
48、l {</p><p> private static String username; // 操作員名</p><p> private static String password; // 操作員密碼</p><p> private static String grade; // 操作員級別</p><p>
49、// 獲得操作員名的getter方法</p><p> public static String getUsername() {</p><p> return username;</p><p><b> }</b></p><p> // 為操作員名賦值的setter方法</p><p&g
50、t; public static void setUsername(String username) {</p><p> SaveUserStateTool.username = username;</p><p><b> }</b></p><p> // 獲得操作員密碼的getter方法</p><p>
51、 public static String getPassword() {</p><p> return password;</p><p><b> }</b></p><p> // 為操作員密碼賦值的setter方法</p><p> public static void setPassword(Str
52、ing password) {</p><p> SaveUserStateTool.password = password;</p><p><b> }</b></p><p> // 獲得操作員級別的getter方法</p><p> public static String getGrade() {<
53、;/p><p> return grade;</p><p><b> }</b></p><p> // 為操作員級別賦值的setter方法</p><p> public static void setGrade(String grade) {</p><p> SaveUserStat
54、eTool.grade = grade;</p><p><b> }</b></p><p><b> }</b></p><p><b> 系統(tǒng)登錄窗體</b></p><p> 創(chuàng)建登錄窗體的背景面板類LoginBackPanel</p><p
55、> package com.zzk.back.panel;</p><p> import java.awt.Graphics;</p><p> import java.awt.Graphics2D;</p><p> import java.awt.Image;</p><p> import javax.swing.JP
56、anel;</p><p> public class LoginBackPanel extends JPanel {</p><p> private static final long serialVersionUID = 1L;</p><p> private Image image; // 定義圖像對象</p><p> p
57、ublic LoginBackPanel(Image image) {</p><p> super(); // 調(diào)用超類的構造方法</p><p> this.image = image; // 為圖像對象賦值</p><p> initialize();</p><p><b> }</b></p>
58、;<p><b> /*</b></p><p> * 重寫paintComponent方法</p><p><b> */</b></p><p> protected void paintComponent(Graphics g) {</p><p> super.pai
59、ntComponent(g); // 調(diào)用父類的方法</p><p> Graphics2D g2 = (Graphics2D) g; // 創(chuàng)建Graphics2D對象</p><p> if (image != null) {</p><p> int width = getWidth(); // 獲得面板的寬度</p><p>
60、 int height = getHeight(); // 獲得面板的高度</p><p><b> // 繪制圖像</b></p><p> g2.drawImage(image, 0, 0, width, height, this);</p><p><b> }</b></p><p>
61、<b> }</b></p><p> private void initialize() {</p><p> this.setSize(300, 200);</p><p><b> }</b></p><p><b> }</b></p><
62、p><b> 設計系統(tǒng)登錄窗體</b></p><p><b> /**</b></p><p> * This method initializes btn_ok</p><p><b> * </b></p><p> * @return javax.s
63、wing.JButton</p><p><b> */</b></p><p> private JButton getBtn_ok() {</p><p> if (btn_ok == null) {</p><p> btn_ok = new JButton();</p><p>
64、 btn_ok.setBounds(new Rectangle(34, 118, 101, 28));</p><p> btn_ok.setIcon(new ImageIcon(getClass().getResource("/icon/登錄.png")));</p><p> btn_ok.setText("登 錄");</p&
65、gt;<p> btn_ok.addActionListener(new java.awt.event.ActionListener() {</p><p> public void actionPerformed(java.awt.event.ActionEvent e) {</p><p> User user = new User();
66、 // 創(chuàng)建User類的實例</p><p> user.setName(tf_user.getText().trim()); // 獲得輸入的用戶名</p><p> user.setPwd(new String(pf_pwd.getPassword())); // 獲得輸入的密碼</p><p> if (UserDao.o
67、kUser(user)) { // 調(diào)用UserDao類的方法驗證用戶名和密碼</p><p> MainFrame thisClass = new MainFrame(); // 創(chuàng)建主窗體類的實例</p><p> // 設置主窗體的自動關閉方式</p><p> thisClass.setDefaultClo
68、seOperation(JFrame.DO_NOTHING_ON_CLOSE);</p><p> Toolkit tookit = thisClass.getToolkit(); // 獲得Toolkit對象</p><p> Dimension dm = tookit.getScreenSize(); // 通過Toolkit對象獲得屏幕的大小</p>&
69、lt;p> // 主窗體在屏幕上居中</p><p> thisClass.setLocation(</p><p> (dm.width - thisClass.getWidth()) / 2,</p><p> (dm.height - thisClass.getHeight()) / 2);</p><p> thisC
70、lass.setVisible(true); // 顯示主窗體</p><p> dispose(); // 銷毀登錄窗體</p><p><b> }</b></p><p><b> }</b></p>&
71、lt;p><b> });</b></p><p><b> }</b></p><p> return btn_ok;</p><p><b> }</b></p><p> 編程詞典用戶管理系統(tǒng)主窗體</p><p> 創(chuàng)建主窗體的
72、背景面板MainBackPanel</p><p> package com.zzk.back.panel;</p><p> import java.awt.Graphics;</p><p> import java.awt.Graphics2D;</p><p> import java.awt.Image;</p>
73、<p> import javax.swing.JPanel;</p><p> public class MainBackPanel extends JPanel {</p><p> private static final long serialVersionUID = 1L;</p><p> private Image image;
74、// 定義圖像對象</p><p> public MainBackPanel(Image image) {</p><p> super(); // 調(diào)用超類的構造方法</p><p> this.image = image; // 為圖像對象賦值</p><p> initialize();</p><p>
75、;<b> }</b></p><p><b> /*</b></p><p> * 重寫paintComponent方法</p><p><b> */</b></p><p> protected void paintComponent(Graphics g) {
76、</p><p> super.paintComponent(g); // 調(diào)用父類的方法</p><p> Graphics2D g2 = (Graphics2D) g; // 創(chuàng)建Graphics2D對象</p><p> if (image != null) {</p><p> int width = getWidth();
77、// 獲得面板的寬度</p><p> int height = getHeight(); // 獲得面板的高度</p><p><b> // 繪制圖像</b></p><p> g2.drawImage(image, 0, 0, width, height, this);</p><p><b>
78、}</b></p><p><b> }</b></p><p> private void initialize() {</p><p> this.setSize(300, 200);</p><p><b> }</b></p><p><b&
79、gt; }</b></p><p> 通過菜單項或工具欄按鈕的事件打開操作窗口</p><p> btn_addDictionary.setText("添加編程詞典信息");</p><p> btn_addDictionary.setIcon(new ImageIcon(getClass().getResource(&quo
80、t;/icon/添加詞典信息.png")));</p><p> btn_addDictionary.addActionListener(new java.awt.event.ActionListener() {</p><p> public void actionPerformed(java.awt.event.ActionEvent e) {</p>&l
81、t;p> AddDictionaryFrame thisClass = new AddDictionaryFrame(null);</p><p> Toolkit tookit = thisClass.getToolkit();</p><p> Dimension dm = tookit.getScreenSize();</p><p> this
82、Class.setLocation((dm.width-thisClass.getWidth())/2,(dm.height-thisClass.getHeight())/2);</p><p> thisClass.setVisible(true);</p><p><b> }</b></p><p><b> });<
83、;/b></p><p><b> 添加詞典信息窗體</b></p><p> 設計添加詞典信息窗體</p><p><b> 保存詞典信息</b></p><p> btn_save.addActionListener(new java.awt.event.ActionListene
84、r() {</p><p> public void actionPerformed(java.awt.event.ActionEvent e) {</p><p> String id = tf_id.getText();</p><p> String name = tf_name.getText();</p><p> floa
85、t price = 0.0f;</p><p><b> try{</b></p><p> price = Float.parseFloat(tf_price.getText().trim());</p><p> }catch(Exception ex){</p><p> JOptionPane.showM
86、essageDialog(null, "單價必須輸入數(shù)值。");</p><p><b> return;</b></p><p><b> }</b></p><p> Dictionary dictionary = new Dictionary();</p><p>
87、 dictionary.setId(id);</p><p> dictionary.setName(name);</p><p> dictionary.setPrice(price);</p><p> if (DictionaryDao.insertDictionary(dictionary)){</p><p> btn_sa
88、ve.setEnabled(false);</p><p> btn_clear.setEnabled(true);</p><p><b> }</b></p><p><b> }</b></p><p><b> });</b></p><p&
89、gt;<b> 添加客戶信息窗體</b></p><p> 設計添加客戶信息窗體</p><p><b> 保存客戶信息</b></p><p> btn_save.addActionListener(new java.awt.event.ActionListener() {</p><p>
90、; public void actionPerformed(java.awt.event.ActionEvent e) {</p><p> Buyer buyer = new Buyer();</p><p> buyer.setIdentityCard(tf_identityCard.getText());</p><p> buyer.setName(
91、tf_buyer.getText());</p><p> String sex = rb_nan.isSelected() ? rb_nan.getText() : rb_nv.getText();</p><p> buyer.setSex(sex);</p><p> buyer.setBirthday(tf_birthday.getText());&l
92、t;/p><p> buyer.setAddress(tf_buyer.getText());</p><p> buyer.setPostcode(tf_postcode.getText());</p><p> buyer.setTellphone(tf_tellphone.getText());</p><p> buyer.set
93、Fax(tf_fax.getText());</p><p> buyer.setHandset(tf_handset.getText());</p><p> buyer.setQq(tf_qq.getText());</p><p> buyer.setEmail(tf_email.getText());</p><p> if
94、(BuyerDao.insertBuyer(buyer)){</p><p> btn_save.setEnabled(false);</p><p> btn_add.setEnabled(true);</p><p><b> }</b></p><p><b> }</b></p
95、><p><b> });</b></p><p><b> }</b></p><p><b> 詞典銷售窗體</b></p><p><b> 設計詞典銷售窗體</b></p><p> private void init
96、ialize() {</p><p> this.setSize(631, 388);</p><p> this.setResizable(false);</p><p> this.setModal(true);</p><p> this.setTitle("詞典銷售窗體");</p><
97、p> this.setContentPane(getJContentPane());</p><p> this.addWindowListener(new java.awt.event.WindowAdapter() {</p><p> public void windowOpened(java.awt.event.WindowEvent e) {</p>&
98、lt;p> tf_tableCellEdit.setVisible(false);</p><p> cmb_tableCellEdit.setVisible(false);</p><p> Vector adminVector = UserDao.addComboBoxItem();</p><p> if (cdVector != null){&
99、lt;/p><p> int itemCount = adminVector.size();</p><p> int i = 0;</p><p> cmb_dealWithMan.addItem("");</p><p> while (i<itemCount){</p><p>
100、cmb_dealWithMan.addItem(adminVector.get(i));</p><p><b> i++;</b></p><p><b> }</b></p><p><b> }</b></p><p> Vector buyerVector =
101、BuyerDao.addComboBoxItem();</p><p> if (cdVector != null){</p><p> int itemCount = buyerVector.size();</p><p> int i = 0;</p><p> cmb_buyer.addItem("");&l
102、t;/p><p> while (i<itemCount){</p><p> cmb_buyer.addItem(buyerVector.get(i));</p><p><b> i++;</b></p><p><b> }</b></p><p><b
103、> }</b></p><p><b> }</b></p><p><b> });</b></p><p><b> }</b></p><p> 在窗體的表格中添加空白行</p><p> btn_add.addAct
104、ionListener(new java.awt.event.ActionListener() {</p><p> public void actionPerformed(java.awt.event.ActionEvent e) {</p><p> // 創(chuàng)建日期格式化對象,并指定格式</p><p> SimpleDateFormat format =
105、 new SimpleDateFormat("yyyy-MM-dd");</p><p> String stringDate = format.format(new Date());</p><p> tf_sellDate.setText(stringDate);</p><p> DefaultTableModel dataModel
106、 = (DefaultTableModel)tb_detailSell.getModel();</p><p> Vector<String> value = new Vector<String>();</p><p> value.add("");</p><p> value.add("");
107、</p><p> value.add("");</p><p> value.add("");</p><p> value.add("");</p><p> dataModel.addRow(value);</p><p> tf_sellId
108、.setText(SellDao.makeSellId());</p><p> tf_operator.setText(SaveUserStateTool.getUsername());</p><p><b> }</b></p><p><b> });</b></p><p> 選擇
109、組合框中的列表項自動添加信息</p><p> public void itemStateChanged(java.awt.event.ItemEvent e) {</p><p> if (flag){</p><p> int currentRow = -1;</p><p> if (tb_detailSell.getRowCo
110、unt() > 0) {</p><p> currentRow = tableDoubleRowIndex;</p><p> selectItem = (String)cmb_tableCellEdit.getSelectedItem();</p><p> tf_tableCellEdit.setVisible(true);</p>
111、<p> String[] data = DictionaryDao.queryDictionaryMessage(selectItem);</p><p> tb_detailSell.setValueAt(data[0], currentRow, 1);</p><p> tb_detailSell.setValueAt(data[1], currentRow, 2);
112、</p><p> tb_detailSell.editCellAt(currentRow, 3);</p><p> ((DefaultCellEditor) (tb_detailSell.getCellEditor(currentRow, 3)))</p><p> .getComponent().requestFocus();</p>&l
113、t;p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> });</b></p><p> 在表格單元格編輯器中實現(xiàn)自動計算</p><p>
114、 tf_tableCellEdit.addActionListener(new java.awt.event.ActionListener() {</p><p> public void actionPerformed(java.awt.event.ActionEvent e) {</p><p><b> try{</b></p><p&
115、gt; flag = false;</p><p> int currentRow=tableDoubleRowIndex;</p><p> float price = Float.parseFloat((String)tb_detailSell.getValueAt(currentRow, 2));</p><p> int num = Integer
116、.parseInt((String)tb_detailSell.getValueAt(currentRow, 3));</p><p> tb_detailSell.setValueAt(String.valueOf(price * num),currentRow, 4);</p><p> cmb_tableCellEdit.removeItem(selectItem);</p
117、><p> int totalRows = tb_detailSell.getRowCount();</p><p> if (totalRows > 0){</p><p> int totalNums = 0;</p><p> float totalMoney = 0.0f;</p><p> int
118、 row = 0;</p><p> while(row < totalRows){</p><p> int number = Integer.parseInt((String)tb_detailSell.getValueAt(row, 3));</p><p> float money = Float.parseFloat((String)tb_de
119、tailSell.getValueAt(row, 4));</p><p> totalNums = totalNums + number;</p><p> totalMoney = totalMoney + money;</p><p><b> row++;</b></p><p><b> }&
120、lt;/b></p><p> tf_category.setText(String.valueOf(totalRows));</p><p> tf_totalNumber.setText(String.valueOf(totalNums));</p><p> tf_totalMoney.setText(String.valueOf(totalMon
121、ey));</p><p><b> }</b></p><p> flag = true;</p><p> }catch(Exception ex){</p><p> JOptionPane.showMessageDialog(null, "輸入的數(shù)量值無效。");</p>
122、<p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> });</b></p><p> 移除表格不需要的數(shù)據(jù)行</p><p
123、> btn_removeRow.addActionListener(new java.awt.event.ActionListener() {</p><p> public void actionPerformed(java.awt.event.ActionEvent e) {</p><p> int selectRowIndex = tb_detailSell.getSe
124、lectedRow();</p><p> if (selectRowIndex>=0){</p><p> ((DefaultTableModel)tb_detailSell.getModel()).removeRow(selectRowIndex);</p><p> tableDoubleRowIndex--;</p><p&g
125、t; int totalRows = tb_detailSell.getRowCount();</p><p> if (totalRows > 0){</p><p> int totalNums = 0;</p><p> float totalMoney = 0.0f;</p><p> int row = 0;<
126、/p><p> while(row < totalRows){</p><p> int number = Integer.parseInt((String)tb_detailSell.getValueAt(row, 3));</p><p> float money = Float.parseFloat((String)tb_detailSell.getV
127、alueAt(row, 4));</p><p> totalNums = totalNums + number;</p><p> totalMoney = totalMoney + money;</p><p><b> row++;</b></p><p><b> }</b><
128、/p><p> tf_category.setText(String.valueOf(totalRows));</p><p> tf_totalNumber.setText(String.valueOf(totalNums));</p><p> tf_totalMoney.setText(String.valueOf(totalMoney));</p&g
129、t;<p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> });</b></p><p><b> 保存銷售信息</b></p
130、><p> btn_sell.addActionListener(new java.awt.event.ActionListener() {</p><p> public void actionPerformed(java.awt.event.ActionEvent e) {</p><p><b> try{</b></p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫編程課程設計
- java數(shù)據(jù)庫課程設計 圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設計--bbs系統(tǒng)數(shù)據(jù)庫設計
- java數(shù)據(jù)庫課程設計---圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設計--java_個人記賬管理系統(tǒng)
- 數(shù)據(jù)庫課程設計--基于java的酒店管理系統(tǒng)
- 數(shù)據(jù)庫課程設計---數(shù)據(jù)庫
- 數(shù)據(jù)庫課程設計--快餐訂餐系統(tǒng)數(shù)據(jù)庫設計
- 數(shù)據(jù)庫課程設計--數(shù)據(jù)庫設計
- 數(shù)據(jù)庫課程設計--數(shù)據(jù)庫系統(tǒng)原理
- 數(shù)據(jù)庫課程設計--數(shù)據(jù)庫設計—公司管理系統(tǒng)
- 數(shù)據(jù)庫課程設計快餐訂餐系統(tǒng)數(shù)據(jù)庫設計
- 數(shù)據(jù)庫課程設計--數(shù)據(jù)庫原理及應用課程設計
- 數(shù)據(jù)庫課程設計---機房管理系統(tǒng)數(shù)據(jù)庫設計
- oracle數(shù)據(jù)庫課程設計---在線考試系統(tǒng)數(shù)據(jù)庫
- 數(shù)據(jù)庫課程設計--購物系統(tǒng)
- 數(shù)據(jù)庫課程設計--工資管理系統(tǒng)數(shù)據(jù)庫設計
- 數(shù)據(jù)庫原理課程設計---教室管理系統(tǒng)數(shù)據(jù)庫設計
- 數(shù)據(jù)庫課程設計
- 考勤系統(tǒng)數(shù)據(jù)庫課程設計
評論
0/150
提交評論