java課程設(shè)計(jì)報(bào)告實(shí)驗(yàn)報(bào)告_第1頁(yè)
java課程設(shè)計(jì)報(bào)告實(shí)驗(yàn)報(bào)告_第2頁(yè)
java課程設(shè)計(jì)報(bào)告實(shí)驗(yàn)報(bào)告_第3頁(yè)
java課程設(shè)計(jì)報(bào)告實(shí)驗(yàn)報(bào)告_第4頁(yè)
java課程設(shè)計(jì)報(bào)告實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、-PAGE . z.一 實(shí)驗(yàn)?zāi)康?加深學(xué)生對(duì)課堂講授內(nèi)容的理解,從計(jì)算機(jī)語(yǔ)言的根本概念、程序設(shè)計(jì)的根本方法、語(yǔ)法規(guī)則等方面加深理解,打好程序設(shè)計(jì)、開發(fā)軟件的良好根底。在上機(jī)實(shí)驗(yàn)中,提高學(xué)生對(duì)Java語(yǔ)言各局部?jī)?nèi)容的綜合使用能力,逐步掌握J(rèn)ava語(yǔ)言程序設(shè)計(jì)的規(guī)律與技巧。在對(duì)Java程序的調(diào)試過程中,提高學(xué)生分析程序中出現(xiàn)的錯(cuò)誤和排除這些錯(cuò)誤的能力。通過上機(jī)實(shí)踐,加深學(xué)生對(duì)計(jì)算機(jī)軟件運(yùn)行環(huán)境,以及對(duì)操作系統(tǒng)與計(jì)算機(jī)語(yǔ)言支持系統(tǒng)相互關(guān)系的了解。二、實(shí)驗(yàn)要求(1)問題描述準(zhǔn)確、規(guī)*;(2)程序構(gòu)造合理,調(diào)試數(shù)據(jù)準(zhǔn)確、有代表性;(3)界面布局整齊,人機(jī)交互方便;(4)輸出結(jié)果正確;(5)正確撰寫實(shí)驗(yàn)報(bào)

2、告。三、設(shè)計(jì)內(nèi)容1、計(jì)算器計(jì)算器要有GUI界面,用戶可以輸入所需計(jì)算的數(shù)值,可以進(jìn)展加、減、乘、除四種最根本的運(yùn)算和混合運(yùn)算,可以求一個(gè)數(shù)值的平方及倒數(shù),可以進(jìn)展階乘運(yùn)算,要能運(yùn)算小數(shù),并且不會(huì)產(chǎn)生精度損失,在必要情況下,可以進(jìn)展四舍五入的運(yùn)算。允許正負(fù)數(shù)間的運(yùn)算。要求使用Applet實(shí)現(xiàn)該計(jì)算器,當(dāng)用瀏覽器運(yùn)行程序時(shí),點(diǎn)擊網(wǎng)頁(yè)中的按鈕,則計(jì)算器彈出,浮在網(wǎng)頁(yè)上,再次點(diǎn)擊按鈕時(shí),計(jì)算器消失。2、文本編輯器可以設(shè)置文本的字體、大小、顏色等根本參數(shù),可以讀取計(jì)算機(jī)中T*T文件,可以生成一個(gè)新的T*T文件。其他功能參照windows的文本編輯器。四實(shí)驗(yàn)步驟(1)上機(jī)實(shí)驗(yàn)之前,為課程設(shè)計(jì)的內(nèi)容作好充分

3、準(zhǔn)備。對(duì)每次上機(jī)需要完成的任務(wù)進(jìn)展認(rèn)真的分析,畫出程序流程圖,手工寫出符合任務(wù)要求的程序清單,準(zhǔn)備出調(diào)試程序使用的數(shù)據(jù),以便提高上機(jī)實(shí)驗(yàn)的效率。(2)按照實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)內(nèi)容進(jìn)展上機(jī)操作。錄入程序,編譯調(diào)試,反復(fù)修改,直到使程序正常運(yùn)行,得出正確的輸出結(jié)果為止。(3)根據(jù)實(shí)驗(yàn)結(jié)果,寫出實(shí)驗(yàn)報(bào)告。五. 源代碼及運(yùn)行結(jié)果1計(jì)算器源代碼import java.awt.*;import java.awt.event.*;import java.lang.*; import java*.swing.*;public class jisuanqi e*tends WindowAdapter/創(chuàng)立三個(gè)面板 P

