JAVA实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河北北方学院信息科学与工程学院

《Java程序设计》

实验报告

实验学期 2014 至 2015 学年第 2 学期学生所在系部信息科学与工程学院

年级 2012 专业班级电子三班

学生姓名冯洋学号 201242220 任课教师

实验成绩

实验七 GUI标准组件及事件处理

一、课程设计目的:

《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。

二、实验要求:

设计一个简单的文本编辑器,具有如下基本功能:

1)所见即所得的文本输入;

2)能方便地选中文本、复制、删除和插入文本;

3)具有一般编辑器所具有的查找和替换功能;

4)简单的排版,如设置字体和字号等。

三、课程设计说明:

1、需求分析:简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。文件操作能够实现新建、保存、打开文档等,编辑操作能过实现文本的剪贴、复制、粘贴等,格式操作能过实现字体设置、背景等,帮助操作能够实现关于主题的查看等功能

2、概要设计:

(一)其基本功能包括:

①基本的文本操作功能。包括新建,保存,打开,保存。

②基本的编辑功能。包括复制,剪贴,粘贴。

③基本的格式功能,字体。

④简单的帮助,关于主题。

(二)主要的组件包括:

①基本的Frame框架;

②菜单;

③打开文件对话框;

④保存文件对话框;

⑤颜色对话框;

⑥简单的帮助框架。

3、程序说明:

整个记事本分成:Jframe程序主体框架,Jmenu菜单栏、JtextArea文本输入区、PopupMenu 右键菜单、JscrollPane滚动条、FonDialog字体类等。

本程序中首先定义一个Java Yang类继承JFrame作为最底层容器。要想记事本完成需求分析中相应的功能,还必须添加事件监听器。事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中ActListener实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并覆盖了WindowsClosing方法。

四、程序调试:

1、调试分析:

(1)关于打开、保存和退出我运用了文件对话框, openFileDialog、saveFileDialog和

System.exit()以及文件输入输出流来实现,新建功能我选用了 textArea.setText()方法.

(2)对于剪贴,粘贴,复制的实现则用

复制

String text = textArea.getSelectedText();

StringSelection selection= new StringSelection(text);

clipboard.setContents(selection,null);

粘贴

Transferable contents = clipboard.getContents(this);

if(contents==null) return;

String text;

text="";

try

{ text = (String)contents.getTransferData(DataFlavor.stringFlavor);

}

catch(Exception ex)

{

}

textArea.replaceRange(text,textArea.getSelectionStart(),textArea.getSelectionEn d());

(3)至于字体功能的实现,则是新建了一个字体类,在这个类中设置了字形,字体以及大小并且有字体样式可预览用户当前的设置。FlowLayout()设置布局,setSize()设置大小add ()添加需要用的原件。

添加监听器获取选择用户的字号大小

public void itemStateChanged(ItemEvent event) {

size = (new Integer((String) event.getItem()).intValue());

setCustomFont(new Font(name, type, size));}

设置字体

private void setCustomFont(Font customFont) {

this.customFont = customFont;

area.setFont(customFont);

area.revalidate();}

获取字体

public Font getCustomFont() {

return (this.customFont);}

附录:源代码

//记事本主体类

import java.awt.event.*;

import java.awt.*;

import java.io.*;

import java.awt.datatransfer.*;

import javax.swing.*;

import java.awt.print.PrinterException;

public class MiniNote extends JFrame implements ActionListener {

JMenuBar menuBar = new JMenuBar();

JMenu file = new JMenu("文件(F)"), //菜单

edit = new JMenu("编辑(E)"),

format = new JMenu("格式(O)"),

view = new JMenu("查看(V)"),

help = new JMenu("帮助(H)");

JMenuItem[] menuItem ={ //菜单下拉项

new JMenuItem("新建(N)"),

new JMenuItem("打开(O)"),

new JMenuItem("保存(S)"),

new JMenuItem("打印(P)"),

new JMenuItem("全选(A)"),

new JMenuItem("复制(C)"),

new JMenuItem("剪切(T)"),

new JMenuItem("粘贴(P)"),

new JMenuItem("自动换行(W)"),

new JMenuItem("字体(F)"),

new JMenuItem("状态栏(S)"),

new JMenuItem("帮助主题(H)"),

new JMenuItem("关于记事本(A)"),

new JMenuItem("页面设置(U)"),

new JMenuItem("退出(X)"),

new JMenuItem("查找(F)"),

new JMenuItem("查找下一个(N)"),

new JMenuItem("替换(R)")

};

JPopupMenu popupMenu = new JPopupMenu(); ;//右键菜单

JMenuItem [] menuItem1 ={

相关文档
最新文档