九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

JAVA課程設(shè)計(jì) 計(jì)算器 文本編輯器

上傳人:優(yōu)*** 文檔編號(hào):55506773 上傳時(shí)間:2022-02-18 格式:DOC 頁(yè)數(shù):46 大?。?92.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
JAVA課程設(shè)計(jì) 計(jì)算器 文本編輯器_第1頁(yè)
第1頁(yè) / 共46頁(yè)
JAVA課程設(shè)計(jì) 計(jì)算器 文本編輯器_第2頁(yè)
第2頁(yè) / 共46頁(yè)
JAVA課程設(shè)計(jì) 計(jì)算器 文本編輯器_第3頁(yè)
第3頁(yè) / 共46頁(yè)

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《JAVA課程設(shè)計(jì) 計(jì)算器 文本編輯器》由會(huì)員分享,可在線閱讀,更多相關(guān)《JAVA課程設(shè)計(jì) 計(jì)算器 文本編輯器(46頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、真誠(chéng)為您提供優(yōu)質(zhì)參考資料,若有不當(dāng)之處,請(qǐng)指正。課 程 設(shè) 計(jì)設(shè)計(jì)題目: JAVA語(yǔ)言編寫(xiě)計(jì)算器和文檔編輯器 學(xué)生姓名: 李偉 學(xué) 號(hào): 20095378 專業(yè)班級(jí): 電子商務(wù)09-1班 指導(dǎo)教師: 聶會(huì)星 程八一 惠剛 靳鵬 方芳 2010 年 12 月 12 日計(jì)算器制作一、實(shí)驗(yàn)?zāi)康?、為了加深對(duì)課堂講授內(nèi)容的理解,掌握解決實(shí)際應(yīng)用問(wèn)題時(shí)所應(yīng)具有的查閱資料、技術(shù)標(biāo)準(zhǔn)和規(guī)范,以及軟件編程、調(diào)試等能力,掌握面向?qū)ο蟮木幊趟枷爰癑ava語(yǔ)言程序設(shè)計(jì)的規(guī)律與技巧,為進(jìn)一步學(xué)習(xí)Java高級(jí)應(yīng)用及今后從事專業(yè)工作打下基礎(chǔ)。2、在對(duì)Java程序的調(diào)試過(guò)程中,提高分析程序中出現(xiàn)的錯(cuò)誤和排除這些錯(cuò)誤的能力。

2、通過(guò)上機(jī)實(shí)踐,加深學(xué)生對(duì)計(jì)算機(jī)軟件運(yùn)行環(huán)境,以及對(duì)操作系統(tǒng)與計(jì)算機(jī)語(yǔ)言支持系統(tǒng)相互關(guān)系的了解。3、熟悉Java開(kāi)發(fā)工具,運(yùn)行java應(yīng)用程序和小程序;掌握J(rèn)ava程序的編輯、編譯、運(yùn)行。掌握各種數(shù)據(jù)類型及其使用方法;掌握表達(dá)式的組成;理解定義變量的作用,掌握定義變量的方法;掌握各種運(yùn)算符的使用及其優(yōu)先級(jí)控制。學(xué)習(xí)結(jié)構(gòu)化程序設(shè)計(jì)的分支結(jié)構(gòu)及分支語(yǔ)句的使用;學(xué)習(xí)使用結(jié)構(gòu)化程序設(shè)計(jì)的循環(huán)結(jié)構(gòu)及循環(huán)語(yǔ)句的使用;掌握數(shù)組的使用方法,著重掌握二維數(shù)組,編寫(xiě)使用二維數(shù)組的程序;掌握常用字符串類、方法。4、學(xué)會(huì)類的定義和對(duì)象的使用;封裝、繼承、多態(tài)的應(yīng)用;如何創(chuàng)建包,編譯、運(yùn)行包中的類;方法的覆蓋和重載;抽象