4、anel p1 = new Panel(); Panel p2 = new Panel(); Panel p3 = new Panel(); Te*tField t*t; private Button b = new Button21; private String ss = 7, 8, 9, /,清空 ,4, 5, 6, *,1/*, 1, 2, 3, -,平方, 0, ., =, +,n! ,關(guān)閉 ; static double a,sum=1; static String s, str;/定義變量 創(chuàng)立對(duì)像/創(chuàng)立文本框 public static void main(String arg

5、s) (new jisuanqi().frame(); public void frame() /設(shè)置文本框的名稱 Frame fm = new Frame(簡(jiǎn)單計(jì)算器); for (int i = 0; i = 20; i+) bi = new Button(ssi); for (int i = 0; i = 19; i+) p2.add(bi); /創(chuàng)立按鈕 并添加到P2 /按鈕20背風(fēng)光黃色 b20.setBackground(Color.yellow); t*t = new Te*tField(); t*t.setEditable(false);/不能編輯文本框里面的內(nèi)容 t*t.se

6、tBackground(Color.white); for (int i = 0; i = 20; i+) bi.addActionListener(new buttonlistener();/添加監(jiān)聽器 /設(shè)置關(guān)閉按鈕 b20.addActionListener(new close(); fm.addWindowListener(this); p1.setLayout(new BorderLayout();/設(shè)置布局管理器 p1.add(t*t, North);/p1面板放到區(qū)域南部 p2.setLayout(new GridLayout(4, 5,2,2);/布局:四行五列,間隔為二 p2

7、.setBackground(Color.red); p3.setLayout(new BorderLayout(); p3.add(b20); 將三個(gè)面板分別放到不同位置 fm.add(p1, North); fm.add(p2, Center); fm.add(p3, South); fm.pack(); fm.setVisible(true);/都是些窗中設(shè)置 添加相關(guān)組件和監(jiān)聽器 public void windowClosing(WindowEvent e) System.e*it(0);/退出系統(tǒng) class buttonlistener implements ActionList

8、ener /編寫監(jiān)聽器事件 通過按鍵得出給果 public void actionPerformed(ActionEvent e) Button btn = (Button) e.getSource(); if (btn.getLabel() = =) jisuan(); str = String.valueOf(a); t*t.setTe*t(str);/顯示當(dāng)前數(shù)字 s = ;/清零 else if (btn.getLabel() = +) /設(shè)置一個(gè)方法jisuan(); t*t.setTe*t(); s = +; else if (btn.getLabel() = -) jisuan(

9、); t*t.setTe*t(); s = -; else if (btn.getLabel() = /) jisuan(); t*t.setTe*t(); s = /; else if (btn.getLabel() = *) jisuan(); t*t.setTe*t(); s = *;else if (btn.getLabel()=平方) a=Double.parseDouble(t*t.getTe*t();a*=a;t*t.setTe*t(+String.valueOf(a);else if (btn.getLabel()=n!) a=Double.parseDouble(t*t.ge

10、tTe*t();sum=1;for (int i=1;i=a;i+)sum=sum*i;t*t.setTe*t(+String.valueOf(sum);else ifbtn.getLabel()=1/*) a=Double.parseDouble(t*t.getTe*t();t*t.setTe*t(+String.valueOf(1/a); else t*t.setTe*t(t*t.getTe*t() + btn.getLabel(); if (btn.getLabel() = 清空)t*t.setTe*t(); public void jisuan() /編寫具體計(jì)算方法 if (s =

11、+) a += Double.parseDouble(t*t.getTe*t(); else if (s = -)a -= Double.parseDouble(t*t.getTe*t(); else if (s = *)a *= Double.parseDouble(t*t.getTe*t(); else if (s = /)a /= Double.parseDouble(t*t.getTe*t(); else a = Double.parseDouble(t*t.getTe*t(); class close implements ActionListener /退出 public void

12、 actionPerformed(ActionEvent e) System.e*it(0);.2.計(jì)算器運(yùn)行界面計(jì)算器主界面面板的實(shí)現(xiàn)1.創(chuàng)立三個(gè)面板分別是顯示數(shù)字的面板、按鈕的面板和關(guān)閉的面板 Panel p1 = new Panel(); Panel p2 = new Panel(); Panel p3 = new Panel();2.創(chuàng)立一個(gè)文本框參數(shù) Te*tField t*t;3.創(chuàng)立一群按鈕參數(shù)并給按鈕賦值 private Button b = new Button21; private String ss = 7, 8, 9, /,清空 ,4, 5, 6, *,1/*, 1,

13、2, 3, -,平方, 0, ., =, +,n! ,關(guān)閉 ;4.創(chuàng)立文本框 public static void main(String args) (new jisuanqi().frame(); 5.設(shè)置文本框方法 public void frame() /設(shè)置文本框的名稱 Frame fm = new Frame(簡(jiǎn)單計(jì)算器);6.設(shè)置按鈕 for (int i = 0; i = 20; i+) bi = new Button(ssi); 7.設(shè)將按鈕添加到面板 for (int i = 0; i = 19; i+) p2.add(bi); /創(chuàng)立按鈕 并添加到P2 8.設(shè)置按鈕20背

14、風(fēng)光黃色 b20.setBackground(Color.yellow);9.創(chuàng)立文本框,并規(guī)定不能編輯內(nèi)容和背景為白色 t*t = new Te*tField(); t*t.setEditable(false); t*t.setBackground(Color.white);10.為按鈕添加監(jiān)聽器for (int i = 0; i = 20; i+) bi.addActionListener(new buttonlistener();/添加監(jiān)聽器 11.設(shè)置關(guān)閉按鈕可以關(guān)閉界面并設(shè)置監(jiān)聽器 b20.addActionListener(new close(); fm.addWindowList

15、ener(this); 12.設(shè)置布局 p1.setLayout(new BorderLayout();/設(shè)置布局管理器 p1.add(t*t, North);/p1面板放到區(qū)域南部 p2.setLayout(new GridLayout(4, 5,2,2);/布局:四行五列,間隔為二 p2.setBackground(Color.red); p3.setLayout(new BorderLayout(); p3.add(b20); 13.將三個(gè)面板分別放到不同位置 fm.add(p1, North); fm.add(p2, Center); fm.add(p3, South); fm.pac

16、k(); fm.setVisible(true);/都是些窗中設(shè)置 添加相關(guān)組件和監(jiān)聽器 14.退出系統(tǒng) public void windowClosing(WindowEvent e) System.e*it(0); 將按鈕添加到計(jì)算這個(gè)事件中1.編寫監(jiān)聽器事件 通過按鍵得出給果 public void actionPerformed(ActionEvent e) /將按鈕賦予這個(gè)事件中 Button btn = (Button) e.getSource(); 2.如果點(diǎn)擊=這個(gè)按鈕,將出現(xiàn)當(dāng)前數(shù)字 if (btn.getLabel() = =) jisuan(); str = String

17、.valueOf(a); t*t.setTe*t(str);/顯示當(dāng)前數(shù)字 s = ;/清零 3.如果點(diǎn)擊+-*/分別完成一個(gè)方法并將結(jié)果顯示到文本框else if (btn.getLabel() = +) /設(shè)置一個(gè)方法jisuan(); t*t.setTe*t(); s = +; else if (btn.getLabel() = -) jisuan(); t*t.setTe*t(); s = -; else if (btn.getLabel() = /) jisuan(); t*t.setTe*t(); s = /; else if (btn.getLabel() = *) jisuan

