freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

面向?qū)ο笳n程設(shè)計(jì)---工資管理系統(tǒng)-展示頁(yè)

2025-01-27 15:56本頁(yè)面
  

【正文】 后面的輸入框中,同第二個(gè)一樣,當(dāng)用戶點(diǎn)擊“按姓名查詢”按鈕后,所輸入姓名的員工的工作信息會(huì)顯示在下方的文本里;最下方的就用文本框了,作用上述已經(jīng)說(shuō)明了。查詢模塊的設(shè)計(jì)查詢按鈕排序方式排列依據(jù)查詢范圍查詢方式Panel select:Panel id:Panel name:顯示查詢結(jié)果:按工號(hào)查詢輸入框標(biāo)簽(輸入ID)按姓名查詢輸入框標(biāo)簽(輸入姓名)顯示結(jié)果的文本框圖4 查詢模塊的設(shè)計(jì),新建一個(gè)叫QueryPanel的java類,這各類也繼承了Applet類,所以本身就是一個(gè)容器。在該方法里設(shè)計(jì)按名顯示功能模塊的程序,即 public void actionPerformed(ActionEvent e) { (p[2], ())。//事件處理:當(dāng)用戶點(diǎn)擊四大功能按鈕時(shí),下方顯示對(duì)應(yīng)的功能的子模塊 public void actionPerformed(ActionEvent e) { (p[2], ())。 (p[2], gbc)。 p[2].add(dp,刪除)。 p[2].add(ap,儲(chǔ)存)。 p[2].setLayout(myCard)。//修改模塊 deletePanel dp = new deletePanel()。//查詢模塊 addPanel ap =new addPanel()。(3) 將p[3]加入MyApplet中;(4) 設(shè)置中各組件的顯示方式。CardLayout的使用步驟:(1) 創(chuàng)建一個(gè)CardLayout對(duì)象作為布局編輯器: Mycard = new CardLayout()。目的是使得查詢模塊、儲(chǔ)存模塊、修改模塊和刪除模塊以卡片的形式顯示在四個(gè)選擇功能的按鈕下方。 add(p[1])。 //將按鈕分開 } = new Insets(20,4,4,4)。i++){ p[1].add(b[i])。 for(int i=0。 b[3].addActionListener(this)。 b[2].addActionListener(this)。 b[1].addActionListener(this)。 b[0].addActionListener(this)。其實(shí)現(xiàn)代碼如下: Button[] b = new Button[4]。參數(shù)分別為“查詢”、“儲(chǔ)存”、“修改”和“刪除”。 (4)用GridLayout的布局設(shè)計(jì)分別將查詢按鈕、儲(chǔ)存按鈕、修改按鈕和刪除按鈕加入Panel[1]中,然后用GridBagLayout的布局設(shè)計(jì)將Panel[1]加入MyApplet中。 (p[0], gbc)。 //占據(jù)橫向剩余空間 = 1。并且對(duì)Panel[0]采用Gridlayout的布局設(shè)計(jì),由于只需添加標(biāo)題這樣一個(gè)組件就可以了,所以設(shè)置為一行一列:p[0] = new Panel(new GridLayout(1,1))。 ()。(3)創(chuàng)建一個(gè)顯示系統(tǒng)名稱的L abel類型的tittle,設(shè)置其中字體的大小和顏色,并將Label加入到Panel[0]中的語(yǔ)句分別是:Label tittle = new Label(工資管理系統(tǒng))。 設(shè)置本容器為該布局對(duì)象,即 (gbLayout)。 外層模塊代碼解析(1)MyApplet類繼承Applet,所以本身就是一個(gè)容器,不需要自己再去創(chuàng)建外層容器了,就把this(本容器)當(dāng)成外層容器就可以了。 外層容器的對(duì)子容器放置的布局是GridBagLayout布局設(shè)計(jì),而子容器中又使用簡(jiǎn)單布局設(shè)計(jì)。GridBagLayout布局設(shè)計(jì)方式的使用步驟如下:(1) 創(chuàng)建GridBagLayout的對(duì)象;(2) 將容器的布局設(shè)置成這個(gè)對(duì)象;(3) 創(chuàng)建GridBagConstraints對(duì)象,并指定其各項(xiàng)屬性;(4) 設(shè)置GridBagConstraints對(duì)象和組件的關(guān)聯(lián);(5) 將組件加入容器中。剩下的GridBagLayout的布局設(shè)計(jì)是很適合我想象的布局的,因?yàn)檫@種布局設(shè)計(jì)給了設(shè)計(jì)者很大的自定義空間,并且各個(gè)行或者列的大小都可以由設(shè)計(jì)者自己指定,也不要求容器中的組件按個(gè)空格地放。而BorderLayout則將整個(gè)容器分為東、西、南、北、中,這樣的布局比較死,限制了設(shè)計(jì)者自己定義布局的功能。參考印旻主編的《java與面向?qū)ο蟪绦蛟O(shè)計(jì)教程》第八章的布局設(shè)計(jì)可知:FlowLayout的布局方式雖然非常簡(jiǎn)單,但是這種布局的容器會(huì)將容器的里的組件按照加入的順序一個(gè)個(gè)從左往右,從上往下的排列。表1ID姓名基礎(chǔ)工資職務(wù)工資獎(jiǎng)金3張三500020003000………………………… 開發(fā)環(huán)境Hibernate 測(cè)試工具:注明:(1)在詳細(xì)設(shè)計(jì)中的代碼均為局部的關(guān)鍵代碼,完整代碼均在附錄里;(2)數(shù)據(jù)庫(kù)里的信息只為了測(cè)試,與其含義沒(méi)有關(guān)系;(3)所有模塊的模樣圖中,圓角框表示容器,直角框表示組件?;A(chǔ)工資、職務(wù)工資和獎(jiǎng)金中的任意一項(xiàng)改變都會(huì)影響工資總額的數(shù)值,當(dāng)修改頻繁是,將會(huì)大大增加數(shù)據(jù)庫(kù)系統(tǒng)的負(fù)擔(dān),且設(shè)計(jì)起來(lái)更加繁瑣,所以工資總額并沒(méi)有真正的儲(chǔ)存在數(shù)據(jù)庫(kù)中, 每一次的查詢或者其他顯示工資總額的地方全都是用SQL或者HQL的函數(shù)查詢語(yǔ)句來(lái)實(shí)現(xiàn)的。(4)刪除功能中,必須慎重操作,刪除時(shí)必須輸入員工工號(hào),先查詢出來(lái),把員工的各項(xiàng)信息顯示在下方的文本框中,在用戶點(diǎn)擊確認(rèn)刪除時(shí)系統(tǒng)就將該工號(hào)的用戶的各項(xiàng)信息從數(shù)據(jù)庫(kù)中刪除。(2)修改功能中,用戶可以選擇修改方式,比如修改某一行,即選擇修改某個(gè)員工的工資,此時(shí)需要輸入修改項(xiàng),即基礎(chǔ)工資、職務(wù)工資和獎(jiǎng)金中的一項(xiàng),因?yàn)楣べY總額是基礎(chǔ)工資、職務(wù)工資和獎(jiǎng)金的綜合,故不能直接修改,同時(shí)還需要輸入工號(hào),為了避免誤改,所以需要確認(rèn)修改后才能修改;也可以選擇修改某一列,即選擇修改全體員工的某一項(xiàng)工資,所以還需要選擇修改項(xiàng),其中的修改項(xiàng)也只有基礎(chǔ)工資、職務(wù)工資和獎(jiǎng)金三項(xiàng)。其中員工工號(hào)不需要用戶輸入,存儲(chǔ)時(shí),數(shù)據(jù)庫(kù)系統(tǒng)按順序自動(dòng)遞增。 工資管理系統(tǒng)1 需求分析 課題設(shè)計(jì)目的使用面向?qū)ο笳Z(yǔ)言java設(shè)計(jì)一個(gè)員工工資管理程序,有顯示、儲(chǔ)存、顯示、修改和刪除功能。每個(gè)員工有員工工號(hào)、姓名、基礎(chǔ)工資、職務(wù)工資、獎(jiǎng)金和工資總額。 功能要求(1) 查詢功能中,用戶查詢時(shí)可以選擇按工號(hào)查詢,也可以選擇姓名進(jìn)行查詢,也可以選擇查詢工資總額在某個(gè)范圍內(nèi)的員工的工資信息,比如查詢工資總額在1000~2000的全體員工的信息,還以查詢?nèi)w員工工資,并且選擇按某種方式排序。(3)儲(chǔ)存功能即增加用戶的功能中,用戶不需要輸入員工工號(hào),但必須輸入員工姓名,其他幾項(xiàng)均可以不輸入,基礎(chǔ)工資、職務(wù)工資、獎(jiǎng)金和工資總額均被系統(tǒng)初始化為零。在此說(shuō)明一點(diǎn),由于工資總額是員工基礎(chǔ)工資、職務(wù)工資和獎(jiǎng)金的綜合。 設(shè)計(jì)流程 設(shè)計(jì)流程采用先界面后模型外層全局界面設(shè)計(jì)界面設(shè)計(jì):刪除模塊各組件事件處理修改模塊各組建事件處理儲(chǔ)存模塊各組件事件處理查詢模塊各組件事件處理擅長(zhǎng)模塊設(shè)計(jì)修改模塊設(shè)計(jì)查詢模塊設(shè)計(jì)儲(chǔ)存模塊設(shè)計(jì)各組件事件處理功能實(shí)現(xiàn)設(shè)計(jì):外層全局界面各組件事件處理設(shè)計(jì)數(shù)據(jù)庫(kù)及表的設(shè)計(jì) Hibernate實(shí)現(xiàn)查詢功能Hibernate實(shí)現(xiàn)儲(chǔ)存功能Hibernat和jdbc實(shí)現(xiàn)修改功能Hibernate刪除功能圖1 工資表模式根據(jù)上述目的和各項(xiàng)功能要求,選擇如表1的數(shù)據(jù)庫(kù)表來(lái)儲(chǔ)存員工各項(xiàng)工資信息其中的Id號(hào)即為員工工號(hào)。2 詳細(xì)設(shè)計(jì) 外層模塊設(shè)計(jì) 外層模塊模樣根據(jù)個(gè)人設(shè)計(jì)思路,設(shè)計(jì)的外側(cè)模塊的模樣如圖2外層模塊Myplet系統(tǒng)名稱:工資管理系統(tǒng)子容器Panel3子容器Panel2子容器Panel1 刪除按鈕修改按鈕儲(chǔ)存按鈕查詢按鈕以卡片布局放置查詢、儲(chǔ)存、修改、刪除模塊,默認(rèn)顯示查詢模塊圖2外側(cè)模塊設(shè)計(jì),首先新建一個(gè)叫MyApplet的類,并繼承java下applet包中的Applet類,在這里,也可以自己定義一個(gè)自己的框架的類,去繼承Frame類,但是簡(jiǎn)單起見,我就定義了自己的框架的類,并繼承了Applet類,這樣有些Applet已經(jīng)實(shí)現(xiàn)的功能就不需要我自己去實(shí)現(xiàn)了,比如當(dāng)你點(diǎn)擊這個(gè)類運(yùn)行而得的窗口的右上角的“X”時(shí),窗口就關(guān)閉了,如果沒(méi)有繼承Applet類,那么這些功能將由自己實(shí)現(xiàn),查看java的那套api會(huì)發(fā)現(xiàn)里面有個(gè)一屬性常量,給定義的窗口設(shè)置該屬性就可以解決。這樣的布局顯然不合適,也不美觀。GridLayout的布局形式,雖然給了設(shè)計(jì)者自己定義布局的一部分功能,但是還是存在很大一部分的限制,還有CardLayout(卡片布局設(shè)計(jì))和GridBagLayout,卡片布局設(shè)計(jì)顯然是可以采用的,但是不能只用卡片布局設(shè)計(jì),因?yàn)橹挥盟@得單一,而且功能不全。經(jīng)過(guò)上述外層模塊布局設(shè)計(jì)的分析,最適合外層模塊布局設(shè)計(jì)的方式就是GridBagLayout。為了使窗口中的標(biāo)簽和文本框等東西的大小可以隨窗口的變大而變大,或者縮小而縮小,所以在外層容器里面的組件不是直接加入外層容器的,本質(zhì)是在外層容器中加入子容器,然后在子容器中加入組件。所以整體上是使用混合布局設(shè)計(jì),這樣可以實(shí)現(xiàn)更多的界面設(shè)計(jì)樣式。對(duì)本容器采用GridBagLayout的布局設(shè)計(jì),按照上述的步驟: 創(chuàng)建GridBagLayout布局對(duì)象,即GridBagLayout gbLayout = new GridBagLayout()。 (2)創(chuàng)建一個(gè)大小為3的Panel數(shù)組p,并實(shí)例化三個(gè)Panel。(new Font(Serif,50,50))。 p[0].add(tittle)。 并用GridBagLayout的布局設(shè)計(jì)將Panel1加入到容器MyApplet中,具體實(shí)現(xiàn)代碼如下: = 。//橫向可擴(kuò)展 = 。 //將gridbagconstraints對(duì)象與組建相聯(lián)系 add(p[0])。具體過(guò)程是定義各一個(gè)四個(gè)元素的Button類型的數(shù)組,并實(shí)例化其中每個(gè)元素。并依次將該數(shù)組的每個(gè)按鈕加入到Panel[1]中。 b[0] = new Button(查詢)。//注冊(cè)監(jiān)聽 b[1] = new Button(儲(chǔ)存)。 b[2] = new Button(修改)。 b[3] = new Button(刪除)。 p[1] = new Panel(new GridLayout(1,4))。i4。 p[1].add(new Label( ))。 (p[1], gbc)。 (5) 初始化的Panel數(shù)組的第三個(gè)元素p[3]采用卡片的布局設(shè)計(jì),卡片設(shè)計(jì)的顯示形式是讓要顯示的東西像撲克一樣疊起來(lái),每次都只能顯示最表面的一張,其他的都在下方,不顯示。讓頁(yè)面看起來(lái)簡(jiǎn)潔、清晰、明朗。(2) 將容器p[3]設(shè)置為Mycard 的布局:p[3].setLayout(Mycard)。本設(shè)計(jì)中,p[3]中各組件的顯示方式只有設(shè)置為按名顯示最為適合,窗口的顯示如圖3,創(chuàng)建到顯示的實(shí)現(xiàn)代碼如下: QueryPanel qp = new QueryPanel()。//增加用戶模塊 updatePanel up = new updatePanel()。//刪除模塊 p[2] = new Panel(myCard)。 p[2].add(qp,查詢)。 p[2].add(up,修改)。 = new Insets(20,4,4,4)。 add(p[2])。 } 圖3 外層模塊事件處理(1)分別將查詢按鈕、儲(chǔ)存按鈕、修改按鈕和刪除按鈕注冊(cè)給監(jiān)聽器,并在類頭的繼承類后面加上implements ActionListener實(shí)現(xiàn)接口ActionListener之后,重寫接口里定義的抽象方法 public void actionPerformed(ActionEvent e)。 } 查詢模塊設(shè)計(jì) 查詢模塊模樣查詢模塊的模樣如圖4所示。并對(duì)本容器設(shè)置GridBagLayout的布局設(shè)計(jì),從上往下,加入三個(gè)子容器。缺省情況下,即用戶什么都沒(méi)有選擇的情況下,直接點(diǎn)擊“查詢”按鈕后,將顯示全體員工的工資信息。這些下拉框的中的每一個(gè)選項(xiàng)都是任由用戶選擇的,但是選擇的項(xiàng)不能相互矛盾,比如選擇了按工號(hào)查詢,就不能在輸入姓名的輸入框中輸入信息。布局設(shè)計(jì)的代碼和外層模塊設(shè)計(jì)的完全一樣,不再重復(fù),代碼中有注明,下拉框是用一個(gè)Choice類型的數(shù)組來(lái)表示的,窗口顯示如圖5。//下拉框數(shù)組 for(int i=0。i++) { c[i] = new Choice()。 (c[i])。 c[0].add(按工號(hào))。 c[0].add(默認(rèn)是全部)。 c[1].add(0
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1