3、類、接口、內(nèi)部類的使用。掌握異常處理的使用方法。著重掌握基本的GUI組件;掌握容器布局管理;掌握事件處理機(jī)制。二、實(shí)驗(yàn)要求計(jì)算器要有GUI界面,用戶可以輸入所需計(jì)算的數(shù)值,可以進(jìn)行加、減、乘、除四種最基本的運(yùn)算,可以求一個(gè)數(shù)值的平方及倒數(shù),可以進(jìn)行階乘運(yùn)算,要能運(yùn)算小數(shù),并且不會(huì)產(chǎn)生精度損失,在必要情況下,可以進(jìn)行四舍五入的運(yùn)算。允許正負(fù)數(shù)間的運(yùn)算。三、實(shí)驗(yàn)內(nèi)容通過(guò)創(chuàng)建一個(gè)框架并在框架上加上適當(dāng)?shù)陌粹o以及文本框并通過(guò)對(duì)按鈕設(shè)置監(jiān)聽(tīng)器以達(dá)到進(jìn)行運(yùn)算的目的,由于對(duì)java知識(shí)掌握的不多還需要通過(guò)參閱書(shū)本來(lái)完成,我們小組有三個(gè)人,我負(fù)責(zé)做算法部分,其他兩人負(fù)責(zé)界面布局以及監(jiān)聽(tīng)器的設(shè)置。在實(shí)驗(yàn)過(guò)程中,

4、我們共同合作每個(gè)人都參加了所有程序的編寫(xiě)過(guò)程。四、實(shí)驗(yàn)步驟1、首先要聲明包。主要用到了以下幾個(gè)包:import java.awt.*;import java.awt.event.*;import javax.swing.*;導(dǎo)入了包之后就可以運(yùn)用包中的類了。2、創(chuàng)建框架。以下用BorderFrame類構(gòu)造frame函數(shù),然后設(shè)置框架的格式為最小化、最大化、關(guān)閉。然后show的作用是顯示該框架。BorderFrame frame = new BorderFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.show(

5、);3、編寫(xiě)B(tài)orderFrame類,定義各個(gè)變量。class BorderFrame extends JFrame implements ActionListener這里要用到ActionListener接口,是下面監(jiān)聽(tīng)器所需要的。定義變量例如下面代碼:private JButton num0,dao,gen,ss,bac;public double d,d11; public double jieguo; public boolean end=true;而在實(shí)際編寫(xiě)過(guò)程中我是用到一個(gè)定義一個(gè)。4、定義各組件,在框架上加入各種組件。接下來(lái)是定義按鈕num0=new JButton(0);括號(hào)

