版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、A1 系統(tǒng)描述1 功能描述本電梯系統(tǒng)用來控制一臺(tái)運(yùn)行于一個(gè)具有N層的大樓電梯,它具有上升、下降、開門、關(guān)門、載客的基本功能。大樓的每一層都有:(1) 兩個(gè)指示燈 這兩個(gè)指示燈分別用于指示當(dāng)前所在的層數(shù)和電梯的當(dāng)前狀態(tài)(上行、下行或停止);(2) 電梯鎖 用于將本層的電梯門鎖住,并使本樓層的電梯按鈕失效,電梯里相應(yīng)的按鈕也失效,使得電梯不能也不可能停在本層;(3) 按鈕 除了第一層和頂層,每一層都有兩個(gè)按鈕(上行、下行),乘客可以呼叫上樓或下樓,頂樓只有一個(gè)下樓按鈕,而第一層只有一個(gè)上樓按鈕。電梯里面具有:(1) 標(biāo)示從“1”到“N”的N個(gè)按鈕,用于讓乘客選擇所要的層數(shù);(2) 關(guān)門按鈕 當(dāng)乘客
2、按下此按鈕時(shí),電梯門如果開著將關(guān)上,否則不執(zhí)行任何操作;(3) 開門按鈕 當(dāng)乘客按下此按鈕時(shí),電梯如果停在某一層,電梯門將打開,否則不執(zhí)行任何操作;(4) 超重測(cè)試和警報(bào)裝置 電梯的地面有超重感應(yīng)裝置,當(dāng)電梯載重達(dá)到某一個(gè)值時(shí),電梯“超重警報(bào)鈴”發(fā)出超重警報(bào),并且不執(zhí)行關(guān)門命令。2 關(guān)鍵實(shí)現(xiàn)方法描述用“最大距離循環(huán)”來說明電梯的運(yùn)行方式。也說是說,電梯處于上行狀態(tài)時(shí)就一直上行直到不再有上行任務(wù),電梯處于下行狀態(tài)時(shí)就一直下行直到不再有下行任務(wù)。用兩個(gè)隊(duì)列來實(shí)現(xiàn)電梯的調(diào)度,電梯根據(jù)這兩個(gè)隊(duì)列發(fā)送來的樓層號(hào)作為目的地進(jìn)行運(yùn)行。在上行隊(duì)列中保存了所有的上行請(qǐng)求的樓層號(hào)(包括樓層的呼叫和電梯里的樓層按鈕
3、請(qǐng)求),即保存電梯上行時(shí)需要停的樓層號(hào)。隊(duì)列排列規(guī)則是:高于或等于電梯當(dāng)前所地樓層的上行請(qǐng)求的樓層號(hào)從小到大排在隊(duì)列的前部分,低于電梯當(dāng)前所地樓層的上行請(qǐng)求的樓層號(hào)從小到大排在隊(duì)列后部分。如果新請(qǐng)求的樓層號(hào)被插在隊(duì)列頭時(shí)同時(shí)將這個(gè)樓層號(hào)發(fā)送給電梯作為它的目的地。在下行隊(duì)列中保存了所有的下行請(qǐng)求的樓層號(hào)(包括樓層的呼叫和電梯里樓層按鈕請(qǐng)求),即保存電梯下行時(shí)需要停的樓層號(hào)。隊(duì)列排列規(guī)則是:低于或是等于電梯當(dāng)前所在樓層的下行請(qǐng)求的樓層從大到小排在隊(duì)列前部分,高于電梯當(dāng)前所在樓層的下行請(qǐng)求的樓層號(hào)從大到小排在隊(duì)列后部分。當(dāng)電梯正在上行時(shí),如果上行隊(duì)列的隊(duì)列頭改變時(shí),系統(tǒng)將同時(shí)將這個(gè)新的隊(duì)列頭發(fā)送給電
4、梯作為它的新目的地。有兩種原因引起隊(duì)列頭的改變。(1) 新的請(qǐng)求插入到上行隊(duì)列頭。(2) 電梯到達(dá)某個(gè)樓層將這個(gè)樓層的請(qǐng)求從上行隊(duì)列的隊(duì)列頭刪除,后繼的更高樓層號(hào)成為對(duì)列頭。當(dāng)電梯正在下行時(shí),如果下行隊(duì)列的隊(duì)列頭改變時(shí),系統(tǒng)將同時(shí)將這個(gè)新的隊(duì)列頭發(fā)送給電梯作為它的新目的地。有兩種原因引起下行隊(duì)列頭的改變。(1) 新的請(qǐng)求插入到下行隊(duì)列頭。(2) 電梯到達(dá)某個(gè)樓層將這個(gè)樓層的請(qǐng)求從下行隊(duì)列的隊(duì)列頭刪除,后繼的更高樓層號(hào)成為對(duì)列頭。在電梯上行過程中,當(dāng)上行隊(duì)列中沒有比電梯當(dāng)前所在的樓層更高的樓層號(hào)時(shí),發(fā)送電梯目的地的開始從下行隊(duì)列中取得。同樣,在電梯下行過程中,當(dāng)下行隊(duì)列中沒有比電梯當(dāng)前所在的樓層
5、更低的樓層號(hào)時(shí),發(fā)送電梯目的地的開始從上行隊(duì)列中取得。如此反復(fù),當(dāng)兩個(gè)隊(duì)列中都沒有數(shù)據(jù)時(shí),電梯暫停。當(dāng)電梯到達(dá)某層時(shí),此層的所有請(qǐng)求按鈕全部復(fù)位(包括樓層和電梯里的按鈕),電梯門自動(dòng)開啟,在一段時(shí)間內(nèi)如果乘客沒有按下開門或關(guān)門的按鈕,電梯將自動(dòng)關(guān)門。為了保證電梯系統(tǒng)的安全,在任何不安全的情況下,緊急制動(dòng)就會(huì)被促發(fā),電梯被強(qiáng)制停止。A2 用例模型1 角色識(shí)別根據(jù)前面系統(tǒng)的描述,可以確定與該系統(tǒng)交互的兩個(gè)角色:電梯管理員(elevator manager)和乘客(passenger),其中乘客是電梯的主要使用者,電梯管理員的責(zé)任是對(duì)電梯進(jìn)行維護(hù)(見圖A1)。角色:乘客角色職責(zé):乘電梯上下樓開電梯門
6、關(guān)電梯門角色識(shí)別問題:(1) 使用系統(tǒng)主要部分(2)對(duì)系統(tǒng)運(yùn)行結(jié)果感興趣角色:電梯管理員角色職責(zé):開電梯鎖關(guān)電梯鎖處理電梯緊急事故角色識(shí)別問題:(1)維護(hù)管理,保持系統(tǒng)正常運(yùn)行(2)對(duì)系統(tǒng)運(yùn)行結(jié)果感興趣圖A12 用例識(shí)別在角色的基礎(chǔ)上,可以確定系統(tǒng)的用例,做法是針對(duì)每一個(gè)角色考查它要求系統(tǒng)提供的功能,它使用系統(tǒng)的哪些功能,經(jīng)過分析,可得到如下的用例。乘客相關(guān)的用例:l 按下某樓層的上行按鈕(go up stair)。l 按下某樓層的下行按鈕(go down stair)。l 按下某電梯內(nèi)的某一層樓按鈕(go to floor request)。l 按下關(guān)門按鈕 (close door)。l 按
7、下開門按鈕(open door)。l 超重測(cè)試(overweight test)。電梯管理員的用例:l 鎖住某層電梯鎖(lock floor)。l 打開某層電梯鎖(open floor)。用例的描述如下:用例1 按下某樓層的上行按鈕(go up stair)(1) 乘客按下第M層的上行按鈕。(2) M被插入到上行隊(duì)列的合適位置。(3) 如果M被插到上行隊(duì)列頭。l 如果電梯正處于上行狀態(tài)。將M發(fā)送給電梯作為目的地。l 如果電梯處于停止?fàn)顟B(tài)。將M發(fā)送給電梯作為目的地。(4)電梯到達(dá)此樓層。 (5)電梯自動(dòng)打開門(用例9)。(6)乘客進(jìn)入電梯。(7)超重測(cè)試(用例6)。用例2 按下某樓層的下行按鈕(
8、go down stair)。(1) 乘客按下第M層的下行按鈕。(2) M被插入到下行隊(duì)列的合適位置。(3) 如果M被插到下行隊(duì)列頭。l 如果電梯正處于下行狀態(tài)。將M發(fā)送給電梯作為目的地。l 如果電梯處于停止?fàn)顟B(tài) 將M發(fā)送給電梯作為目的地。(4) 電梯到達(dá)此樓層。(5) 電梯自動(dòng)打開門(用例9)。(6) 乘客進(jìn)入電梯。(7) 超重測(cè)試(用例9)。用例3 按下電梯內(nèi)的某一樓層按鈕(go to floor request)(1) 乘客按下電梯內(nèi)L層的按鈕。(2) 如果被按下的樓層號(hào)L比電梯當(dāng)前所在的樓層號(hào)高。l 將此樓層號(hào)插入到上行隊(duì)列的合適位置。l 如果L被插入到上行隊(duì)列頭。如果電梯正處于上行狀
9、態(tài)。將L發(fā)送給電梯作為電梯的目的地。(3) 如果被按下的層號(hào)L比電梯當(dāng)前所在的樓層低。l 將此樓層號(hào)L插入到下行隊(duì)列的合適位置。l 如果L被插入到下行隊(duì)列頭。如果電梯正處于下行狀態(tài)。將L發(fā)送給電梯作為目的地。(4) 電梯到達(dá)目的樓層。(5) 電梯自動(dòng)開門(用例9)。用例4按下關(guān)門按鈕(request close door)(1) 如果電梯門關(guān)著。保持電梯門關(guān)閉狀態(tài)。(2) 如果電梯門開著。關(guān)閉電梯門。用例5 按下開門按鈕(request open door)如果電梯停在某一層。l 如果電梯門關(guān)著。打開電梯門。l 如果電梯門開著。保持電梯門開狀態(tài)。用例6 超重測(cè)試(overweight test
10、)(1) 乘客進(jìn)入電梯。(2) 如果電梯超重感應(yīng)裝置檢測(cè)到超重。l 電梯發(fā)出超重警報(bào),并拒絕關(guān)閉電梯門。l 乘客走出電梯。l 電梯解除超重警報(bào),并允許關(guān)閉電梯門。用例7 鎖住某層電梯鎖(lock floor)此層的樓層請(qǐng)求按鈕和電梯內(nèi)的樓層按鈕失效。用例8 打開某層電梯鎖(open floor)此層的樓層請(qǐng)求按鈕和電梯內(nèi)的樓層按鈕恢復(fù)正常。用例9 自動(dòng)打開電梯門(auto open door)(1) 電梯到達(dá)某樓層。(2) 電梯自動(dòng)開門。用例10 自動(dòng)關(guān)閉電梯門(auto close door)(1) 電梯門打開的狀態(tài)達(dá)到設(shè)置的時(shí)限。(2) 關(guān)閉電梯門。A3 類模型 根據(jù)分析,我們可以得到下面
11、這些類。 乘客類(Passenger)、管理員類(Manager)、電梯類(Elevator)、電梯門類(ElevatorDoor)、樓層的上行請(qǐng)求按鈕類(Go Up Request)、樓層的下請(qǐng)求按鈕類(Go Down Request)、電梯里的樓層按鈕類(Go To Floor Request)、樓層鎖類(lock)、指示燈類(Indicate Light)、隊(duì)列類(Queue)、定時(shí)器類(Timer)、異常處理類(Expection)。1 乘客類(Passenger)PassengerPress()2 管理員類(Manager)ManagerLockFloor()OpenFloor()3
12、 電梯類(Elevator)屬性State表示電梯的狀態(tài)(停止、上行、下行),Position表示電梯所在的樓層(1-N),IsOverWeight標(biāo)識(shí)電梯是否超重,IsNormal用于標(biāo)識(shí)電梯是否正常。方法StartUp(Floor)表示啟動(dòng)電梯上行到Floor層,StartDown(Floor)表示啟動(dòng)電梯下行到Floor層,Stop表示電梯停下來,Warn()啟動(dòng)電梯超重警報(bào),CancelWarn取消電梯超重警報(bào)。ElevatorStatePositionIsOverWeightIsNormalStartUp(Floor)StartDown(Floor)Stop()Warn()Cance
13、lWarn()4 梯門類(ElevatorDoor)屬性State表示電梯門的狀態(tài)(開或關(guān)),方法Open()表示打開電梯門,Close()表示關(guān)閉電梯門。ElevatorDoorStateOpen()Close5 樓層的上行請(qǐng)求按鈕類(Go Up Request)、樓層的下行請(qǐng)求按鈕類(Go Down Request)、電梯里的樓層按鈕類(Go To Floor Request)屬性State表示按鈕是否已經(jīng)被按下,Enabled表示按鈕是否能用(如果被管理員鎖住就不能用),OnFloor表示按鈕對(duì)應(yīng)的樓層號(hào),方法Press()表示按下按鈕,Reset()表示復(fù)位按鈕, 6 指示燈類(Ind
14、icate Light)指示燈分為樓層指示燈和電梯狀態(tài)指示燈,其中State屬性表示指示燈的狀態(tài)(亮或滅)。樓層指示燈有Show(Floor)方法用于顯示電梯所在樓層數(shù),電梯狀態(tài)指示燈有Show(UporDown)方法用于顯示電梯上行或下行。7 樓層鎖類(lock)屬性State表示樓層鎖的狀態(tài)(關(guān)或開),OnFloor表示鎖所在的樓層數(shù),方法On()表示開鎖,Off()表示關(guān)鎖。LockFloorStateOnFloorOn()Off()8 隊(duì)列類(Queue)隊(duì)列類用于創(chuàng)建上行和下行隊(duì)列,IsEmpty屬性表示隊(duì)列是否為空,方法Insert(Elevator)用于插入元素,DeleteHe
15、ad()方法用于刪除隊(duì)列頭元素,Send(HeadElement)用于將隊(duì)列頭發(fā)送給電梯。QueueIsEmptyInsert(Elevator)DeleteHead()Send(HeadElement)9 定時(shí)器類(Timer) Time屬性用于設(shè)置定時(shí)的時(shí)間長,StartTimer()方法用于啟動(dòng)計(jì)時(shí),當(dāng)計(jì)時(shí)結(jié)束時(shí)執(zhí)行Doing()方法并停止計(jì)時(shí)。TimerTimeStartTimer()Doing()10 異常處理類(Expection)Type屬性用語標(biāo)識(shí)發(fā)生的異常類型,Source記錄異常源,Doing()方法用于當(dāng)發(fā)生異常時(shí)做出的處理。ExceptionTypeSourceDoin
16、g()11 類關(guān)系圖。 實(shí)訓(xùn)內(nèi)容實(shí)訓(xùn)內(nèi)容一 繪制電梯圖形實(shí)訓(xùn)目的(1) 學(xué)會(huì)使用Java.awt包中的Graphics類控制和顯示用戶自定義界面成分,如字體、顏色和圖形。(2) 掌握簡(jiǎn)單的圖形動(dòng)畫效果。實(shí)訓(xùn)要求創(chuàng)建Applet程序,實(shí)現(xiàn)土5-1(a)所示簡(jiǎn)單的電梯二維圖形,并當(dāng)單擊“開門“、“關(guān)門”按鈕時(shí)實(shí)現(xiàn)圖形上的關(guān)門、開門動(dòng)作。如圖5-1(b)就是單擊開門后正在開門的過程中。實(shí)訓(xùn)指導(dǎo)java.awt包提供了控制字體的Font類、控制顏色的Color類。通過這兩個(gè)類的屬性的設(shè)置可以實(shí)現(xiàn)對(duì)界面上的字體和顏色的控制。如closeDoor.setFont(new Font(“TimesRoman”
17、,Font.BOLD,12);這個(gè)語句將closeDoor上顯示的文字顏色設(shè)置成紅色。Java.awt包還提供了用戶繪圖操作的類Graphics,其中包括了許多繪制文字和圖形的相關(guān)方法。使用Graphics類可以繪制線、圓和橢圓、矩形和多邊形、顯示圖像、動(dòng)畫和各種字體。如draeLine(int x1,int y1,int x2,int y2),在坐標(biāo)(x1,y1)、(x2,y2)之間畫一條直線。drawRect(int x,int y,int width,int height)方法和fillRect(int x,int y,int width,int height)方法分別用當(dāng)前顏色在指定位
18、置繪制一個(gè)矩形框和一個(gè)填充的矩形,其中參數(shù)x,y分別是矩形的左上角坐標(biāo);width,height分別用語指定矩形的寬和高。DrawOval(int x,int y,int width,int height)方法和fillOval(int x,int y,int width,int height)方法可以在指定的矩形區(qū)域內(nèi)繪制橢圓,其中的參數(shù)x、y、width、height分別表示矩形的左上角x、y坐標(biāo)、寬和高。要實(shí)現(xiàn)以上自定義成分,還要借助于Applet類的paint()方法,由該方法畫出實(shí)際的圖形。當(dāng)Applet運(yùn)行時(shí),將自動(dòng)創(chuàng)建一個(gè)Graphics類的對(duì)象g,并把這個(gè)對(duì)象參數(shù)傳遞給pain
19、t()方法。在paint()方法中,就可以調(diào)用Graphics類提供的繪制圖形和文字的方法了。下面是程序的實(shí)現(xiàn)部分。import java.awt.*;import java.applet.*;public class Applet1 extends java.applet.Applet Button closeDoor=new Button(關(guān)門); Button openDoor=new Button(開門); int yPos=60,50,50,60,60; int xPos=30,40,90,100,30; int flag=2; public void init() closeDoo
20、r.setFont(new Font(TimesRoman,Font.BOLD,12); closeDoor.setForeground(new Color(255,0,0); add(closeDoor); openDoor.setFont(new Font(TimesRoman,Font.BOLD,12); openDoor.setForeground(new Color(0,255,0); add(openDoor); public boolean action(Event e,Object o) if(e.target=closeDoor) flag=0; else if(e.targ
21、et=openDoor) flag=1; repaint(); return true; public void paint(Graphics g) g.setColor(new Color(150,150,50); g.fillRect(30,60,70,90); g.setColor(new Color(20,20,150); g.fillPolygon(xPos,yPos,4); g.setColor(new Color(190,150,150); g.drawRect(30,60,70,2); g.setColor(new Color(0,0,0); g.drawOval(105,72
22、,18,18); g.setColor(new Color(0,0,255); g.fillArc(101,75,27,27,60,60); g.setColor(new Color(0,0,0); g.drawOval(105,100,18,18); g.setColor(new Color(0,0,255); g.fillArc(102,88,27,27,-120,60); if(flag=0) g.setColor(new Color(150,40,40); for(int i=0;i=33;i+) g.draw3DRect(30,63,1+i,86,true); g.draw3DRec
23、t(99-i,63,1+i,86,true); else if(flag=1) g.setColor(new Color(150,40,50); g.draw3DRect(30,63,34,86,true); g.setColor(new Color(150,40,50); g.draw3DRect(66,63,34,86,true); g.setColor(new Color(150,150,40); for(int i=0;i=50;ElePositionPix-) g.drawImage(Elevator_Image,50,ElePositionPix,this); try Thread
24、.sleep(100); catch(InterruptedException e) showStatus(e.toString(); else if(flag=1) for(;ElePositionPix=200;ElePositionPix+) g.drawImage(Elevator_Image,50,ElePositionPix,this); try Thread.sleep(100); catch(InterruptedException e) showStatus(e.toString(); 實(shí)訓(xùn)內(nèi)容三 實(shí)現(xiàn)電梯控制仿真界面設(shè)計(jì) 實(shí)訓(xùn)目的(1) 學(xué)會(huì)使用各種容器組建,重點(diǎn)掌握App
25、let和Panel容器的使用。(2) 學(xué)會(huì)流式布局、網(wǎng)格布局、邊框布局和網(wǎng)格袋布局這4種布局方式的界面設(shè)計(jì)。實(shí)訓(xùn)要求 為了實(shí)現(xiàn)電梯控制的防真,需要設(shè)計(jì)出與實(shí)際電梯運(yùn)行相似的界面,這個(gè)范例就是為實(shí)現(xiàn)電梯控制防真而設(shè)計(jì)一個(gè)界面。如圖6-2所示。將這個(gè)界面分成3部分來看,左邊部分代表一座樓,顏色深淺分別代表不同的樓層,F(xiàn)1F6分別表示一樓到六樓,每個(gè)樓層都有標(biāo)識(shí)著向上和向下箭頭的按鈕,分別表示上行和下行按鈕;中間部分是電梯通道,綠色的方形圖片表示電梯;界面的右邊部分包含著“啟動(dòng)電梯”按鈕、“關(guān)閉電梯”按鈕、電梯位置指示、電梯內(nèi)的樓層按鈕板。 實(shí)訓(xùn)指導(dǎo)(1)設(shè)置HTML文件中的Applet的顯示尺寸w
26、idth和height為合適的值,如290和400。方法如下:選擇HTML文件,用鼠標(biāo)右擊打開彈出菜單,單擊Open菜單選項(xiàng),在代碼編輯窗口中打開HTML文件。然后選擇Source選項(xiàng)卡,此時(shí)將看到一塊灰色的區(qū)域,即Applet的顯示區(qū)域,在該區(qū)域上用鼠標(biāo)右擊打開彈出菜單,選擇Always View AsText菜單項(xiàng),以文本方式顯示該區(qū)域的代碼,修改width和height參數(shù)即可。(2)回到Java Applet程序,向Applet容器設(shè)置成網(wǎng)格袋布局方式,添加3個(gè)Panel將界面從左到右分成3部分,并且使得右邊和左邊的Panel縱橫都向外擴(kuò)充,而中間部分的Panel不擴(kuò)充。(3) 將左部
27、分的面板設(shè)置成網(wǎng)格布局方式,并在這個(gè)面板中添加6個(gè)子面板,將這6個(gè)面板反別設(shè)置成不同的顏色,代表6個(gè)樓層。(4) 將這6個(gè)子面板設(shè)置成流式布局方式,并分別向這6個(gè)面板添加樓層標(biāo)示和上行和下行按鈕。(5) 將右部分的面板設(shè)置成網(wǎng)格布局方式,添加兩個(gè)子面板將其分成上下兩部分并分別設(shè)置背景和顏色;將上部分的子面板設(shè)置成網(wǎng)格布局方式,向其中添加如圖6-2所示的啟動(dòng)、關(guān)閉和狀態(tài)顯示信息;將下部分面板設(shè)置成邊框布局方式,并向其中添加相應(yīng)的控制按鈕。(6) 裝入電梯模擬圖片,在Applet的合適位置顯示該圖片。實(shí)現(xiàn)此布局的完整程序代碼如下:import java.awt.*;import java.appl
28、et.*;public class Applet3 extends java.applet.Applet Panel Floor_Panel=new Panel(); Panel Elevator_Panel=new Panel(); Panel Indication_Panel=new Panel(); Panel Floor1_Panel=new Panel(); Panel Floor2_Panel=new Panel(); Panel Floor3_Panel=new Panel(); Panel Floor4_Panel=new Panel(); Panel Floor5_Panel
29、=new Panel(); Panel Floor6_Panel=new Panel(); Label FloorLabel1=new Label(F1); Label FloorLabel2=new Label(F2); Label FloorLabel3=new Label(F3); Label FloorLabel4=new Label(F4); Label FloorLabel5=new Label(F5); Label FloorLabel6=new Label(F6); FloorButton UpButton1=new FloorButton(1,true,); FloorBut
30、ton DnButton1=new FloorButton(1,false,); FloorButton UpButton2=new FloorButton(2,true,); FloorButton DnButton2=new FloorButton(2,false,); FloorButton UpButton3=new FloorButton(3,true,); FloorButton DnButton3=new FloorButton(3,false,); FloorButton UpButton4=new FloorButton(4,true,); FloorButton DnBut
31、ton4=new FloorButton(4,false,); FloorButton UpButton5=new FloorButton(5,true,); FloorButton DnButton5=new FloorButton(5,false,); FloorButton UpButton6=new FloorButton(6,true,); FloorButton DnButton6=new FloorButton(6,false,); Panel SubInd_Panel1=new Panel(); Panel SubInd_Panel2=new Panel(); Panel Su
32、bInd_Panel3=new Panel(); Button Start_Button=new Button(啟動(dòng)電梯); Button Stop_Button=new Button(關(guān)閉電梯); Label Indication_Prompt=new Label(電梯所在層); Label State_Prompt=new Label(電梯狀態(tài)); Label Indication_Light=new Label(1層); Label State_Light=new Label(停止); Label ETitleLabel=new Label(電梯內(nèi)樓層按鈕板); Label EastLa
33、bel=new Label(); Label WestLabel=new Label(); Label SouthLabel=new Label(); DesFlButton DesFl_Button1=new DesFlButton(1,1); DesFlButton DesFl_Button2=new DesFlButton(2,2); DesFlButton DesFl_Button3=new DesFlButton(3,3); DesFlButton DesFl_Button4=new DesFlButton(4,4); DesFlButton DesFl_Button5=new De
34、sFlButton(5,5); DesFlButton DesFl_Button6=new DesFlButton(6,6); Image eImage; public void init() GridBagLayout gbl=new GridBagLayout(); GridBagConstraints gbc=new GridBagConstraints(); setLayout(gbl); gbc.gridx=0;gbc.gridy=0; gbc.gridwidth=1; gbc.gridheight=1; gbc.fill=GridBagConstraints.BOTH; gbc.a
35、nchor=GridBagConstraints.WEST; gbc.weightx=1;gbc.weighty=1; gbc.insets=new Insets(0,0,0,0); gbl.setConstraints(Floor_Panel,gbc); add(Floor_Panel); gbc.gridx=1;gbc.gridy=0; gbc.gridwidth=1; gbc.gridheight=1; gbc.fill=GridBagConstraints.HORIZONTAL; gbc.anchor=GridBagConstraints.NORTHWEST; gbc.weightx=
36、1;gbc.weighty=1; gbc.insets=new Insets(0,0,0,0); gbl.setConstraints(Elevator_Panel,gbc); add(Elevator_Panel); gbc.gridx=2;gbc.gridy=0; gbc.gridwidth=1; gbc.gridheight=1; gbc.fill=GridBagConstraints.BOTH; gbc.anchor=GridBagConstraints.EAST; gbc.weightx=1;gbc.weighty=1; gbc.insets=new Insets(0,0,0,0);
37、 gbl.setConstraints(Indication_Panel,gbc); add(Indication_Panel); Floor_Panel.setLayout(new GridLayout(6,1); Floor6_Panel.setBackground(new Color(50,220,220); Floor5_Panel.setBackground(new Color(50,190,190); Floor4_Panel.setBackground(new Color(50,160,160); Floor3_Panel.setBackground(new Color(50,1
38、30,130); Floor2_Panel.setBackground(new Color(50,100,100); Floor1_Panel.setBackground(new Color(50,70,70); Floor_Panel.add(Floor6_Panel); Floor_Panel.add(Floor5_Panel); Floor_Panel.add(Floor4_Panel); Floor_Panel.add(Floor3_Panel); Floor_Panel.add(Floor2_Panel); Floor_Panel.add(Floor1_Panel); Floor1_
39、Panel.setLayout(new FlowLayout(FlowLayout.RIGHT); FloorLabel1.setForeground(new Color(255,0,0); FloorLabel1.setFont(new Font(TimesRoman,Font.BOLD,18); UpButton1.setCursor(new Cursor(Cursor.HAND_CURSOR); UpButton1.setFont(new Font(TimesRoman,Font.BOLD,10); DnButton1.setCursor(new Cursor(Cursor.HAND_C
40、URSOR); DnButton1.setFont(new Font(TimesRoman,Font.BOLD,10); DnButton1.setEnabled(false); Floor1_Panel.add(FloorLabel1); Floor1_Panel.add(UpButton1); Floor1_Panel.add(DnButton1); Floor2_Panel.setLayout(new FlowLayout(FlowLayout.RIGHT); FloorLabel2.setForeground(new Color(255,0,0); FloorLabel2.setFon
41、t(new Font(TimesRoman,Font.BOLD,18); UpButton2.setCursor(new Cursor(Cursor.HAND_CURSOR); UpButton2.setFont(new Font(TimesRoman,Font.BOLD,10); DnButton2.setCursor(new Cursor(Cursor.HAND_CURSOR); DnButton2.setFont(new Font(TimesRoman,Font.BOLD,10); Floor2_Panel.add(FloorLabel2); Floor2_Panel.add(UpBut
42、ton2); Floor2_Panel.add(DnButton2); Floor3_Panel.setLayout(new FlowLayout(FlowLayout.RIGHT); FloorLabel3.setForeground(new Color(255,0,0); FloorLabel3.setFont(new Font(TimesRoman,Font.BOLD,18); UpButton3.setCursor(new Cursor(Cursor.HAND_CURSOR); UpButton3.setFont(new Font(TimesRoman,Font.BOLD,10); D
43、nButton3.setCursor(new Cursor(Cursor.HAND_CURSOR); DnButton3.setFont(new Font(TimesRoman,Font.BOLD,10); Floor3_Panel.add(FloorLabel3); Floor3_Panel.add(UpButton3); Floor3_Panel.add(DnButton3); Floor4_Panel.setLayout(new FlowLayout(FlowLayout.RIGHT); FloorLabel4.setForeground(new Color(255,0,0); Floo
44、rLabel4.setFont(new Font(TimesRoman,Font.BOLD,18); UpButton4.setCursor(new Cursor(Cursor.HAND_CURSOR); UpButton4.setFont(new Font(TimesRoman,Font.BOLD,10); DnButton4.setCursor(new Cursor(Cursor.HAND_CURSOR); DnButton4.setFont(new Font(TimesRoman,Font.BOLD,10); Floor4_Panel.add(FloorLabel4); Floor4_Panel.add(UpButton4); Floor4_Panel.add(DnButton4); Floor5_Panel.setLayout(new FlowLayout(FlowLayout.RIGHT); FloorLabel5.setForeground(new Color(255,0,0); FloorLabel5.setFont(new Font(TimesRoman,Font.BOLD,18); UpButton5.setCursor(new Cursor(Cursor.HAND_CURSOR); UpButton5.setFont(new Fon
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理學(xué)科前沿動(dòng)態(tài)與探討
- 醫(yī)學(xué)影像診斷與介入治療技術(shù)培訓(xùn)與解析
- 2026年黑龍江民族職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試模擬試題帶答案解析
- 神經(jīng)內(nèi)科護(hù)理操作規(guī)范培訓(xùn)
- 生物醫(yī)療創(chuàng)新項(xiàng)目孵化與投資
- 醫(yī)療器械安全與風(fēng)險(xiǎn)管理
- 互聯(lián)網(wǎng)醫(yī)療與醫(yī)療服務(wù)創(chuàng)新
- 2026年廣東江門中醫(yī)藥職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試參考題庫帶答案解析
- 2026年海南經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能筆試模擬試題帶答案解析
- 2026年巴音郭楞職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試模擬試題帶答案解析
- 2025年及未來5年中國幽門螺桿菌藥物行業(yè)市場(chǎng)調(diào)查研究及發(fā)展戰(zhàn)略規(guī)劃報(bào)告
- 設(shè)備安裝安全施工培訓(xùn)課件
- 2025至2030年中國水泥基滲透結(jié)晶型堵漏材料市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 電子屏安全培訓(xùn)課件
- 婦科臨床路徑課件
- 高空作業(yè)生命繩安全使用規(guī)范
- (標(biāo)準(zhǔn))儲(chǔ)物間轉(zhuǎn)讓合同協(xié)議書
- 裝修工人出意外合同范本
- 水庫大壩滲漏勘探方案
- 醫(yī)院培訓(xùn)課件:《國家基本公共衛(wèi)生服務(wù)規(guī)范-傳染病及突發(fā)公共衛(wèi)生事件報(bào)告和處理》
- 法人解聘合同協(xié)議
評(píng)論
0/150
提交評(píng)論