




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、華北科技學院計算機學院課程綜合作業實 驗 報 告 課程名稱 Java大學實用教程 實驗學期 2012 至 2013 學年 第 一 學期學生所在系部 計算機學院 年級 2011 專業班級 信管B11-x 學生姓名 xxx 學號 xxxxxxxxxxx 任課教師 王養廷 實驗成績 計算機學院制JAVA程序設計課程綜合作業實驗報告開課實驗室: 基礎四 2012 年 12 月 20 日實驗題目用java編寫簡單記事本一、 實驗目的a) 掌握面向對象程序設計基本要素(封裝、繼承、多態)b) 掌握JAVA語言常用類包及其常用方法和JAVA語言基本語法c) 掌握基于AWT的圖形用戶界面設計i. 常用標準控件
2、的使用,如標簽、按鈕、菜單、文本框、單選按鈕、滾動條等。ii. 事件處理機制d) 掌握布局、對話框的使用e) 掌握發布JAVA應用程序二、 設備與環境硬件:多媒體計算機軟件:Windows 2000以上的操作系統、JAVA集成開發環境三、 實驗內容1完成記事本的需求分析。 2記事本的總體設計,列出主要的類和類間關系。 3列出具體的實現代碼。 4寫出程序的實現細節,主要得功能界面,實現說明。 5寫出總結和評價。四、實驗結果及分析1.實驗分析 本程序是一個簡單的記事本程序,其主要結構參照了Windows操作系統的記事本工具。能夠實現一些基本功能,主要有:(1) 具有編輯界面,能夠實現文本的輸入、刪
3、除等基本功能。(2) 具有菜單條,包含三個主菜單:文件、編輯、幫助。(3) 各個主菜單分別擁有其菜單選項。(4) 文件主菜單含有新建、打開、保存、另存為、退出五個菜單選項;(5) 編輯主菜單含有剪切、粘貼、復制、全選四個菜單選項。(6) 幫助主菜單好友關于記事本信息的菜單選項,主要記錄了記事本文件 的基本信息。(7) 各個菜單選項能夠實現其對應的功能。(8) 實現剪切、復制、粘貼、全選即編輯菜單的鼠標跳出菜單功能。(9) 各功能具有快捷鍵。2.程序設計思想 首先設計出整個記事本的主體框架,添加菜單欄(JMenu),添加菜單選項(JMenuItem)。 這部分應用到了Container、JMen
4、uBar、JMenu、JMenuItem的構造方法,實現對記事本的基本頁面設計。 在頁面中添加編輯局域,應用了JTextArea的構造方法。 實現各個菜單選項的功能。在具體的功能實現中,為每一個功能設計了一個類,通過監聽調用類方法實現所需要實現的功能。 程序中的類以及它們之間的關系: 本程序總共含有9個類:Notebook()主類:他實現了記事本的基本框架構造,以及對記事本各個功能的監聽,并且調用各個功能的類方法。在Notebook()中,加入了編輯菜單的彈出菜單功能。在Notebook()主類中,通過事件監聽調用了剪切、復制、保存等功能的類方法:NewActionListener():實現“
5、新建”功能的類SaveActionListener():實現“保存”功能的類OpenActionListener():實現“打開”功能的類ExitActionListener():實現“退出”功能的類CutActionListener():實現“剪切”功能的類CopyActionListener():實現“粘貼”功能的類SallActionListener():實現“全選”功能的類AbouthActionListener():實現“關于”功能的類添加事件監聽Notebook()初始化界面組件菜單欄文件編輯幫助新建打開保存退出剪切復制粘貼全選關于另存3.程序整體框架 文字輸入區4.程序代碼imp
6、ort java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;public class MyNotebook public static void main(String args) new Notebook();/Notebook()主類: class Notebook extends JFrame Container container;JFileChooser fc=new JFileChooser(); File file=null; JMenuBar mb; JMenu fileMenu,ed
7、itMenu,helpMenu; JMenuItem newItem,openItem,saveItem,saveasItem,exitItem,cutItem,copyItem,pasteItem,sallItem,aboutItem; JTextArea jta; JPopupMenu popUpMenu; public Notebook() /記事本主界面設計程序/setTitle("記事本");container=this.getContentPane();container.setLayout(new BorderLayout();jta=new JTextAre
8、a();container.add(jta);setVisible(true);setSize(650, 450); mb=new JMenuBar(); setJMenuBar(mb); /文件菜單及其菜單選項的程序設計/fileMenu=new JMenu("文件");newItem=new JMenuItem("新建");/設置快捷鍵/newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N ,ActionEvent.CTRL_MASK); /設置“新建”事件監聽/newItem.add
9、ActionListener(new NewActionListener();fileMenu.add(newItem);fileMenu.addSeparator();openItem=new JMenuItem("打開");openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O ,ActionEvent.CTRL_MASK);openItem.addActionListener(new OpenActionListener();fileMenu.add(openItem);fileMenu.addSepa
10、rator(); saveItem=new JMenuItem("保存");saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S ,ActionEvent.CTRL_MASK);saveItem.addActionListener(new SaveActionListener();fileMenu.add(saveItem);fileMenu.addSeparator();saveasItem=new JMenuItem("另存為");saveasItem.setAccelerator(
11、KeyStroke.getKeyStroke(KeyEvent.VK_A ,ActionEvent.CTRL_MASK);saveasItem.addActionListener(new SaveActionListener();fileMenu.add(saveasItem);fileMenu.addSeparator();exitItem=new JMenuItem("退出");exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E ,ActionEvent.CTRL_MASK);exitItem.add
12、ActionListener(new ExitActionListener();fileMenu.add(exitItem);mb.add(fileMenu);/編輯菜單欄及其菜單選項程序設計/editMenu=new JMenu("編輯");cutItem=new JMenuItem("剪切");cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK);cutItem.addActionListener(new CutActionListene
13、r();editMenu.add(cutItem);editMenu.addSeparator();copyItem=new JMenuItem("復制");copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK);copyItem.addActionListener(new CopyActionListener();editMenu.add(copyItem);editMenu.addSeparator(); pasteItem=new JMenuItem(&q
14、uot;粘貼");pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK);pasteItem.addActionListener(new PasteActionListener();editMenu.add(pasteItem);editMenu.addSeparator();sallItem=new JMenuItem("全選");sallItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_
15、M, ActionEvent.CTRL_MASK);sallItem.addActionListener(new SallActionListener();editMenu.add(sallItem);mb.add(editMenu);/幫助菜單欄及其菜單選項程序設計/helpMenu=new JMenu("幫助");aboutItem=new JMenuItem("關于記事本");aboutItem.addActionListener(new AbouthActionListener();helpMenu.add(aboutItem);mb.add(h
16、elpMenu);/編輯菜單的鼠標監聽及其彈出菜單的功能設計/popUpMenu = editMenu.getPopupMenu();jta.addMouseListener( new MouseAdapter() public void mouseReleased(MouseEvent e) if(e.getButton() = MouseEvent.BUTTON3) popUpMenu.show(editMenu, e.getX(), e.getY(); public void mouseClicked(MouseEvent e) if(e.getButton() = MouseEvent
17、.BUTTON1) popUpMenu.setVisible(false); ); /“新建”功能的實現/class NewActionListener implements ActionListener public void actionPerformed(ActionEvent e) jta.setText(""); file=null; /“保存功能的實現”/class SaveActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) if(file!=nul
18、l) fc.setSelectedFile(file); int returnVal=fc.showSaveDialog(Notebook.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=fc.getSelectedFile(); saving(); void saving() try FileWriter Writef=new FileWriter(file); Writef.write(jta.getText(); Writef.close(); catch(Exception e)e.printStackTrace(); /“打
19、開”功能的實現/class OpenActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) if(file !=null)fc.setSelectedFile(file); int returnVal=fc.showOpenDialog(Notebook.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=fc.getSelectedFile(); unfold(); void unfold() try FileReader Re
20、adf=new FileReader(file); int len=(int)file.length(); char buffer=new charlen; Readf.read(buffer,0,len); Readf.close(); jta.setText(new String(buffer); catch(Exception e)e.printStackTrace(); /“退出”功能的實現/class ExitActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) setVi
21、sible(false); dispose(); System.exit(0);/“剪切”功能的 實現/class CutActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.cut();/“復制”功能的實現/class CopyActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.copy();/“粘貼”功能的實現/class PasteActionLis
22、tener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.paste();/“全選”功能的實現/class SallActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.setSelectionStart(0);jta.setSelectionEnd(jta.getText().length();/“關于”功能的實現/class AbouthActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) String msg = "這是一個記事本 制作者:郭金龍"String t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025汽車維修保養服務合同范本
- 2025汽車展覽合同范本
- 混凝土結構工程施工規范宣講第6章預應力工程
- 房地產交易正規合同樣本
- 2025合同法的規定及其法律效力
- 模擬電子技術半導體器件
- 2025存量房買賣合同范本5
- 防火防爆基礎知識培訓
- 2024年度安全生產工作匯報
- 大學課件之工程圖學習內容
- 夫妻忠誠協議書(完整版)
- 水利基礎理論知識單選題100道及答案解析
- 2024年面向雙高電力系統發展需求的柔性直流輸電技術報告
- 發酵類制藥工業水污染物間接排放標準DB41 758-2012
- 2025年中考歷史復習專項訓練:中國近代史材料題40題(原卷版)
- 2024年手工木工職業技能競賽理論考試題庫-下(多選、判斷題)
- 2024上半年浙江杭州市臨平區機關事業單位編外用工招聘61人歷年高頻500題難、易錯點模擬試題附帶答案詳解
- 有限空間作業氣體檢測記錄表
- 八年級語文上冊 第一單元 第3課《鄉愁 余光中》教案 冀教版
- 2024中考英語必考1600詞匯分類速記表
- 小學語文課程方案2022
評論
0/150
提交評論