6、里的即為按鈕顯示的信息。依次再創(chuàng)建23個(gè)按鈕。剛開(kāi)始在BorderFrame()方法里我使用JButton num0=new JButton(0)來(lái)定義按鈕,后來(lái)發(fā)現(xiàn)在actionPerformed方法里不能使用這些按鈕,所以要在BorderFrame這個(gè)類中定義,JButton num0;這樣就能被BorderFrame類里的所有方法采用而不會(huì)出現(xiàn)未定義的錯(cuò)誤。在布局的時(shí)候?yàn)榱朔乐诡伾珕握{(diào),將按鈕背景顏色設(shè)置為白色,采用setBackground()方法,具體代碼如下:num0.setBackground(Color.white);這樣依次設(shè)置12個(gè)按鈕,其他按鈕仍為默認(rèn)顏色。接著創(chuàng)建but

7、tons面板方法如下:buttons=new JPanel();接著把所有的按鈕加到buttons面板程序代碼如下:buttons.add(num0);然后依次把所有按鈕加入即可。在布局的時(shí)候采用了setLayout 方式布局具體代碼如下:buttons.setLayout(new GridLayout(6,4,5,5);后面的四個(gè)數(shù)分別是6行4列,間隙的高5寬5。這樣之后布局如下接著編寫(xiě)文本框并將文本域設(shè)置為不可編輯,代碼如下resultText= new JTextField(, 25);resultText.setEnabled(false);然后將文本域加入到text面板中具體代碼如下

8、:JPanel text=new JPanel();text.add(resultText);之后再將面板加入到內(nèi)容窗格布局中具體代碼如下:Container contentPane = getContentPane();contentPane.add(text, BorderLayout.NORTH);contentPane.add(buttons, BorderLayout.CENTER);在計(jì)算器制作過(guò)程中為了使界面更加人性化,并為使用者提供一些制作信息我們小組特意加入了菜單欄。首先創(chuàng)建菜單欄并將菜單欄加入到框架中具體代碼如下:JMenuBar mainMenu = new JMenuB

9、ar(); setJMenuBar(mainMenu); 接著創(chuàng)建三個(gè)主菜單名字分別為文件、顏色、作者具體代碼如下: JMenu actMenu = new JMenu(文件); JMenu setColorMenu = new JMenu(顏色); JMenu aboutMenu = new JMenu(作者); mainMenu.add(actMenu); mainMenu.add(setColorMenu); mainMenu.add(aboutMenu); 接下來(lái)分別向各個(gè)主菜單中加入子菜單具體代碼如下tuichu = new JMenuItem(退出); actMenu.add(tu

10、ichu); banquan = new JMenuItem(版權(quán)); aboutMenu.add(banquan); chanpin = new JMenuItem(產(chǎn)品信息); aboutMenu.add(chanpin); hongse = new JMenuItem(紅色); setColorMenu.add(hongse); lanse = new JMenuItem(藍(lán)色); setColorMenu.add(lanse); huise = new JMenuItem(灰色); setColorMenu.add(huise);菜單顯示如下圖所示:5、創(chuàng)建監(jiān)聽(tīng)器每個(gè)按鈕都是事件源,我

11、們對(duì)按鈕設(shè)置監(jiān)聽(tīng)器后,只要該按鈕發(fā)生一個(gè)事件(ActionEvent),listenter對(duì)象就是接到通知。我們?cè)O(shè)置監(jiān)聽(tīng)器的方法如下所示:num9.addActionListener(this); num8.addActionListener(this); num7.addActionListener(this); num6.addActionListener(this); num5.addActionListener(this); num4.addActionListener(this); num3.addActionListener(this); num2.addActionListene

12、r(this); num1.addActionListener(this); num0.addActionListener(this); plu.addActionListener(this); min.addActionListener(this); mul.addActionListener(this); div.addActionListener(this); equ.addActionListener(this); cle.addActionListener(this); jiecheng.addActionListener(this); youk.addActionListener(

13、this); dian.addActionListener(this); zf.addActionListener(this); dao.addActionListener(this); gen.addActionListener(this); ss.addActionListener(this);bac.addActionListener(this);在這里,所有的按鈕共享一個(gè)監(jiān)聽(tīng)器對(duì)象。所以在actionPerformed方法中,必須判斷那個(gè)按鈕被按下,即事件源,可以通過(guò)EventObject類的getSource方法來(lái)判斷。接著對(duì)菜單也設(shè)置了監(jiān)聽(tīng)器如下:banquan.addAction

14、Listener(this);zhizuodi.addActionListener(this);hongse.addActionListener(this);lanse.addActionListener(this);huise.addActionListener(this);tuichu.addActionListener(this);chanpin.addActionListener(this);這樣所有的監(jiān)聽(tīng)器就制作好了。6、編寫(xiě)actionPerformed方法在actionPerformed方法里包括了所有按鈕以及子菜單的點(diǎn)擊事件,包括了所有的算法。首先設(shè)置點(diǎn)banqun菜單后,將會(huì)

15、彈出一個(gè)showConfirmDialo型對(duì)話框,里面的按鈕是DEFAULT_OPTION類型,標(biāo)題是“版權(quán)雷神牌計(jì)算器”,對(duì)話框里的內(nèi)容是 劉曉雷 20095406;李偉20095378;周洪芬20095379 具體代碼如下:if (source=banquan) int selection=JOptionPane.showConfirmDialog( BorderFrame.this, 劉曉雷 20095406;李偉20095378;周洪芬20095379 ,版權(quán)雷神牌計(jì)算器, JOptionPane.DEFAULT_OPTION); 接著編寫(xiě)chanpin菜單即作者信息的事件,當(dāng)點(diǎn)擊作者

16、信息時(shí)會(huì)彈出如下對(duì)話框:當(dāng)點(diǎn)擊確定后會(huì)彈出另一個(gè)對(duì)話框如圖:代碼如下if (source=chanpin) int selection=JOptionPane.showConfirmDialog( BorderFrame.this, 雷神出品必為精品 ,雷神牌計(jì)算器, JOptionPane.DEFAULT_OPTION); if (source=chanpin) int selection=JOptionPane.showConfirmDialog( BorderFrame.this, 謝謝使用,雷神牌計(jì)算器, JOptionPane.DEFAULT_OPTION); 可以看出就是將sour

17、ce判斷兩次是否等于chanpin,這樣當(dāng)?shù)谝粋€(gè)對(duì)話框執(zhí)行完之后就會(huì)彈出第二個(gè)對(duì)話框以達(dá)到效果。接著設(shè)置tuichu菜單的事件,當(dāng)點(diǎn)擊退出時(shí)會(huì)出現(xiàn)如下對(duì)話框:如果點(diǎn)擊了確定就會(huì)退出,點(diǎn)擊了撤銷就會(huì)回到原界面代碼如下:if (source=tuichu) int selection = JOptionPane.showConfirmDialog(BorderFrame.this,確定退出么?, 退出?, JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE); if (selection = JOptionPane.OK_OPTION)

