版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、山西大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告姓 名蘇文杰學(xué) 號(hào)201601001026專業(yè)班級(jí)計(jì)算機(jī)科學(xué)與技術(shù)三班 課程名稱 java實(shí)驗(yàn)實(shí)驗(yàn)日期2017/12/4 成 績指導(dǎo)教師楊陟卓 批改日期實(shí)驗(yàn)名稱實(shí)驗(yàn) 8 javafx程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康恼莆粘S胓ui控制組件及其事件處理。 二、實(shí)驗(yàn)內(nèi)容1編程包含一個(gè)標(biāo)簽和一個(gè)按鈕,單擊按鈕時(shí),標(biāo)簽的內(nèi)容在“你好”和“再見”之間切換。分別用本類(該類自身),外部類,內(nèi)部類,匿名內(nèi)部類,以及l(fā)ambda表達(dá)式完成。程序代碼:package sd8;import java.awt.gridlayout;import java.awt.event.mouseeven
2、t;import java.awt.event.mouselistener;import javax.swing.jbutton;import javax.swing.jframe;import javax.swing.jlabel;public class test extends jframe implements mouselistener private jlabel label = new jlabel("你好");private jbutton btn = new jbutton("ok");public test()setlayout(ne
3、w gridlayout(2, 1);setbounds(200, 200, 250, 250);add(label);add(btn);btn.addmouselistener(this);super.setdefaultcloseoperation(jframe.exit_on_close);setvisible(true);pack();public static void main(string args) new test();new thread() -> new test().start();public void mouseclicked(mouseevent e) if
4、(label.gettext().equals("你好")label.settext("再見");elselabel.settext("你好");public void mouseentered(mouseevent e) public void mouseexited(mouseevent e) public void mousepressed(mouseevent e) public void mousereleased(mouseevent e) 運(yùn)行結(jié)果貼圖:2編程包含一個(gè)文本框和一個(gè)文本區(qū)域,文本框內(nèi)容改變時(shí),將文本框中的內(nèi)
5、容顯示在文本區(qū)域中;在文本框中按回車鍵時(shí),清空文本區(qū)域的內(nèi)容。程序代碼:package sd2;import java.awt.color; import java.awt.gridlayout; import java.awt.event.keyevent; import java.awt.event.keylistener; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.jtextarea; import javax.swing.jtextfield; import javax.swing.
6、border.titledborder;public class showtext extends jframe private static final long serialversionuid = 1l; private jtextfield text1; private jtextarea text2; public showtext() super("tetx show"); jpanel p1 = new jpanel(); p1.setbackground(color.white); p1.setborder(new titledborder("文本
7、框"); text1 = new jtextfield(10); text1.addkeylistener(new textlistener(); p1.add(text1); jpanel p2 = new jpanel(); p2.setbackground(color.white); p2.setborder(new titledborder("文本區(qū)域"); text2 = new jtextarea("原文本", 10, 10); text2.setlinewrap(true); text2.seteditable(false); p
8、2.add(text2); setlayout(new gridlayout(2, 1, 0, 5); add(p1); add(p2); setsize(200, 200); setvisible(true); this.setlocationrelativeto(null); setdefaultcloseoperation(jframe.exit_on_close); private class textlistener implements keylistener public void keypressed(keyevent e) public void keyreleased(ke
9、yevent e) if (e.getkeychar() != keyevent.vk_enter) text2.settext(text1.gettext(); public void keytyped(keyevent e) if (e.getkeychar() = keyevent.vk_enter) text2.settext(null); public static void main(string args) jframe frame = new showtext(); 運(yùn)行結(jié)果貼圖:3編程包含一個(gè)復(fù)選按鈕和一個(gè)普通按鈕,復(fù)選按鈕選中時(shí),普通按鈕的背景色為青色,未選中時(shí)為灰色。程序
10、代碼:package sd3;import java.awt.color; import java.awt.gridlayout; import java.awt.event.itemevent; import java.awt.event.itemlistener; import javax.swing.jbutton; import javax.swing.jcheckbox; import javax.swing.jframe; import javax.swing.jpanel; public class changebuttoncolor extends jframe private
11、 static final long serialversionuid = 1l; private jbutton button; private jcheckbox checkbox; public changebuttoncolor() super("改變按鈕顏色"); jpanel p1 = new jpanel(); p1.setbackground(color.white); setlayout(new gridlayout(2, 1); button = new jbutton("hello"); button.setsize(20, 20)
12、; button.setbackground(color.gray); p1.add(button); jpanel p2 = new jpanel(); p2.setbackground(color.blue); checkbox = new jcheckbox(); checkbox.additemlistener(new checkboxlistener(); p2.add(checkbox); add(p1); add(p2); setsize(200, 200); setvisible(true); this.setlocationrelativeto(null); setdefau
13、ltcloseoperation(jframe.exit_on_close); private class checkboxlistener implements itemlistener public void itemstatechanged(itemevent e) if (checkbox.isselected() button.setbackground(color.cyan); else button.setbackground(color.gray); public static void main(string args) changebuttoncolor b = new c
14、hangebuttoncolor(); 運(yùn)行結(jié)果貼圖:4編程顯示當(dāng)前鼠標(biāo)的位置坐標(biāo)。程序代碼:package sd4;import java.awt.color; import java.awt.event.mouseevent; import java.awt.event.mousemotionlistener; import javax.swing.jbutton; import javax.swing.jframe; public class locatemouse extends jframe private jbutton location; public locatemouse()
15、 super("尋找鼠標(biāo)位置"); location = new jbutton("顯示鼠標(biāo)位置"); location.setsize(20, 10); add(location); location.addmousemotionlistener(new mousemotionlistener() public void mousedragged(mouseevent e) public void mousemoved(mouseevent e) location.settext("鼠標(biāo)在(" + e.getx() + "
16、," + e.gety() + ")"); ); setsize(300, 200); setlocationrelativeto(null); setvisible(true); location.setbackground(color.white); setdefaultcloseoperation(jframe.exit_on_close); public static void main(string args) locatemouse mouse = new locatemouse(); 運(yùn)行結(jié)果貼圖:5. 編寫程序,實(shí)現(xiàn)使用鍵盤上的上下左右箭頭控制界面
17、上圖片的移動(dòng)。移動(dòng)到邊界時(shí)從界面另一側(cè)出現(xiàn)。移動(dòng)過程中顯示另一個(gè)圖片,停止時(shí)恢復(fù)原來的圖片。程序代碼:package sd5;import java.awt.color; import java.awt.event.keyevent;import java.awt.event.keylistener; import javax.swing.imageicon;import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; public class moveimage extends jframe
18、private imageicon oneicon = new imageicon("c:users潘desktoptimg.jpg"); private imageicon twoicon = new imageicon("c:users潘picturescamera roll1.jpg"); private jlabel label; jpanel p; public moveimage() super("image移動(dòng)"); setsize(500, 500); setlocationrelativeto(null); labe
19、l = new jlabel(oneicon); p = new jpanel(); setcontentpane(p); p.setlayout(null); this.addkeylistener(new panellistener(); label.setbounds(0, 0, 100, 100); p.add(label); p.setbackground(color.white); setvisible(true); setdefaultcloseoperation(jframe.exit_on_close); private class panellistener impleme
20、nts keylistener public void keypressed(keyevent e) label.seticon(twoicon); int x = label.getx(); int y = label.gety(); int w = p.getwidth(); int h = p.getheight(); if (e.getkeycode() = keyevent.vk_up) -y; if (y <= 0) y = h; label.setbounds(x, y, 100, 100); else if (e.getkeycode() = keyevent.vk_do
21、wn) +y; if (y >= h) y = 0; label.setbounds(x, y, 100, 100); else if (e.getkeycode() = keyevent.vk_left) x-; if (x <= 0) x = w; label.setbounds(x, y, 100, 100); else if (e.getkeycode() = keyevent.vk_right) x+; if (x >= w) x = 0; label.setbounds(x, y, 100, 100); public void keyreleased(keyeve
22、nt e) if (e.getkeycode() = keyevent.vk_up | e.getkeycode() = keyevent.vk_down | e.getkeycode() = keyevent.vk_left | e.getkeycode() = keyevent.vk_right) label.seticon(oneicon); public void keytyped(keyevent e) public static void main(string args) moveimage m = new moveimage(); 運(yùn)行結(jié)果貼圖:移動(dòng)前移動(dòng)中移動(dòng)后移動(dòng)末尾6 繪
23、制如下形式的一個(gè)二叉樹。程序代碼:package tree; import java.awt.color; import java.awt.font; import java.awt.graphics; import java.util.list; import javax.swing.jpanel; suppresswarnings("serial")public class treepanel extends jpanel private node tree; /保存整棵樹 private int nodewidth = 20; /每個(gè)結(jié)點(diǎn)的寬度 private int
24、 nodeheight = 20; /每個(gè)結(jié)點(diǎn)的高度 private int vdistance = 50; /每2個(gè)結(jié)點(diǎn)的垂直距離 private int hdistance = 30; /每2個(gè)結(jié)點(diǎn)的水平距離 private int starty = 200; /根結(jié)點(diǎn)的y,默認(rèn)距離頂部200像素 private int startx = 0; /根結(jié)點(diǎn)的x,默認(rèn)水平居中對(duì)齊 private int childalignways; /子對(duì)齊方式 public static int child_align_absolute = 0; /相對(duì)panel居中 public static int
25、child_align_relative = 1; /相對(duì)父結(jié)點(diǎn)居中 private font font = new font("微軟雅黑",font.bold,20); /描述結(jié)點(diǎn)的字體 private color nodecolor = color.white; /結(jié)點(diǎn)背景顏色 private color linklinecolor = color.black; /結(jié)點(diǎn)連線顏色 private color stringcolor = color.black; /結(jié)點(diǎn)描述文字的顏色 / 默認(rèn)構(gòu)造 public treepanel() this(null,child_ali
26、gn_absolute); /根據(jù)傳入的node繪制樹,以絕對(duì)居中的方式繪制 / param n 要繪制的樹 public treepanel(node n) this(n,child_align_absolute); /* 1 設(shè)置要繪制時(shí)候的對(duì)齊策略 2 param childalignways 對(duì)齊策略 3 see tree.treepanel#child_align_relative 4 see tree.treepanel#child_align_absolute */ public treepanel(int childalignways) this(null,childalign
27、ways); /* 1根據(jù)子對(duì)齊策略childalignways繪制的樹的根結(jié)點(diǎn)n 2 param n 要繪制的樹的根結(jié)點(diǎn) 3 param childalignways 對(duì)齊策略 */ public treepanel(node n, int childalignways) super(); /settree(n); this.childalignways = childalignways; /* 1 設(shè)置用于繪制的樹 2 param n 用于繪制的樹的 */ public void settree(node n) tree = n; /重寫,調(diào)用自己的繪制方法 public void pai
28、ntcomponent(graphics g) startx = (getwidth()-nodewidth)/2; super.paintcomponent(g); g.setfont(font); drawallnode(tree, startx, g); /* 1 遞歸繪制整棵樹 2 param n 被繪制的node 3 param xpos 根節(jié)點(diǎn)的繪制x位置 4 param g 繪圖上下文環(huán)境 */ public string tostring() return "a" public void drawallnode(node n, int x, graphics
29、 g) int y = n.getlayer()*(vdistance+nodeheight)+starty; int fonty = y + nodeheight - 4; g.setcolor(nodecolor); g.fillrect(x, y, nodewidth, nodeheight); /畫結(jié)點(diǎn)的格子 g.setcolor(stringcolor); g.drawstring(n.getname(), x, fonty); /畫結(jié)點(diǎn)的名字 if(n.haschild() list<node> c = n.getchilds(); int size = n.getch
30、ilds().size(); int tempposx = childalignways = child_align_relative ? x+nodewidth/2 - (size*(nodewidth+hdistance)-hdistance)/2 : (getwidth() - size*(nodewidth+hdistance)+hdistance)/2; int i = 0; for(node node : c) int newx = tempposx+(nodewidth+hdistance)*i; /孩子結(jié)點(diǎn)起始x g.setcolor(linklinecolor); g.dra
31、wline(x+nodewidth/2, y+nodeheight, newx+nodewidth/2, y+nodeheight+vdistance); /畫連接結(jié)點(diǎn)的線 drawallnode(node, newx, g); i+; public color getnodecolor() return nodecolor; /* 1 設(shè)置結(jié)點(diǎn)背景顏色 2 param nodecolor 結(jié)點(diǎn)背景顏色 */ public void setnodecolor(color nodecolor) this.nodecolor = nodecolor; public color getlinklin
32、ecolor() return linklinecolor; /* * 設(shè)置結(jié)點(diǎn)連接線的顏色 * param nodelinkline 結(jié)點(diǎn)連接線的顏色 */ public void setlinklinecolor(color nodelinkline) this.linklinecolor = nodelinkline; public color getstringcolor() return stringcolor; /* * 設(shè)置結(jié)點(diǎn)描述的顏色 * param stringcolor 結(jié)點(diǎn)描述的顏色 */ public void setstringcolor(color stringc
33、olor) this.stringcolor = stringcolor; public int getstarty() return starty; /* * 設(shè)置根結(jié)點(diǎn)的y位置 * param starty 根結(jié)點(diǎn)的y位置 */ public void setstarty(int starty) this.starty = starty; public int getstartx() return startx; /* * 設(shè)置根結(jié)點(diǎn)的x位置 * param startx 根結(jié)點(diǎn)的x位置 */ public void setstartx(int startx) this.startx = startx; package tree.demo; import java.awt.borderlayout; import java.awt.gridlayout; import javax.swing.jframe; import javax.swing.jpanel; import tree.node; import tree.treepanel; public class testdrawtree extends jframe publi
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版跨境電商園區(qū)企業(yè)入駐合作合同書3篇
- 二零二五版購房合同中合同解除后的爭議解決3篇
- 二零二五版房屋買賣合同公證操作規(guī)范及法律效力研究3篇
- 二零二五年度高級(jí)家教專業(yè)能力認(rèn)證聘用合同集錦3篇
- 二零二五年度電子商務(wù)網(wǎng)絡(luò)安全監(jiān)測與應(yīng)急響應(yīng)合同3篇
- 二零二五年度高端精密鈑金件加工服務(wù)合同2篇
- 二零二五年鋼材加工損耗賠償合同標(biāo)準(zhǔn)3篇
- 2025年度農(nóng)業(yè)現(xiàn)代化合作雙邊合同3篇
- 二零二五年度酒店客房預(yù)訂與客房管理服務(wù)合同3篇
- 二零二五年度金正茂集團(tuán)管理體制實(shí)施合同9篇
- 高考詩歌鑒賞專題復(fù)習(xí):題畫抒懷詩、干謁言志詩
- 2023年遼寧省交通高等??茖W(xué)校高職單招(英語)試題庫含答案解析
- GB/T 33688-2017選煤磁選設(shè)備工藝效果評(píng)定方法
- GB/T 304.3-2002關(guān)節(jié)軸承配合
- 漆畫漆藝 第三章
- CB/T 615-1995船底吸入格柵
- 光伏逆變器一課件
- 貨物供應(yīng)、運(yùn)輸、包裝說明方案
- (完整版)英語高頻詞匯800詞
- 《基礎(chǔ)馬來語》課程標(biāo)準(zhǔn)(高職)
- IEC61850研討交流之四-服務(wù)影射
評(píng)論
0/150
提交評(píng)論