




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一、目標(biāo):通過(guò)Java程序開(kāi)發(fā)實(shí)訓(xùn)使學(xué)生掌握面向?qū)ο蟪绦蛟O(shè)計(jì)(Java)課堂講授的內(nèi)容,靈活運(yùn)用到Java程序的開(kāi)發(fā)與設(shè)計(jì)中。二、要求:按時(shí)參加Java程序開(kāi)發(fā)實(shí)訓(xùn)訓(xùn)練,不得遲到和早退;獨(dú)立完成程序設(shè)計(jì);按要求撰寫(xiě)實(shí)踐報(bào)告。三、詳細(xì)內(nèi)容:使用面向?qū)ο蟪绦蛟O(shè)計(jì)(Java)課程講授內(nèi)容,編寫(xiě)一個(gè)簡(jiǎn)單的計(jì)算器,要求實(shí)現(xiàn)如下功能:1. 進(jìn)行圖形界面設(shè)計(jì) 通過(guò)圖形界面設(shè)計(jì),掌握Frame類(lèi)、Panel類(lèi)、5種布局管理器、文本框、標(biāo)簽及按鈕的使用方法。2. 實(shí)現(xiàn)計(jì)算器的基本功能包括加減乘除四則運(yùn)算、清除結(jié)果等功能。3. 實(shí)現(xiàn)計(jì)算器的存儲(chǔ)計(jì)算功能包括清空、使用清零、退格。和基本運(yùn)算4類(lèi)的屬性及所用到的方法布
2、局布局: 整個(gè)界面(Frame)采用BorderLayout布局 P1組件添加到Frame的南部 P1采用默認(rèn)的流式布局添加文本框P2組件添加到Frame的中部P2采用網(wǎng)格布局四行五列放各種按鈕用到的類(lèi): mycal KeyAdapter WindowAdapterMyCal類(lèi):mycal類(lèi)的屬性:b;按鈕數(shù)組保存各種按鍵 以后放到Panel2中tf;文本匡顯示輸入及運(yùn)算結(jié)果num1,num2,jieguo運(yùn)算數(shù)char c,ch;運(yùn)算符號(hào),ch為輸入的運(yùn)算符號(hào),c保存ch輸入的“+-*/”P(pán)anel p1,p2;/兩個(gè)組件p1放文本匡p2放按鈕P2的布局為網(wǎng)格布局5行4列 mycal類(lèi)的方法
3、:1 構(gòu)造方法:設(shè)置標(biāo)題;設(shè)置文本框;文本框中添加匿名內(nèi)置類(lèi)(KeyAdapter)實(shí)現(xiàn)鍵盤(pán)的輸入和運(yùn)算;將各種組件添加到容器,設(shè)置各種按鍵的顏色 ;添加WindowListenr監(jiān)聽(tīng)器設(shè)置關(guān)閉按鈕; 2Main方法: 新建一個(gè)mycal類(lèi);4. actionPerformed 方法: 設(shè)置按鈕的輸入和運(yùn)算,當(dāng)按下運(yùn)算數(shù)將其顯示在文本匡中如果之前清零則將零去除當(dāng)按下運(yùn)算符將其保存在c中并將文本匡內(nèi)容清空當(dāng)按下等號(hào)判斷字符c的符號(hào)進(jìn)行相應(yīng)的運(yùn)算并將結(jié)果顯示在文本框中。當(dāng)按下清空按鈕將文本框清空,當(dāng)按下退格按鈕取文本框中字符串的字串刪除一個(gè)符號(hào)。KeyAdapter類(lèi):KeyAdapter類(lèi)的屬性
4、:mycal類(lèi)中的屬性KeyAdapter類(lèi)的方法: keyPressed()方法 當(dāng)鍵盤(pán)按下時(shí), 判斷鍵盤(pán)的輸入當(dāng)為“+-*/”時(shí)記錄下num1及c;當(dāng)為”=”或“Enter”時(shí)記錄下num2并將結(jié)果計(jì)算出來(lái)keyReleased()方法當(dāng)鍵盤(pán)松開(kāi)時(shí),如果是按下“+-*/”后松開(kāi)將文本框清空如果是按下“=”或“Enter”后松開(kāi)將計(jì)算結(jié)果顯示在文本框中WindowAdapter類(lèi):WindowAdapter類(lèi)的屬性:WindowEvent eWindowAdapter類(lèi)的方法:windowClosing();設(shè)置關(guān)閉按鈕、四、源代碼 /*類(lèi)mycal繼承Frame實(shí)現(xiàn)了ActionListe
5、ner接口;往容器中添加兩個(gè)組件Panel1,Panel2;Panel中放置文本匡,Panel2中放置各種按鍵;文本匡中以匿名內(nèi)置類(lèi)的方式添加鍵盤(pán)監(jiān)聽(tīng)器實(shí)現(xiàn)鍵盤(pán)的輸入及運(yùn)算;為Panel2中各種按鍵添加動(dòng)作監(jiān)聽(tīng)器實(shí)現(xiàn)按鍵的輸入及運(yùn)算;*/import java.awt.*;import java.awt.event.*;class mycal extends Frame implements ActionListener private Button b; private TextField tf; private double num1,num2,jieguo;/運(yùn)算數(shù) private ch
6、ar c,ch;/運(yùn)算符 Panel p1,p2;/兩個(gè)組件 public mycal() setTitle(My Calculator 1.0); p1=new Panel(); tf=new TextField(25); tf.addKeyListener(new KeyAdapter() /添加鍵盤(pán)監(jiān)聽(tīng)器現(xiàn)鍵盤(pán)的輸入及運(yùn)算 public void keyPressed(KeyEvent e) char ch=e.getKeyChar(); if(+-*/.indexOf(ch)!=-1) num1=Double.parseDouble(tf.getText(); c=ch; if(ch=
7、|ch=e.VK_ENTER) num2=Double.parseDouble(tf.getText(); switch(c) case +: jieguo=num1+num2; break; case -: jieguo=num1-num2; break; case *: jieguo=num1*num2; break; case /: jieguo=num1/num2; break; public void keyReleased(KeyEvent e) char ch=e.getKeyChar(); if(+-*/.indexOf(ch)!=-1) tf.setText(null); i
8、f(ch=|e.getKeyCode()=e.VK_ENTER) tf.setText(Double.toString(jieguo); ); p1.add(tf); add(p1,North); p2=new Panel(); p2.setLayout(new GridLayout(5,4,10,8); b=new Button21; for(int i=1;i21;i+) bi=new Button(); bi.setFont(new Font(仿宋,0,16); String str1=/789*456-123+0; b1.setLabel(退格); b2.setLabel(清空); b
9、3.setLabel(清零); for(int i=4;i=17;i+) bi.setLabel(str1.charAt(i-4)+); b18.setLabel(+/-); b19.setLabel(.); b20.setLabel(=); for(int i=1;i21;i+) p2.add(bi); bi.addActionListener(this); bi.setBackground(new Color(20,130,180); bi.setForeground(Color.yellow); for(int i=1;i4;i+) bi.setBackground(new Color(
10、120,180,170); bi.setForeground(Color.blue); for(int i=1;i=4;i+) bi*4.setBackground(new Color(120,180,170); bi*4.setForeground(Color.red); b20.setBackground(Color.red); add(p2); /Dimension di=this.getPreferredSize(); /System.out.println(di.width+,+di.height); setBounds(100,200,230,300); setVisible(tr
11、ue); addWindowListener(new WindowAdapter()/設(shè)置關(guān)閉按鈕 public void windowClosing(WindowEvent e) e.getWindow().setVisible(false); e.getWindow().dispose(); System.exit(0); ); public static void main(String args) new mycal(); public void actionPerformed(ActionEvent e)/ 為Panel2中各種按鍵添加動(dòng)作監(jiān)聽(tīng)器實(shí)現(xiàn)按鍵的輸入及運(yùn)算; String
12、str=e.getActionCommand().trim(); if(0123456789.indexOf(str)!=-1) if(tf.getText().equals(0)tf.setText(null); tf.setText(tf.getText()+str); return; if(+-*/.indexOf(str)!=-1) num1=Double.parseDouble(tf.getText(); c=str.charAt(0); tf.setText(null); return; else if(str.equals(=) num2=Double.parseDouble(t
13、f.getText(); switch(c) case +: jieguo=num1+num2; break; case -: jieguo=num1-num2; break; case *: jieguo=num1*num2; break; case /: jieguo=num1/num2; break; tf.setText(Double.toString(jieguo); else if(str.equals(+/-) if(tf.getText().isEmpty()=false) Double lnum=-(Double.parseDouble(tf.getText(); tf.setText(Double.toString(lnum); else tf.setText(-); else if(str.equals(清空) tf.setText(null); else if(str.equals(清零) tf.setText(0); else if(str.equals
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 甘南市重點(diǎn)中學(xué)2026屆化學(xué)高二第一學(xué)期期末聯(lián)考模擬試題含答案
- 山體保護(hù)規(guī)劃匯報(bào)
- 新版小學(xué)生守則講解
- 遠(yuǎn)程網(wǎng)絡(luò)教育講解
- 夏天里的成長(zhǎng)講解
- 甜瓜高產(chǎn)種植技術(shù)
- 兒童支氣管肺泡灌洗護(hù)理
- 拓客活動(dòng)方案
- 鄉(xiāng)村振興景觀匯報(bào)
- 新藥品管理費(fèi)管理規(guī)范培訓(xùn)
- 國(guó)企入股私企協(xié)議書(shū)
- 《地質(zhì)災(zāi)害概述》課件
- 移民培訓(xùn)合同協(xié)議
- 2025年上交所期權(quán)交易資質(zhì)測(cè)試題庫(kù)
- 醫(yī)院科室獎(jiǎng)勵(lì)性績(jī)效分配方案
- 2025標(biāo)準(zhǔn)勞動(dòng)合同范本專(zhuān)業(yè)版(合同樣本)
- 浙江粉煤灰鋼板倉(cāng)施工方案
- 產(chǎn)前檢查與孕期保健
- 個(gè)人退款申請(qǐng)書(shū)范文
- 2025年云南能投新能源產(chǎn)業(yè)園區(qū)投資開(kāi)發(fā)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 第十章《浮力》達(dá)標(biāo)測(cè)試卷(含答案)2024-2025學(xué)年度人教版物理八年級(jí)下冊(cè)
評(píng)論
0/150
提交評(píng)論