18、 System.exit(5); System.exit(5)語(yǔ)句就是退出框架的意思,括號(hào)里的可以為任意值,消息類型為WARNING_MESSAGE可以看出與上面兩個(gè)對(duì)話框不同的是對(duì)話框里有了警告的提示。設(shè)置完之后設(shè)置顏色菜單的事件如下:if (source=lanse) buttons.setBackground(Color.blue); if (source=hongse) buttons.setBackground(Color.red); if (source=huise) buttons.setBackground(Color.lightGray); setBackground就是設(shè)置

19、背景顏色的函數(shù),這樣就達(dá)到了改變背景顏色的目的。接下來(lái)就進(jìn)入計(jì)算階段的編寫(xiě)了,首先要達(dá)到點(diǎn)擊數(shù)字按鈕,文本框里會(huì)顯示數(shù)字如下所示:if(source=num0)t=resultText.getText()+0;resultText.setText(t);if(source=num1)t=resultText.getText()+1;resultText.setText(t); if(source=num2)t=resultText.getText()+2;resultText.setText(t); if(source=num3)t=resultText.getText()+3;resultT

20、ext.setText(t); if(source=num4)t=resultText.getText()+4;resultText.setText(t); if(source=num5)t=resultText.getText()+5;resultText.setText(t); if(source=num6)t=resultText.getText()+6;resultText.setText(t); if(source=num7)t=resultText.getText()+7;resultText.setText(t); if(source=num8)t=resultText.getT

21、ext()+8;resultText.setText(t); if(source=num9)t=resultText.getText()+9;resultText.setText(t);resultText.getText()就是獲取文本框中的字符串,resultText.setText(t)就是使文本框中顯示字符串t;這樣就可以在文本框中輸入數(shù)字了如下圖所示:7、我的算法。接下來(lái)進(jìn)行算法的編寫(xiě),算法編寫(xiě)主要是我編寫(xiě)的,這些算法不是一下子就能想出來(lái)的,而是一步步不斷完善而成的,我相信如果有時(shí)間我會(huì)更加完善我的算法的。加法的代碼如下:if(source=plu) if(z!=1) c5=1; c