18、(); t*t.setTe*t(); s = *;4.如果點(diǎn)擊平方則當(dāng)前數(shù)字與原數(shù)字形成即完成相關(guān)方法結(jié)果顯示最終的數(shù)字else if (btn.getLabel()=平方) a=Double.parseDouble(t*t.getTe*t();a*=a;t*t.setTe*t(+String.valueOf(a);/顯示a5.當(dāng)輸入n!,就用for循環(huán)完成階乘,此方法屬于c語(yǔ)言根底方法,不做相關(guān)解釋else if (btn.getLabel()=n!) a=Double.parseDouble(t*t.getTe*t();sum=1;/歸一for (int i=1;i=a;i+)sum=su

19、m*i;t*t.setTe*t(+String.valueOf(sum);/文本框中顯示sum的數(shù)值 6.當(dāng)輸入1/*時(shí),顯示1/a。else ifbtn.getLabel()=1/*) a=Double.parseDouble(t*t.getTe*t();t*t.setTe*t(+String.valueOf(1/a); 7如果輸入清空文本框成為空文本框 else t*t.setTe*t(t*t.getTe*t() + btn.getLabel(); if (btn.getLabel() = 清空)t*t.setTe*t(); 設(shè)置jisuan方法1.編寫具體計(jì)算方法其實(shí)這些方法可以放到上面

20、事件的實(shí)現(xiàn)中,從 平方,n!,1/*就可以看出。但為了程序的美觀和高識(shí)別性,我們傳建一個(gè)方法來(lái)實(shí)現(xiàn) if (s = +) a += Double.parseDouble(t*t.getTe*t(); else if (s = -)a -= Double.parseDouble(t*t.getTe*t(); else if (s = *)a *= Double.parseDouble(t*t.getTe*t(); else if (s = /)a /= Double.parseDouble(t*t.getTe*t(); else a = Double.parseDouble(t*t.getTe*

21、t();3 文本編輯器源代碼import java.awt.*;import java*.swing.*;import java.awt.event.*;import java*.swing.event.*;import java.io.*;public class Te*tEditor public static void main(String args) Te*tFrame frame=new Te*tFrame(); frame.setDefaultCloseOperation(JFrame.E*IT_ON_CLOSE); frame.show(); class Te*tFrame e

22、*tends JFrame /文件中的參數(shù) File file = null; static String d,k,s; /編輯中的參數(shù) String selected,te*t; /格式中的參數(shù) String sizeNames =5,10,15,20,25,30,35,40,45,50; String colorNames =黑色,紅色,藍(lán)色,綠色,白色,黃色,粉紅; String fontNames=宋體,華文行楷,隸書,黑體,仿宋,華文彩云,楷體,方正姚體; String styleNames = 粗體, 斜體 ; public Te*tFrame() /設(shè)置文本框大小、名稱 setT

23、itle(西西牌文本編輯器); setSize(400,400); addWindowListener(new LogoutAction(); filechooser=new JFileChooser();/創(chuàng)立一個(gè)文件選擇器 /創(chuàng)立文本區(qū) t1=new JTe*tArea(0,0);/面板與文本框無(wú)間隙 scrollPane=new JScrollPane(t1);/設(shè)置滾動(dòng)條 getContentPane().add(scrollPane); /創(chuàng)立菜單欄 menuBar=new JMenuBar(); setJMenuBar(menuBar); /文件 files=new JMenu(文

24、件(F); files.setMnemonic(F);/設(shè)置快捷鍵 newItem=new JMenuItem(新建(N),N); openItem=new JMenuItem(翻開(O).,O); saveItem=new JMenuItem(保存(S),S); e*itItem=new JMenuItem(退出(E),E); /設(shè)置監(jiān)聽器 newItem.addActionListener(new FileListener(); openItem.addActionListener(new FileListener(); saveItem.addActionListener(new Fil

25、eListener(); e*itItem.addActionListener(new FileListener(); /設(shè)置加速器newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK); openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK);saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEv

26、ent.CTRL_MASK); /添加按鈕到文件菜單欄 files.add(newItem); files.add(openItem); files.add(saveItem); files.add(e*itItem); /編輯 edit=new JMenu(編輯(E); edit.setMnemonic(E); /創(chuàng)立菜單項(xiàng) cutItem=new JMenuItem(剪切(T); copyItem=new JMenuItem(復(fù)制(C); pasteItem=new JMenuItem(粘貼(P); deleteItem=new JMenuItem(刪除(L); selectAllItem

27、=new JMenuItem(全選(A); /設(shè)置加速器cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_*,InputEvent.CTRL_MASK); copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK); pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK); deleteItem.setAccele

28、rator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_MASK); selectAllItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK); /設(shè)置監(jiān)聽器 cutItem.addActionListener(new EditListener(); copyItem.addActionListener(new EditListener(); pasteItem.addActionListener(new EditListener(

29、); deleteItem.addActionListener(new EditListener(); selectAllItem.addActionListener(new EditListener(); /添加按鈕到編輯菜單欄 edit.add(cutItem); edit.add(copyItem); edit.add(pasteItem); edit.add(deleteItem); edit.add(selectAllItem); / 格式 format=new JMenu(格式(O); format.setMnemonic(O); sizeItem=new JMenu(字體大小);

30、 colorItem=new JMenu(字體顏色); fontItem=new JMenu(字體); styleItem=new JMenu(字體風(fēng)格); sizes = new JRadioButtonMenuItemsizeNames.length; colors = new JRadioButtonMenuItemcolorNames.length; fonts = new JRadioButtonMenuItemfontNames.length; styles=new JCheckBo*MenuItemstyleNames.length; styleGroup=new ButtonG

31、roup(); fontGroup = new ButtonGroup(); colorGroup = new ButtonGroup(); sizeGroup = new ButtonGroup(); /將每種元素放進(jìn)菜單項(xiàng)和按鈕組中 for (int i=0;isizes.length;i+) sizesi=new JRadioButtonMenuItem(sizeNamesi); sizesi.addItemListener(new FormatListener(); sizeGroup.add(sizesi); sizeItem.add(sizesi); for (int i=0;ic

32、olors.length;i+) colorsi=new JRadioButtonMenuItem(colorNamesi); colorsi.addItemListener(new FormatListener(); colorGroup.add(colorsi); colorItem.add(colorsi); for (int i=0;ifonts.length;i+) fontsi=new JRadioButtonMenuItem(fontNamesi); fontsi.addItemListener(new FormatListener(); fontGroup.add(fontsi

33、); fontItem.add(fontsi); for(int i=0;istyles.length;i+) stylesi=new JCheckBo*MenuItem(styleNamesi); stylesi.addItemListener(new FormatListener(); styleItem.add(stylesi); format.add(sizeItem); format.add(colorItem); format.add(fontItem); format.add(styleItem); /查看 view=new JMenu(關(guān)于我們(us); view.setMne

34、monic(U); formItem=new JMenuItem(組成成員); formItem.addActionListener(new ViewListener(); impressionItem=new JMenuItem(學(xué)習(xí)感言); impressionItem.addActionListener(new ViewListener(); view.add(formItem); view.add(impressionItem); /將菜單添加到菜單欄中 menuBar.add(files); menuBar.add(edit); menuBar.add(format); menuBa

35、r.add(view); /彈出式菜單及其菜單項(xiàng) popup=new JPopupMenu(); cutItemPop=new JMenuItem(剪切(T); cutItemPop.addActionListener(new EditListener(); copyItemPop=new JMenuItem(復(fù)制(C); copyItemPop.addActionListener(new EditListener(); pasteItemPop=new JMenuItem(粘貼(P); pasteItemPop.addActionListener(new EditListener(); de

36、leteItemPop=new JMenuItem(刪除(L); deleteItemPop.addActionListener(new EditListener(); selectAllItemPop=new JMenuItem(全選(A); selectAllItemPop.addActionListener(new EditListener(); /添加 popup.add(cutItemPop); popup.add(copyItemPop); popup.add(pasteItemPop); popup.add(deleteItemPop); popup.add(selectAllI

37、temPop); /實(shí)現(xiàn)彈出式菜單的彈出觸發(fā)器 t1.addMouseListener(new MouseAdapter() /釋放按鈕觸發(fā)事件 public void mouseReleased(MouseEvent e) if(e.isPopupTrigger()/指定彈出式菜單的成員以及顯示位置 popup.show(e.getponent(),e.get*(),e.getY(); ); private class FileListener implements ActionListener public void actionPerformed(ActionEvent e) /新建 i

38、f(e.getSource()=newItem) t1.setTe*t(); file=null; /翻開 if(e.getSource()=openItem) if(file !=null) filechooser.setSelectedFile(file); int m=filechooser.showOpenDialog(Te*tFrame.this); if( m=JFileChooser.APPROVE_OPTION) file=filechooser.getSelectedFile(); openFile(); /保存 if(e.getSource()=saveItem) d=t1

39、.getTe*t(); if(file!=null) filechooser.setSelectedFile(file);/顯示保存對(duì)話框 int m=filechooser.showSaveDialog(Te*tFrame.this); if(m=JFileChooser.APPROVE_OPTION) file=filechooser.getSelectedFile(); saveFile(); /退出 if(e.getSource()=e*itItem) k=t1.getTe*t();/如果文本為空或已保存,直接退出,否則保存后退出 if(k.equals() System.e*it(0

40、); else if(k.equals(d) System.e*it(0); else Te*tFrame f=new Te*tFrame();/新建確認(rèn)型對(duì)話框 int n=JOptionPane.showConfirmDialog( f,是否將文件保存到當(dāng)前位置?, 退出,JOptionPane.YES_NO_CANCEL_OPTION); if(n=JOptionPane.YES_OPTION)/如果選擇是,則保存文件 if(file!=null) filechooser.setSelectedFile(file); int m=filechooser.showSaveDialog(Te

41、*tFrame.this); if(m=JFileChooser.APPROVE_OPTION) file=filechooser.getSelectedFile(); saveFile(); if(n=JOptionPane.NO_OPTION) System.e*it(0); void openFile()/翻開的方法 try FileReader fr=new FileReader(file); /FileReader類用于讀取字符流 int len=(int)file.length(); char buffer=new charlen; /以file的字符數(shù)開辟一段緩沖區(qū) fr.rea

42、d(buffer,0,len); /將fr從file中讀取的字符讀入數(shù)組buffer中的*一局部, fr.close(); /關(guān)閉該流 t1.setTe*t(new String(buffer); catch(E*ception e)/拋出異常 e.printStackTrace(); void saveFile()/保存的方法 try FileWriter fw=new FileWriter(file); /FileWriter類用于寫入字符流 fw.write(t1.getTe*t();/將t1里的內(nèi)容寫入file fw.close(); /關(guān)閉該流 catch(E*ception e)

43、e.printStackTrace(); private class LogoutAction e*tends WindowAdapter/實(shí)現(xiàn)點(diǎn)擊窗口退出事件監(jiān)聽器 public void windowClosing(WindowEvent e) s=t1.getTe*t(); if(s.equals() System.e*it(0); else if(s.equals(d) System.e*it(0); else Te*tFrame f=new Te*tFrame();/新建確認(rèn)型對(duì)話框 int n=JOptionPane.showConfirmDialog( f,是否將文件保存到當(dāng)前位

44、置?, 退出,JOptionPane.YES_NO_OPTION); if(n=JOptionPane.YES_OPTION)/如果選擇是,則保存文件 if(file!=null) filechooser.setSelectedFile(file); int m=filechooser.showSaveDialog(Te*tFrame.this); if(m=JFileChooser.APPROVE_OPTION) file=filechooser.getSelectedFile(); saveFile(); if(n=JOptionPane.NO_OPTION) System.e*it(0)

45、; void saveFile()/保存的方法 try FileWriter fw=new FileWriter(file); /FileWriter類用于寫入字符流 fw.write(t1.getTe*t();/將t1里的內(nèi)容寫入file fw.close(); /關(guān)閉該流 catch(E*ception e) e.printStackTrace(); private class EditListener implements ActionListener public void actionPerformed(ActionEvent e) /剪切 if(e.getSource()=cutI

46、tem|e.getSource()=cutItemPop) t1.cut(); /復(fù)制 if(e.getSource()=copyItem|e.getSource()=copyItemPop) t1.copy(); /粘貼 if(e.getSource()=pasteItem|e.getSource()=pasteItemPop) t1.paste(); /刪除 if(e.getSource()=deleteItem|e.getSource()=deleteItemPop) te*t=t1.getTe*t(); selected=t1.getSelectedTe*t(); int id=te*

47、t.inde*Of(selected); int start=id+selected.length(); int end=te*t.length(); String rest=te*t.substring(start,end); t1.replaceRange(rest,id,end); int a=id; /全選 if(e.getSource()=selectAllItem|e.getSource()=selectAllItemPop) t1.selectAll(); private class FormatListener implements ItemListener /假設(shè)用此類作監(jiān)聽

48、器,要用addItemListener方法注冊(cè)監(jiān)聽器 public void itemStateChanged(ItemEvent e) /設(shè)置字體風(fēng)格復(fù)選 int style=0; if(styles0.isSelected() style+=Font.BOLD; if(styles1.isSelected() style+=Font.ITALIC; t1.setFont(newFont(t1.getFont().getName(),style,t1.getFont().getSize(); /設(shè)置字體 for (int i=0;ifonts.length;i+) if(e.getSourc

49、e()=fontsi) t1.setFont(new Font(fontNamesi,style,t1.getFont().getSize(); /設(shè)置字體大小 for(int j=0;jsizes.length;j+) if(e.getSource()=sizesj) t1.setFont(new Font(t1.getFont().getName(),style,5*j); /設(shè)置字體顏色 if(e.getSource()=colors0) t1.setForeground(Color.black); if(e.getSource()=colors1) t1.setForeground(C

50、olor.red); if(e.getSource()=colors2) t1.setForeground(Color.blue); if(e.getSource()=colors3) t1.setForeground(Color.green); if(e.getSource()=colors4) t1.setForeground(Color.white); if(e.getSource()=colors5) t1.setForeground(Color.yellow); if(e.getSource()=colors6) t1.setForeground(Color.pink); priva

51、te class ViewListener implements ActionListener public void actionPerformed(ActionEvent e) /關(guān)于主題 if(e.getSource()=formItem) JOptionPane.showMessageDialog(null, 閆曦 王鑫 馮爽, 成員機(jī)構(gòu),JOptionPane.INFORMATION_MESSAGE); /關(guān)于本產(chǎn)品 if(e.getSource()=impressionItem) JOptionPane.showMessageDialog(null, 經(jīng)過半個(gè)多學(xué)期的學(xué)習(xí),+n+我

52、們隊(duì)java有了一些了解, +n+并伴有極大的興趣+n+也對(duì)軟件的看法有所改觀。+n+感謝教師的教誨,+n+ 同時(shí)也希望我們能編出一些新的+n+軟件,為社會(huì)做出應(yīng)有的奉獻(xiàn), 學(xué)習(xí)感言,JOptionPane.INFORMATION_MESSAGE); JFileChooser filechooser; JTe*tArea t1; JScrollPane scrollPane; JMenuBar menuBar;/菜單欄 JPopupMenu popup;/彈出式菜單 JMenu files,edit,format,view;/文件,編輯,格式,查看 JMenuItem newItem,open

53、Item,saveItem,e*itItem,/新建,翻開,保存,打印,退出 cutItem,copyItem,pasteItem,deleteItem,selectAllItem,/剪切,復(fù)制,粘貼,刪除,全選 cutItemPop,copyItemPop,pasteItemPop,deleteItemPop,selectAllItemPop,/剪切,復(fù)制,粘貼,保存,刪除,全選 sizeItem,fontItem,styleItem,colorItem,/字體大小,字體,字體風(fēng)格,顏色 formItem,impressionItem;/關(guān)于我們 private JCheckBo*MenuI

54、tem styles; private JRadioButtonMenuItem sizes,colors,fonts; private ButtonGroup sizeGroup,colorGroup,fontGroup,styleGroup;.4文本編輯器運(yùn)行界面文件等原件放入菜單欄引入對(duì)話框int m=filechooser.showOpenDialog(Te*tFrame.this);出現(xiàn)一個(gè)對(duì)話框來(lái)判斷是否退出/如果文本為空或已保存,直接退出,否則保存后退出if(k.equals() System.e*it(0); else if(k.equals(d) System.e*it(0)

55、;else Te*tFrame f=new Te*tFrame();/新建確認(rèn)型對(duì)話框 int n=JOptionPane.showConfirmDialog( f,是否將文件保存到當(dāng)前位置?, 退出,JOptionPane.YES_NO_CANCEL_OPTION); if(n=JOptionPane.YES_OPTION)/如果選擇是,則保存文件 if(file!=null) filechooser.setSelectedFile(file); int m=filechooser.showSaveDialog(Te*tFrame.this);if(m=JFileChooser.APPROV

56、E_OPTION) file=filechooser.getSelectedFile(); saveFile(); if(n=JOptionPane.NO_OPTION) System.e*it(0); JOptionPane.YES_NO_CANCEL_OPTION這句話決定有幾個(gè)選項(xiàng)設(shè)置單項(xiàng)選擇框和復(fù)選框,形式不太一樣/ 格式 format=new JMenu(格式(O); format.setMnemonic(O); sizeItem=new JMenu(字體大小); colorItem=new JMenu(字體顏色); fontItem=new JMenu(字體); styleItem

57、=new JMenu(字體風(fēng)格); sizes = new JRadioButtonMenuItemsizeNames.length; colors = new JRadioButtonMenuItemcolorNames.length; fonts = new JRadioButtonMenuItemfontNames.length; styles=new JCheckBo*MenuItemstyleNames.length; styleGroup=new ButtonGroup(); fontGroup = new ButtonGroup(); colorGroup = new Butto

58、nGroup(); sizeGroup = new ButtonGroup();不存在判斷,只是需要確認(rèn)信息JOptionPane.INFORMATION_MESSAGE/查看 view=new JMenu(關(guān)于我們(us); view.setMnemonic(U); formItem=new JMenuItem(組成成員); formItem.addActionListener(new ViewListener(); impressionItem=new JMenuItem(學(xué)習(xí)感言); impressionItem.addActionListener(new ViewListener();

59、 view.add(formItem); view.add(impressionItem);/關(guān)于主題 if(e.getSource()=formItem) JOptionPane.showMessageDialog(null, 閆曦 王鑫 馮爽, 成員機(jī)構(gòu),JOptionPane.INFORMATION_MESSAGE); /關(guān)于本產(chǎn)品 if(e.getSource()=impressionItem) JOptionPane.showMessageDialog(null, 經(jīng)過半個(gè)多學(xué)期的學(xué)習(xí),+n+我們隊(duì)java有了一些了解, +n+并伴有極大的興趣+n+也對(duì)軟件的看法有所改觀。+n+感謝

60、教師的教誨,+n+ 同時(shí)也希望我們能編出一些新的+n+軟件,為社會(huì)做出應(yīng)有的奉獻(xiàn), 學(xué)習(xí)感言,JOptionPane.INFORMATION_MESSAGE); 編輯框的實(shí)現(xiàn)/編輯 edit=new JMenu(編輯(E); edit.setMnemonic(E); /創(chuàng)立菜單項(xiàng) cutItem=new JMenuItem(剪切(T); copyItem=new JMenuItem(復(fù)制(C); pasteItem=new JMenuItem(粘貼(P); deleteItem=new JMenuItem(刪除(L); selectAllItem=new JMenuItem(全選(A); /加

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論