版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、A1 系統(tǒng)描述1 功能描述本電梯系統(tǒng)用來控制一臺運行于一個具有N層的大樓電梯,它具有上升、下降、開門、關門、載客的基本功能。大樓的每一層都有:(1) 兩個指示燈 這兩個指示燈分別用于指示當前所在的層數和電梯的當前狀態(tài)(上行、下行或停止);(2) 電梯鎖 用于將本層的電梯門鎖住,并使本樓層的電梯按鈕失效,電梯里相應的按鈕也失效,使得電梯不能也不可能停在本層;(3) 按鈕 除了第一層和頂層,每一層都有兩個按鈕(上行、下行),乘客可以呼叫上樓或下樓,頂樓只有一個下樓按鈕,而第一層只有一個上樓按鈕。電梯里面具有:(1) 標示從“1”到“N”的N個按鈕,用于讓乘客選擇所要的層數;(2) 關門按鈕 當乘客
2、按下此按鈕時,電梯門如果開著將關上,否則不執(zhí)行任何操作;(3) 開門按鈕 當乘客按下此按鈕時,電梯如果停在某一層,電梯門將打開,否則不執(zhí)行任何操作;(4) 超重測試和警報裝置 電梯的地面有超重感應裝置,當電梯載重達到某一個值時,電梯“超重警報鈴”發(fā)出超重警報,并且不執(zhí)行關門命令。2 關鍵實現方法描述用“最大距離循環(huán)”來說明電梯的運行方式。也說是說,電梯處于上行狀態(tài)時就一直上行直到不再有上行任務,電梯處于下行狀態(tài)時就一直下行直到不再有下行任務。用兩個隊列來實現電梯的調度,電梯根據這兩個隊列發(fā)送來的樓層號作為目的地進行運行。在上行隊列中保存了所有的上行請求的樓層號(包括樓層的呼叫和電梯里的樓層按鈕
3、請求),即保存電梯上行時需要停的樓層號。隊列排列規(guī)則是:高于或等于電梯當前所地樓層的上行請求的樓層號從小到大排在隊列的前部分,低于電梯當前所地樓層的上行請求的樓層號從小到大排在隊列后部分。如果新請求的樓層號被插在隊列頭時同時將這個樓層號發(fā)送給電梯作為它的目的地。在下行隊列中保存了所有的下行請求的樓層號(包括樓層的呼叫和電梯里樓層按鈕請求),即保存電梯下行時需要停的樓層號。隊列排列規(guī)則是:低于或是等于電梯當前所在樓層的下行請求的樓層從大到小排在隊列前部分,高于電梯當前所在樓層的下行請求的樓層號從大到小排在隊列后部分。當電梯正在上行時,如果上行隊列的隊列頭改變時,系統(tǒng)將同時將這個新的隊列頭發(fā)送給電
4、梯作為它的新目的地。有兩種原因引起隊列頭的改變。(1) 新的請求插入到上行隊列頭。(2) 電梯到達某個樓層將這個樓層的請求從上行隊列的隊列頭刪除,后繼的更高樓層號成為對列頭。當電梯正在下行時,如果下行隊列的隊列頭改變時,系統(tǒng)將同時將這個新的隊列頭發(fā)送給電梯作為它的新目的地。有兩種原因引起下行隊列頭的改變。(1) 新的請求插入到下行隊列頭。(2) 電梯到達某個樓層將這個樓層的請求從下行隊列的隊列頭刪除,后繼的更高樓層號成為對列頭。在電梯上行過程中,當上行隊列中沒有比電梯當前所在的樓層更高的樓層號時,發(fā)送電梯目的地的開始從下行隊列中取得。同樣,在電梯下行過程中,當下行隊列中沒有比電梯當前所在的樓層
5、更低的樓層號時,發(fā)送電梯目的地的開始從上行隊列中取得。如此反復,當兩個隊列中都沒有數據時,電梯暫停。當電梯到達某層時,此層的所有請求按鈕全部復位(包括樓層和電梯里的按鈕),電梯門自動開啟,在一段時間內如果乘客沒有按下開門或關門的按鈕,電梯將自動關門。為了保證電梯系統(tǒng)的安全,在任何不安全的情況下,緊急制動就會被促發(fā),電梯被強制停止。A2 用例模型1 角色識別根據前面系統(tǒng)的描述,可以確定與該系統(tǒng)交互的兩個角色:電梯管理員(elevator manager)和乘客(passenger),其中乘客是電梯的主要使用者,電梯管理員的責任是對電梯進行維護(見圖A1)。角色:乘客角色職責:乘電梯上下樓開電梯門
6、關電梯門角色識別問題:(1) 使用系統(tǒng)主要部分(2)對系統(tǒng)運行結果感興趣角色:電梯管理員角色職責:開電梯鎖關電梯鎖處理電梯緊急事故角色識別問題:(1)維護管理,保持系統(tǒng)正常運行(2)對系統(tǒng)運行結果感興趣圖A12 用例識別在角色的基礎上,可以確定系統(tǒng)的用例,做法是針對每一個角色考查它要求系統(tǒng)提供的功能,它使用系統(tǒng)的哪些功能,經過分析,可得到如下的用例。乘客相關的用例:l 按下某樓層的上行按鈕(go up stair)。l 按下某樓層的下行按鈕(go down stair)。l 按下某電梯內的某一層樓按鈕(go to floor request)。l 按下關門按鈕 (close door)。l 按
7、下開門按鈕(open door)。l 超重測試(overweight test)。電梯管理員的用例:l 鎖住某層電梯鎖(lock floor)。l 打開某層電梯鎖(open floor)。用例的描述如下:用例1 按下某樓層的上行按鈕(go up stair)(1) 乘客按下第M層的上行按鈕。(2) M被插入到上行隊列的合適位置。(3) 如果M被插到上行隊列頭。l 如果電梯正處于上行狀態(tài)。將M發(fā)送給電梯作為目的地。l 如果電梯處于停止狀態(tài)。將M發(fā)送給電梯作為目的地。(4)電梯到達此樓層。 (5)電梯自動打開門(用例9)。(6)乘客進入電梯。(7)超重測試(用例6)。用例2 按下某樓層的下行按鈕(
8、go down stair)。(1) 乘客按下第M層的下行按鈕。(2) M被插入到下行隊列的合適位置。(3) 如果M被插到下行隊列頭。l 如果電梯正處于下行狀態(tài)。將M發(fā)送給電梯作為目的地。l 如果電梯處于停止狀態(tài) 將M發(fā)送給電梯作為目的地。(4) 電梯到達此樓層。(5) 電梯自動打開門(用例9)。(6) 乘客進入電梯。(7) 超重測試(用例9)。用例3 按下電梯內的某一樓層按鈕(go to floor request)(1) 乘客按下電梯內L層的按鈕。(2) 如果被按下的樓層號L比電梯當前所在的樓層號高。l 將此樓層號插入到上行隊列的合適位置。l 如果L被插入到上行隊列頭。如果電梯正處于上行狀
9、態(tài)。將L發(fā)送給電梯作為電梯的目的地。(3) 如果被按下的層號L比電梯當前所在的樓層低。l 將此樓層號L插入到下行隊列的合適位置。l 如果L被插入到下行隊列頭。如果電梯正處于下行狀態(tài)。將L發(fā)送給電梯作為目的地。(4) 電梯到達目的樓層。(5) 電梯自動開門(用例9)。用例4按下關門按鈕(request close door)(1) 如果電梯門關著。保持電梯門關閉狀態(tài)。(2) 如果電梯門開著。關閉電梯門。用例5 按下開門按鈕(request open door)如果電梯停在某一層。l 如果電梯門關著。打開電梯門。l 如果電梯門開著。保持電梯門開狀態(tài)。用例6 超重測試(overweight test
10、)(1) 乘客進入電梯。(2) 如果電梯超重感應裝置檢測到超重。l 電梯發(fā)出超重警報,并拒絕關閉電梯門。l 乘客走出電梯。l 電梯解除超重警報,并允許關閉電梯門。用例7 鎖住某層電梯鎖(lock floor)此層的樓層請求按鈕和電梯內的樓層按鈕失效。用例8 打開某層電梯鎖(open floor)此層的樓層請求按鈕和電梯內的樓層按鈕恢復正常。用例9 自動打開電梯門(auto open door)(1) 電梯到達某樓層。(2) 電梯自動開門。用例10 自動關閉電梯門(auto close door)(1) 電梯門打開的狀態(tài)達到設置的時限。(2) 關閉電梯門。A3 類模型 根據分析,我們可以得到下面
11、這些類。 乘客類(Passenger)、管理員類(Manager)、電梯類(Elevator)、電梯門類(ElevatorDoor)、樓層的上行請求按鈕類(Go Up Request)、樓層的下請求按鈕類(Go Down Request)、電梯里的樓層按鈕類(Go To Floor Request)、樓層鎖類(lock)、指示燈類(Indicate Light)、隊列類(Queue)、定時器類(Timer)、異常處理類(Expection)。1 乘客類(Passenger)PassengerPress()2 管理員類(Manager)ManagerLockFloor()OpenFloor()3
12、 電梯類(Elevator)屬性State表示電梯的狀態(tài)(停止、上行、下行),Position表示電梯所在的樓層(1-N),IsOverWeight標識電梯是否超重,IsNormal用于標識電梯是否正常。方法StartUp(Floor)表示啟動電梯上行到Floor層,StartDown(Floor)表示啟動電梯下行到Floor層,Stop表示電梯停下來,Warn()啟動電梯超重警報,CancelWarn取消電梯超重警報。ElevatorStatePositionIsOverWeightIsNormalStartUp(Floor)StartDown(Floor)Stop()Warn()Cance
13、lWarn()4 梯門類(ElevatorDoor)屬性State表示電梯門的狀態(tài)(開或關),方法Open()表示打開電梯門,Close()表示關閉電梯門。ElevatorDoorStateOpen()Close5 樓層的上行請求按鈕類(Go Up Request)、樓層的下行請求按鈕類(Go Down Request)、電梯里的樓層按鈕類(Go To Floor Request)屬性State表示按鈕是否已經被按下,Enabled表示按鈕是否能用(如果被管理員鎖住就不能用),OnFloor表示按鈕對應的樓層號,方法Press()表示按下按鈕,Reset()表示復位按鈕, 6 指示燈類(Ind
14、icate Light)指示燈分為樓層指示燈和電梯狀態(tài)指示燈,其中State屬性表示指示燈的狀態(tài)(亮或滅)。樓層指示燈有Show(Floor)方法用于顯示電梯所在樓層數,電梯狀態(tài)指示燈有Show(UporDown)方法用于顯示電梯上行或下行。7 樓層鎖類(lock)屬性State表示樓層鎖的狀態(tài)(關或開),OnFloor表示鎖所在的樓層數,方法On()表示開鎖,Off()表示關鎖。LockFloorStateOnFloorOn()Off()8 隊列類(Queue)隊列類用于創(chuàng)建上行和下行隊列,IsEmpty屬性表示隊列是否為空,方法Insert(Elevator)用于插入元素,DeleteHe
15、ad()方法用于刪除隊列頭元素,Send(HeadElement)用于將隊列頭發(fā)送給電梯。QueueIsEmptyInsert(Elevator)DeleteHead()Send(HeadElement)9 定時器類(Timer) Time屬性用于設置定時的時間長,StartTimer()方法用于啟動計時,當計時結束時執(zhí)行Doing()方法并停止計時。TimerTimeStartTimer()Doing()10 異常處理類(Expection)Type屬性用語標識發(fā)生的異常類型,Source記錄異常源,Doing()方法用于當發(fā)生異常時做出的處理。ExceptionTypeSourceDoin
16、g()11 類關系圖。 實訓內容實訓內容一 繪制電梯圖形實訓目的(1) 學會使用Java.awt包中的Graphics類控制和顯示用戶自定義界面成分,如字體、顏色和圖形。(2) 掌握簡單的圖形動畫效果。實訓要求創(chuàng)建Applet程序,實現土5-1(a)所示簡單的電梯二維圖形,并當單擊“開門“、“關門”按鈕時實現圖形上的關門、開門動作。如圖5-1(b)就是單擊開門后正在開門的過程中。實訓指導java.awt包提供了控制字體的Font類、控制顏色的Color類。通過這兩個類的屬性的設置可以實現對界面上的字體和顏色的控制。如closeDoor.setFont(new Font(“TimesRoman”
17、,Font.BOLD,12);這個語句將closeDoor上顯示的文字顏色設置成紅色。Java.awt包還提供了用戶繪圖操作的類Graphics,其中包括了許多繪制文字和圖形的相關方法。使用Graphics類可以繪制線、圓和橢圓、矩形和多邊形、顯示圖像、動畫和各種字體。如draeLine(int x1,int y1,int x2,int y2),在坐標(x1,y1)、(x2,y2)之間畫一條直線。drawRect(int x,int y,int width,int height)方法和fillRect(int x,int y,int width,int height)方法分別用當前顏色在指定位
18、置繪制一個矩形框和一個填充的矩形,其中參數x,y分別是矩形的左上角坐標;width,height分別用語指定矩形的寬和高。DrawOval(int x,int y,int width,int height)方法和fillOval(int x,int y,int width,int height)方法可以在指定的矩形區(qū)域內繪制橢圓,其中的參數x、y、width、height分別表示矩形的左上角x、y坐標、寬和高。要實現以上自定義成分,還要借助于Applet類的paint()方法,由該方法畫出實際的圖形。當Applet運行時,將自動創(chuàng)建一個Graphics類的對象g,并把這個對象參數傳遞給pain
19、t()方法。在paint()方法中,就可以調用Graphics類提供的繪制圖形和文字的方法了。下面是程序的實現部分。import java.awt.*;import java.applet.*;public class Applet1 extends java.applet.Applet Button closeDoor=new Button(關門); 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(); 實訓內容三 實現電梯控制仿真界面設計 實訓目的(1) 學會使用各種容器組建,重點掌握App
25、let和Panel容器的使用。(2) 學會流式布局、網格布局、邊框布局和網格袋布局這4種布局方式的界面設計。實訓要求 為了實現電梯控制的防真,需要設計出與實際電梯運行相似的界面,這個范例就是為實現電梯控制防真而設計一個界面。如圖6-2所示。將這個界面分成3部分來看,左邊部分代表一座樓,顏色深淺分別代表不同的樓層,F1F6分別表示一樓到六樓,每個樓層都有標識著向上和向下箭頭的按鈕,分別表示上行和下行按鈕;中間部分是電梯通道,綠色的方形圖片表示電梯;界面的右邊部分包含著“啟動電梯”按鈕、“關閉電梯”按鈕、電梯位置指示、電梯內的樓層按鈕板。 實訓指導(1)設置HTML文件中的Applet的顯示尺寸w
26、idth和height為合適的值,如290和400。方法如下:選擇HTML文件,用鼠標右擊打開彈出菜單,單擊Open菜單選項,在代碼編輯窗口中打開HTML文件。然后選擇Source選項卡,此時將看到一塊灰色的區(qū)域,即Applet的顯示區(qū)域,在該區(qū)域上用鼠標右擊打開彈出菜單,選擇Always View AsText菜單項,以文本方式顯示該區(qū)域的代碼,修改width和height參數即可。(2)回到Java Applet程序,向Applet容器設置成網格袋布局方式,添加3個Panel將界面從左到右分成3部分,并且使得右邊和左邊的Panel縱橫都向外擴充,而中間部分的Panel不擴充。(3) 將左部
27、分的面板設置成網格布局方式,并在這個面板中添加6個子面板,將這6個面板反別設置成不同的顏色,代表6個樓層。(4) 將這6個子面板設置成流式布局方式,并分別向這6個面板添加樓層標示和上行和下行按鈕。(5) 將右部分的面板設置成網格布局方式,添加兩個子面板將其分成上下兩部分并分別設置背景和顏色;將上部分的子面板設置成網格布局方式,向其中添加如圖6-2所示的啟動、關閉和狀態(tài)顯示信息;將下部分面板設置成邊框布局方式,并向其中添加相應的控制按鈕。(6) 裝入電梯模擬圖片,在Applet的合適位置顯示該圖片。實現此布局的完整程序代碼如下: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(啟動電梯); Button Stop_Button=new Button(關閉電梯); 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(電梯內樓層按鈕板); 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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度太陽能光伏發(fā)電站項目進度控制與協(xié)調合同
- 二零二五版美容美發(fā)行業(yè)員工試用期勞動合同4篇
- 二零二五年度新型公私合作轉賬借款合同模板3篇
- 二零二五年度國有企業(yè)原材料采購合同補充協(xié)議范文3篇
- 二零二五年度影視MV拍攝制作與藝人肖像權合同
- 二零二五年度民政局離婚協(xié)議書修訂版解讀3篇
- 課題申報參考:民俗視域下江漢平原地區(qū)民歌音樂形態(tài)研究
- 二零二五年度農業(yè)節(jié)水灌溉技術服務合同4篇
- 黑龍江省雙鴨山市高三上學期開學考試語文試題(含答案)
- 二零二五年度社區(qū)食堂運營管理合同4篇
- 再生障礙性貧血課件
- 產后抑郁癥的護理查房
- 2024年江蘇護理職業(yè)學院高職單招(英語/數學/語文)筆試歷年參考題庫含答案解析
- 電能質量與安全課件
- 醫(yī)藥營銷團隊建設與管理
- 工程項目設計工作管理方案及設計優(yōu)化措施
- 圍場滿族蒙古族自治縣金匯螢石開采有限公司三義號螢石礦礦山地質環(huán)境保護與土地復墾方案
- 小升初幼升小擇校畢業(yè)升學兒童簡歷
- 資金支付審批單
- 第一單元(金融知識進課堂)課件
- 介入導管室護士述職報告(5篇)
評論
0/150
提交評論