22、1=Double.parseDouble(resultText.getText().trim(); end=false;z=0; if(z=1) c5=1;c1=jieguo; z=0; 這里z值就是判斷變量用來(lái)判斷=是否執(zhí)行過(guò)的,end就是用來(lái)清空文本框的,c5就是控制變量用來(lái)判斷是否執(zhí)行過(guò)+運(yùn)算。=的代碼如下:if(source=equ) if(c10!=0) jieguo=1;for(int i=1;i=c9;i+) jieguo=i*jieguo; t=(+jieguo);c10=0; if(c5!=0.0) d=Double.parseDouble(resultText.getTex

23、t().trim(); jieguo=c1+d; t=(+jieguo); c5=0; if(c6!=0.0) d=Double.parseDouble(resultText.getText().trim(); jieguo=c2-d; t=(+jieguo); c6=0; if(c7!=0.0) d=Double.parseDouble(resultText.getText().trim(); jieguo=c3*d; t=(+jieguo); c7=0; if(c8!=0.0) d=Double.parseDouble(resultText.getText().trim(); jieguo

24、=c4/d; t=(+jieguo); c8=0; if(c12!=0.0) d=Double.parseDouble(resultText.getText().trim(); jieguo=1; for(int i=1;i=d;i+) jieguo=c11*jieguo; t=(+jieguo); c12=0; end=false; resultText.setText(t); z=1; 其中從c5到c8還有c10都是控制變量用來(lái)判斷帶年紀(jì)過(guò)哪一個(gè)運(yùn)算符。用一個(gè)加法來(lái)講解我的流程,點(diǎn)擊順序9+72=+3=首先點(diǎn)擊9這個(gè)按鈕,接著文本框中就會(huì)顯示9,點(diǎn)擊+后因?yàn)閦初值為零,所以就獲取了文本框中

25、的數(shù)值c1=9,然后控制變量c5=1,end=false。文本框中仍然顯示著9。接著進(jìn)行下一個(gè)循環(huán),當(dāng)點(diǎn)擊按鈕時(shí)下一個(gè)循環(huán)才會(huì)進(jìn)行也就是說(shuō)看不到清零過(guò)程,點(diǎn)7按鈕,接著有一個(gè)end=true語(yǔ)句,然后點(diǎn)擊2文本框中顯示72,然后點(diǎn)擊=號(hào),此時(shí)執(zhí)行if語(yǔ)句中的c5!=0,d=72,結(jié)果=81,end=false,z=0,顯示81,當(dāng)點(diǎn)擊+時(shí),c1=jieguo即81,end=false,點(diǎn)擊3繼續(xù)清零,文本框中顯示3,點(diǎn)=,結(jié)果就是84。還有一些其他的運(yùn)算都很簡(jiǎn)單,詳見(jiàn)源代碼。這樣就完成了計(jì)算器的編寫(xiě)。五、實(shí)驗(yàn)結(jié)果輸入5.2執(zhí)行四舍五入運(yùn)算求9+72+3結(jié)果點(diǎn)擊9+72=+3=點(diǎn)擊9,點(diǎn)擊完+號(hào)

26、后:接著點(diǎn)擊7點(diǎn)擊2點(diǎn)擊=接著點(diǎn)擊+3點(diǎn)擊加號(hào)的時(shí)候會(huì)出現(xiàn)清零過(guò)程,接著點(diǎn)擊=這樣就完成了運(yùn)算結(jié)果,點(diǎn)擊四舍五入按鈕后如下:文本編輯器一、實(shí)驗(yàn)?zāi)康模壕C合掌握J(rèn)ava編程技巧及Java開(kāi)發(fā)環(huán)境。二、實(shí)驗(yàn)要求:可以設(shè)置文本的字體、大小、顏色等基本參數(shù),可以讀取計(jì)算機(jī)中TXT文件,可以生成一個(gè)新的TXT文件。其他功能參照windows的文本編輯器。三、實(shí)驗(yàn)內(nèi)容通過(guò)創(chuàng)建一個(gè)框架并在框架上加上適當(dāng)?shù)牟藛螜谝约拔谋居虿⑼ㄟ^(guò)對(duì)菜單設(shè)置監(jiān)聽(tīng)器以達(dá)到進(jìn)行字體大小顏色的控制,由于對(duì)java知識(shí)掌握的不多還需要通過(guò)參閱書(shū)本來(lái)完成,我們小組有三個(gè)人,我負(fù)責(zé)做算法部分,其他兩人負(fù)責(zé)界面布局以及監(jiān)聽(tīng)器的設(shè)置。在實(shí)驗(yàn)過(guò)程中

27、,我們共同合作每個(gè)人都參加了所有程序的編寫(xiě)過(guò)程。四、實(shí)驗(yàn)步驟1、聲明包import java.awt.font.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;其中java.io是提供輸入流輸出流控制。2、創(chuàng)建框架。以下用ListFrame類構(gòu)造frame函數(shù),然后設(shè)置框架的格式為最小化、最大化、關(guān)閉。然后show的作用是顯示該框架。ListFrame frame = new ListFrame();frame.setDefaultCloseOperation(JFrame.EX

28、IT_ON_CLOSE);frame.show();3、編寫(xiě)ListFrame類,定義各個(gè)變量。class ListFrame extends JFrame implements ActionListener這里要用到ActionListener接口,是下面監(jiān)聽(tīng)器所需要的。定義并初始化如下:public String dax=5,10,15,20,25,30,35,40,.; 定義列表框并初始化: public JComboBox box=new JComboBox(dax);public static final int WIDTH =500;public static final int

29、HEIGHT = 450;public static final String checkedLabel=You choosed: nIndex, Coursen; public String t=null;public JTextArea myTextArea;private JList courseList;private JPanel listPanel;Dialog tanchu=new Dialog(this);public Button que=new Button(確定);public JCheckBoxMenuItem toolItem,statusItem ;JLabel t

30、ishi=new JLabel(字體大小:);public JMenuItem jianqie,niantie,fuzhi,banquan,hongse,lanse,huise,heise,tuichu,chengse,luse,shezhi,xinxi; public JMenuItem zhizuodi,songti,heiti,kaiti,lishu,youyuan,dakai,baocun,lingcun,item11,item12,item13;FileDialog open=new FileDialog(this,打開(kāi).);FileDialog save=new FileDialo

31、g(this,另存為.,FileDialog.SAVE);int shifulingcun; JPopupMenu menu;而在實(shí)際編寫(xiě)過(guò)程中我是用到一個(gè)定義一個(gè),而不是一起定義的。4、定義各組件,在框架上加入各種組件。創(chuàng)建文本域,并將文本域加入到滾動(dòng)條中,創(chuàng)建面板,并將帶有文本域的滾動(dòng)條加入到面板中,具體代碼如下:Container contentPane = getContentPane();JPanel textPanel = new JPanel();myTextArea = new JTextArea( 21, 43);JScrollPane textScrollPane = ne

32、w JScrollPane(myTextArea);textPanel.add(textScrollPane);contentPane.add(textPanel);創(chuàng)建菜單欄,并創(chuàng)建四個(gè)主菜單,分別為四個(gè)主菜單設(shè)置快捷鍵JMenuBar mainMenu = new JMenuBar(); setJMenuBar(mainMenu); JMenu actMenu = new JMenu(文件(A); JMenu bianMenu = new JMenu(編輯(B); JMenu setColorMenu = new JMenu(顏色(S); JMenu aboutMenu = new JMe

33、nu(作者(C); JMenu daxMenu = new JMenu(大小(D); JMenu zitMenu = new JMenu(字體(E); actMenu.setMnemonic(A);bianMenu.setMnemonic(B);setColorMenu.setMnemonic(S);aboutMenu.setMnemonic(C);daxMenu.setMnemonic(D);zitMenu.setMnemonic(E);定義子菜單并將子菜單加入到主菜單中并設(shè)置加速器:dakai = new JMenuItem(打開(kāi)(L); actMenu.add(dakai);dakai.

34、setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, InputEvent.CTRL_MASK);lingcun = new JMenuItem(另存為(Y); 這個(gè)的加速器是Ctrl+L當(dāng)按下Ctrl+L時(shí)就是點(diǎn)擊了該子菜單。actMenu.add(lingcun);創(chuàng)建單選框并將單選框加入到子菜單中:toolItem = new JCheckBoxMenuItem (自動(dòng)換行);statusItem = new JCheckBoxMenuItem (取消自動(dòng));ButtonGroup group =new ButtonGroup();gr

35、oup.add(toolItem);group.add(statusItem);optionMenu.add(toolItem);optionMenu.add(statusItem);bianMenu.add(optionMenu);還有其他的許多子菜單的定義方法如上詳見(jiàn)源代碼。定義三個(gè)子菜單和一個(gè)彈出式菜單,將三個(gè)子菜單加入到彈出菜單中item11=new JMenuItem(復(fù)制); item12=new JMenuItem(粘貼); item13=new JMenuItem(剪切);menu=new JPopupMenu(); menu.add(item11); menu.add(ite

36、m12); menu.add(item13);5、設(shè)置鼠標(biāo)右鍵當(dāng)點(diǎn)擊鼠標(biāo)右鍵時(shí)彈出菜單:myTextArea.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e) if(e.getModifiers()=InputEvent.BUTTON3_MASK) menu.show(myTextArea,e.getX(),e.getY(); );6、設(shè)置監(jiān)聽(tīng)器每個(gè)按鈕都是事件源,我們對(duì)按鈕設(shè)置監(jiān)聽(tīng)器后,只要該按鈕發(fā)生一個(gè)事件(ActionEvent),listenter對(duì)象就是接到通知。我們?cè)O(shè)置監(jiān)聽(tīng)器的方法如

37、下所示:lingcun.addActionListener(this);baocun.addActionListener(this);tuichu.addActionListener(this);dakai.addActionListener(this);banquan.addActionListener(this);xinxi.addActionListener(this);zhizuodi.addActionListener(this);hongse.addActionListener(this);lanse.addActionListener(this);huise.addActionL

38、istener(this);heise.addActionListener(this);chengse.addActionListener(this);luse.addActionListener(this);zitMenu.addActionListener(this);songti.addActionListener(this);heiti.addActionListener(this);kaiti.addActionListener(this);lishu.addActionListener(this);youyuan.addActionListener(this);daxMenu.ad

39、dActionListener(this);shezhi.addActionListener(this);jianqie.addActionListener(this);niantie.addActionListener(this);fuzhi.addActionListener(this);在這里,所有的按鈕共享一個(gè)監(jiān)聽(tīng)器對(duì)象。所以在actionPerformed方法中,必須判斷那個(gè)按鈕被按下,即事件源,可以通過(guò)EventObject類的getSource方法來(lái)判斷。接著對(duì)彈出菜單里的子菜單設(shè)置監(jiān)聽(tīng)器:item11.addActionListener(this); item12.addAct

40、ionListener(this); item13.addActionListener(this);7、設(shè)置作者菜單里的子菜單的點(diǎn)擊事件。當(dāng)點(diǎn)擊版權(quán)子菜單時(shí),先彈出制作人信息,關(guān)閉對(duì)話框后,接著彈出感謝提示if (source=banquan) int selection=JOptionPane.showConfirmDialog( ListFrame.this, 劉曉雷 20095406;李偉20095378;周洪芬20095379 ,版權(quán), JOptionPane.DEFAULT_OPTION); if (source=banquan) int selection=JOptionPane.

41、showConfirmDialog( ListFrame.this, 感謝觀看 ,版權(quán), JOptionPane.DEFAULT_OPTION); 當(dāng)點(diǎn)擊信息時(shí),彈出提示產(chǎn)品信息對(duì)話框,代碼如下:if (source=xinxi) int selection=JOptionPane.showConfirmDialog( ListFrame.this, 雷神牌記事本 n 雷神出品必為精品 ,產(chǎn)品信息, JOptionPane.DEFAULT_OPTION); 當(dāng)點(diǎn)擊zhizuodi時(shí)會(huì)提示制作地信息,具體代碼如下: if (source=zhizuodi) int selection=JOpti

42、onPane.showConfirmDialog( ListFrame.this, 合肥工業(yè)大學(xué)機(jī)房 ,地址, JOptionPane.DEFAULT_OPTION); 8、設(shè)置編輯菜單里的子菜單。首先設(shè)置兩個(gè)單選框,這里要用到自動(dòng)換行的函數(shù).setLineWrap(true)就是自動(dòng)換行,當(dāng)參數(shù)改成false時(shí)就不能自動(dòng)換行了。具體代碼如下:if (source=toolItem) myTextArea.setLineWrap(true); if (source=statusItem) myTextArea.setLineWrap(false); 接著設(shè)置剪切,復(fù)制粘貼子菜單要用到.cut(

43、).copy().paste()函數(shù),具體代碼如下: if (source=jianqie) myTextArea.cut(); if (source=fuzhi) myTextArea.copy(); if (source=niantie) myTextArea.paste(); 9、設(shè)置顏色菜單的下拉菜單這里要用到.setForeground()函數(shù),當(dāng)設(shè)置完之后字的顏色就是后面參數(shù)里的顏色。if (source=hongse) myTextArea.setForeground(Color.red); if (source=lanse) myTextArea.setForeground(C

44、olor.blue); if (source=huise) myTextArea.setForeground(Color.gray); if (source=chengse) myTextArea.setForeground(Color.orange); if (source=luse) myTextArea.setForeground(Color.green); if (source=heise) myTextArea.setForeground(Color.black); 10、設(shè)置字體菜單的下拉菜單。這里一共設(shè)置了五種字體,首先設(shè)置字體要用獲得文本域中的格式用Font f=myTextA

45、rea.getFont();就可以獲得,然后在設(shè)置字體格式時(shí)只改變字體其他就可以用f.getStyle(),f.getSize()來(lái)表示。具體代碼如下:if (source=songti) Font f=myTextArea.getFont(); myTextArea.setFont(new Font(宋體,f.getStyle(),f.getSize(); if (source=heiti) Font f=myTextArea.getFont(); myTextArea.setFont(new Font(黑體,f.getStyle(),f.getSize(); if (source=kait

46、i) Font f=myTextArea.getFont(); myTextArea.setFont(new Font(楷體,f.getStyle(),f.getSize(); if (source=lishu) Font f=myTextArea.getFont(); myTextArea.setFont(new Font(隸書(shū),f.getStyle(),f.getSize(); if (source=youyuan) Font f=myTextArea.getFont(); myTextArea.setFont(new Font(幼圓,f.getStyle(),f.getSize(); 1

47、1、設(shè)置文件下拉菜單里的功能。當(dāng)點(diǎn)擊退出時(shí)會(huì)彈出OK_CANCEL_OPTION形式的對(duì)話框,如果選擇的是ok就會(huì)退出框架,用到了System.exit(0)函數(shù)。具體代碼如下。if (source=tuichu) int selection = JOptionPane.showConfirmDialog(ListFrame.this,確定退出么?, 退出?, JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE); if (selection = JOptionPane.OK_OPTION) System.exit(0); 12、設(shè)

48、置打開(kāi)文件菜單。在前面定義的時(shí)候用到過(guò)FileDialog open=new FileDialog(this,打開(kāi).);這個(gè)就是設(shè)置打開(kāi)的對(duì)話框,標(biāo)題為打開(kāi),右面的按鈕默認(rèn)為打開(kāi)。這里用到了輸入流和.read函數(shù)。用到了try語(yǔ)句防止出錯(cuò)。open.getDirectory()+open.getFile()是獲取文件名稱類型內(nèi)容。if(source=dakai)open.setVisible(true);String name=open.getDirectory()+open.getFile();tryFileInputStream laiyuan=new FileInputStream(na

49、me);byte duqu=new bytelaiyuan.available();laiyuan.read(duqu);myTextArea.setText(new String(duqu);laiyuan.close();catch(IOException a)System.err.println(打開(kāi)文件失敗);13、設(shè)置保存和另存為功能。在前面曾經(jīng)定義過(guò)FileDialog save=new FileDialog(this,另存為.,FileDialog.SAVE);意思是一個(gè)標(biāo)題為另存為的對(duì)話框,右下方的按鈕是保存。這里用到了輸出流。和try語(yǔ)句糾錯(cuò)功能。在保存里有一個(gè)變量shifu

50、lingcun,如果曾經(jīng)執(zhí)行過(guò)另存為,那么變量值為1,否則為默認(rèn)值0,在執(zhí)行保存的時(shí)候就判斷是否執(zhí)行過(guò)另存為,如果執(zhí)行過(guò)另存為就不執(zhí)行save.setVisible(true);語(yǔ)句,即不顯示彈出的框架,直接默認(rèn)保存。具體語(yǔ)句如下:if(source=lingcun)save.setVisible(true);String name=save.getDirectory()+save.getFile();tryOutputStream out=new FileOutputStream(name);out.write(myTextArea.getText().getBytes();out.clos

51、e();catch(IOException b)System.err.println(打開(kāi)文件失敗); shifulingcun=1; if(source=baocun)if(shifulingcun!=1)save.setVisible(true);shifulingcun=1;String name=save.getDirectory()+save.getFile();tryFileOutputStream out=new FileOutputStream(name);out.write(myTextArea.getText().getBytes();out.close();catch(IOException b)System.err.println(打開(kāi)文件失敗);14、編寫(xiě)字體大小里的彈出框架。在前面曾經(jīng)定義過(guò)Dialog框架,這里就是我們所用到的,我在框架上加入組合框標(biāo)簽以及按鈕組建通過(guò)這些來(lái)設(shè)置字體大小,與前面直接在子菜單里設(shè)置的不同,其中組合框以及按鈕的監(jiān)聽(tīng)器設(shè)置與以前有

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!