文档库 最新最全的文档下载
当前位置:文档库 › java课程设计简单记事本开发内附完整代码流程图等

java课程设计简单记事本开发内附完整代码流程图等

java课程设计简单记事本开发内附完整代码流程图等
java课程设计简单记事本开发内附完整代码流程图等

浙江科技学院

经济管理学院

JAVA语言课程设计报告

选题名称简单记事本开发

学生学号

专业班级

学生姓名

学生成绩

指导教师朱军

工作时间2012/06/27——2012/06/29

目录

第一章选题简介

主要利用面向对象的程序设计语言Java来实现简单记事本,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切,查找,替换等功能,区别于一般的记事本,本程序利用了Java swing和事件监听等能够对文字的颜色进行设置。

第二章需求分析

1.系统要实现的目标分析

菜单中有文件,编辑,格式,视图风格,帮助五个主菜单。

(1)“文件”有新建、打开、保存、另存为、退出五个子菜单:分别用于新建文件,打开文件,保存文件,更改存储地址,退出记事本。

(2)“编辑”中有复制、剪切、粘贴、删除、查找、查找下一个、替换、替换下一个、全选、日期/时间十个字菜单:用于复制文字,剪切文字,粘贴文字,删除文字,查找文字,查找下一个文字,替换文字,替换下一个文字,选择文字,添加日期和者时间。

(3)“格式”中有字体样式、字体大小、字体颜色,自动换行。字体样式中又包含了正常、粗体、斜体3中字体样式,可以对文字的字体样式做修改。字体大小中又包含了最大、较大、适中、较小、最小这5个大小范围。字体颜色可以对字体进行颜色上的修改,是字体更加漂亮。自动换行能够实现文档在编辑是需要的自动换行功能。

(4)“视图风格”中有MOTIF风格,默认风格,状态栏。当用户选择MOTIF 风格,软件界面会切换成MOTIF风格界面。当用户选择默认风格,软件界面会切换成默认风格界面。点击状态栏时可以对状态栏进行显示和隐藏。

(5)“帮助”中有帮助主题和关于,可以解决用户在使用记事本中的一些问题。

(6)“快捷键”,在菜单栏下面增加了一排快捷键,可以对稳定进行快速的修改、操作等命令。快捷键主要有新建、打开、保存、复制、剪切、黏贴、删除、查找、字体颜色、帮助主题、退出。

2.对输入输出数据及流程的分析

本次设计中,设计了一个菜单栏和文本内容区。设计过程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。JMenu用来制作菜单,JTextPane主要用来输入文本。为了加入颜色的设置,所以加了一个JColorChooser组件。整个记事本分为2块:菜单栏和内容输入区。本程序中首先定义一个myfr类继承JFrame作为最底层容器。Textcontent为程序文本输入区。Menu为菜单栏。AboutDialog为关于对话框。要想记事本完成需求分析中相

应的功能,还必须添加事件监听器。事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中ActListener实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并覆盖了WindowsClosing方法。

3.开发环境及运行环境分析

本记事本的开发环境是在windows XP的环境下开发,运用了JCreator Pro、JDK开发工具,运行环境是SUN的JDK下运行的。

第三章系统设计

1.系统功能模块设计

note的构造方法

初始化容器组件添加时间监听器

菜单栏文字输入区

文件编

新建

退

M

O

TI

F

图3.1

在图3.1中,构造一个note类是要做的3件事情,分别是初始化容器、初始化组件、设置事件监听器。

2.类设计

(1).成员变量

成员变量类型成员变量名成员变量描述

JPanel P1,p2,p3 三个面板分别用来装菜单条、

文本区和状态栏

JMenuBar mb 菜单条

JPopupMenu popm 右键快捷菜单

JTextArea txt1 文本区

JLabel Label 用于将文字显示在状态栏上

JScrollPane sll 滚动条,当文本内容大于文本

区时的时候显示。

JToolBar toolbar 状态栏,当查看菜单选中状态

栏后才显示

FileReader fReader 字符流

FileWriter fw 字符流

JMenu m1,m2,m3,m5,m6 文件,编辑,格式,视图风格,

帮助

JMenuItem m10,m11,m12,m13,

m14 新建、打开、保存、另存为、退出

JMenuItem m21,m22,m23,m24,

m25,m26,m27,m271,

m28,m29 复制、剪切、粘贴、删除、查找、查找下一个、替换、替换下一个、全选、日期/时间

JMenuItem m31,m311,m312,m313,

m32,m321 ,m322,

m323 ,m324,m325,m33,

m34 字体样式、正常、粗体、斜体、字体大小、最大、较大、适中、较小、最小、字体颜色,自动换行

JMenuItem m51,m52,m53,m54 MOTIF风格,默认风格,状态

JMenuItem m61,m62 帮助主题、关于

2.成员方法

名称功能备注

note 创建记事本对象

myfr 创建窗口主程序

xxx 创建关闭窗口对象

xxxhelp 创建帮助主题窗口对

myhelp 创建帮助主题类对象

handlemouse 创建处理右键弹出菜

单对象

actionPerformed 事件处理,响应菜单及

工具栏事件

othersave 另存为方法

notfindmethod 提示查找不到的方法

notfindmethod

exit 退出

windowClosing 关闭窗口

mouseReleased 处理右键弹出菜单类

3.界面设计

3.1主界面:主界面包含文件、编辑、格式、视图风格、帮助、快捷键功能,用于选择相应的功能。

图3.1主窗口

3.2文件:“文件”有新建、打开、保存、另存为、退出功能。

图3.2文件

3.3编辑:“编辑”中有复制、剪切、粘贴、删除、查找、查找下一个、替换、替

换下一个、全选、日期/时间功能。

图3.3 编辑

3.4格式:“格式”中有字体样式、字体大小、字体颜色,自动换行。

图3.4格式

3.5视图风格:“视图风格”中有MOTIF风格,默认风格,状态栏。

图3.5视图风格

3.6帮助:“帮助”中有帮助主题和关于,可以解决用户在使用记事本中的一些问题。

图3.6帮助

第四章测试

1.测试用例及结果

图4.1主窗口图4.1为运行程序的主窗口。

图4.2打开界面图4.2为打开电脑里的文件的窗口。

图4.3查找界面

图4.3是利用软件的查找功能查找文字的界面。

图4.4字体颜色界面

图4.4为软件改变字体颜色界面,可以更改成不同颜色的字体。

图4.5MOTIF风格

图4.5为软件切换到MOTIF风格得效果图。

本次测试结果成功,基本功能可以实现!

2.程序功能的评价

本记事本实现了记事本常用的一些功能,文件的新建,可以打开电脑里的文档文件,进行修改和保存,例如可以对文字进行复制、粘贴、剪切、查找、替换、全选等功能。还可以对字体的大小风格进行设置。区别于常用记事本的不同之处是本记事本程序可以实现对记事本字体颜色的修改,用户可以自定义文字的颜色,而且本记事本还可以切换成2种不同风格的界面用于编辑。总体来说本记事本已经实现了工作需要的功能,能够用于一般的编写文字。不足之处是本记事本还未能设置好页面设置,方便用户进行设置页面的需求。查找时没有向下查找功能。不能对字体进一步设置,如设置不同的字体。程序相对来说比较简单,需要进一步完善。

程序总代码:

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.util.*;

import javax.swing.*;

public class note {

public static void main(String[] args)

{

myfr fr=new myfr("JAV A记事本");

fr.setSize(560,395);

}

///////////////////////////myfr主窗体类//////////////////////////////////////

class myfr extends JFrame implements ActionListener

{

String str,strnext,path,fname; //部分变量的声明

JPanel mainpane;

JFileChooser choose = new JFileChooser(); //文件对话框

Dialog find,replace; //find为查找对话框,replace对话框

JTextField findtxt,repltxt; //find为查找对话框的输入文本区,replace对话框的输入文本区

Font newfont;

JButton findenter,replb; //find为查找对话框,replace对话框的确定按钮

JLabel state=new JLabel(" JA VA记事本------未命名文档"); //状态栏

JTextArea txt1; //主输入文本区

File newfiles;

JPopupMenu popm; //弹出菜单声明

JMenu m1,m2,m3,m4,m5,m6; //各菜单项

JMenuItem

m61,m62,m26,m271,m34,m51,m52,m53,m54,p_copy,p_cut,p_paste,p_del;

int startp,endp,nexttemp,newstartp,newendp; //查找替换时所用的临时变量

JToolBar toolbar = new JToolBar(); //工具条

JButton newf=new JButton(new ImageIcon("pic/new.gif")); //图标在PIC下

JButton open=new JButton(new ImageIcon("pic/open.gif"));

JButton save=new JButton(new ImageIcon("pic/save.gif"));

JButton copy=new JButton(new ImageIcon("pic/copy.gif"));

JButton cut=new JButton(new ImageIcon("pic/cut.gif"));

JButton pp=new JButton(new ImageIcon("pic/pp.gif"));

JButton del=new JButton(new ImageIcon("pic/del.gif"));

JButton findc=new JButton(new ImageIcon("pic/find.gif"));

JButton color=new JButton(new ImageIcon("pic/color.gif"));

JButton help=new JButton(new ImageIcon("pic/help.gif"));

JButton exit=new JButton(new ImageIcon("pic/exit.gif"));

myfr(String sss) /////构造函数开始

{

super(sss);

JMenuBar mb=new JMenuBar();

fname=null; //初始文件名为空

findenter=new JButton("确定");

findenter.addActionListener(this); //声明对话框中上确定按钮,并注册事件replb=new JButton("确定");

replb.addActionListener(this);

mainpane=(JPanel)this.getContentPane();

mainpane.setLayout(new BorderLayout());

txt1=new JTextArea("",13,61);

txt1.addMouseListener(new handlemouse(this));//注册鼠标右击事件

txt1.setFont(new Font("宋体",Font.PLAIN,18));

mainpane.add(txt1, BorderLayout.CENTER);

mainpane.add("North",toolbar);

mainpane.add("South",state);

JScrollPane sll = new JScrollPane(); //创建滚动条

mainpane.add("Center", sll); ;

sll.getViewport().add(txt1); //将滚动条装入文本区

popm=new JPopupMenu(); ////POPMeun 开始

p_copy=new JMenuItem("复制");

p_copy.addActionListener(this);

KeyStroke

keycopyp=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK);

p_copy.setAccelerator(keycopyp);

p_cut=new JMenuItem("剪切");

p_cut.addActionListener(this);

KeyStroke

keycutp=KeyStroke.getKeyStroke(KeyEvent.VK_X,Event.CTRL_MASK);

p_cut.setAccelerator(keycutp);

p_paste=new JMenuItem("粘贴");

p_paste.addActionListener(this);

KeyStroke

keypp=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK);

p_paste.setAccelerator(keypp);

p_del=new JMenuItem("删除");

p_del.addActionListener(this);

KeyStroke keydelp=KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0);

p_del.setAccelerator(keydelp);

popm.add(p_copy);

popm.add(p_cut);

popm.add(p_paste);

popm.add(p_del);

txt1.add(popm); ////POPMenu 结束

m1=new JMenu("文件(F)");

m1.setMnemonic('F'); //定义快捷方式

JMenuItem m10=new JMenuItem("新建");

m10.addActionListener(this); //注册事件监听器

KeyStroke

keynew=KeyStroke.getKeyStroke(KeyEvent.VK_N,Event.CTRL_MASK); //定义快捷键

m10.setAccelerator(keynew);

JMenuItem m11=new JMenuItem("打开");

m11.addActionListener(this);

KeyStroke

keyopen=KeyStroke.getKeyStroke(KeyEvent.VK_O,Event.CTRL_MASK);

m11.setAccelerator(keyopen);

JMenuItem m12=new JMenuItem("保存");

m12.addActionListener(this);

KeyStroke

keysave=KeyStroke.getKeyStroke(KeyEvent.VK_S,Event.CTRL_MASK);

m12.setAccelerator(keysave);

JMenuItem m13=new JMenuItem("另保存为");

m13.addActionListener(this);

JMenuItem m14=new JMenuItem("退出");

m14.addActionListener(this);

KeyStroke

keyexit=KeyStroke.getKeyStroke(KeyEvent.VK_F4,Event.ALT_MASK);

m14.setAccelerator(keyexit);

////////////////////////////////////////////

m2=new JMenu("编辑(E)");

m2.setMnemonic('E');

JMenuItem m21=new JMenuItem("复制");

m21.addActionListener(this);

KeyStroke

keycopy=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK);

m21.setAccelerator(keycopy);

JMenuItem m22=new JMenuItem("剪切");

m22.addActionListener(this);

KeyStroke

keycut=KeyStroke.getKeyStroke(KeyEvent.VK_X,Event.CTRL_MASK);

m22.setAccelerator(keycut);

JMenuItem m23=new JMenuItem("粘贴");

m23.addActionListener(this);

KeyStroke

keyp=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK);

m23.setAccelerator(keyp);

JMenuItem m24=new JMenuItem("删除");

m24.addActionListener(this);

KeyStroke keydel=KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0);

m24.setAccelerator(keydel);

JMenuItem m25=new JMenuItem("查找");

m25.addActionListener(this);

KeyStroke

keyfind=KeyStroke.getKeyStroke(KeyEvent.VK_F,Event.CTRL_MASK);

m25.setAccelerator(keyfind);

m26=new JMenuItem("查找下一个");

m26.addActionListener(this);

KeyStroke keyfn=KeyStroke.getKeyStroke(KeyEvent.VK_F3,0);

m26.setAccelerator(keyfn);

m26.setEnabled(false);

JMenuItem m27=new JMenuItem("替换");

m27.addActionListener(this);

KeyStroke

keyrepl=KeyStroke.getKeyStroke(KeyEvent.VK_H,Event.CTRL_MASK);

m27.setAccelerator(keyrepl);

m271=new JMenuItem("替换下一个");

m271.setEnabled(false);

m271.addActionListener(this);

KeyStroke keyrepn=KeyStroke.getKeyStroke(KeyEvent.VK_F6,0);

m271.setAccelerator(keyrepn);

JMenuItem m28=new JMenuItem("全选");

m28.addActionListener(this);

KeyStroke

keyall=KeyStroke.getKeyStroke(KeyEvent.VK_A,Event.CTRL_MASK);

m28.setAccelerator(keyall);

JMenuItem m29=new JMenuItem("日期/时间");

m29.addActionListener(this);

m3=new JMenu("格式(O)");

m3.setMnemonic('O');

JMenu m31=new JMenu("字体样式");

JMenuItem m311=new JMenuItem("正常");

m311.addActionListener(this);

JMenuItem m312=new JMenuItem("粗体");

m312.addActionListener(this);

JMenuItem m313=new JMenuItem("斜体");

m313.addActionListener(this);

JMenu m32=new JMenu("字体大小");

JMenuItem m321=new JMenuItem("最大");

m321.addActionListener(this);

JMenuItem m322=new JMenuItem("较大");

m322.addActionListener(this);

JMenuItem m323=new JMenuItem("适中");

m323.addActionListener(this);

JMenuItem m324=new JMenuItem("较小");

m324.addActionListener(this);

JMenuItem m325=new JMenuItem("最小");

m325.addActionListener(this);

JMenuItem m33=new JMenuItem("字体颜色");

m33.addActionListener(this);

m34=new JMenuItem("自动换行");

m34.addActionListener(this);

m5=new JMenu("视图风格(V)");

m5.setMnemonic('V');

//m51=new JMenuItem("系统风格");

//m51.addActionListener(this);

m52=new JMenuItem("MOTIF风格");

m52.addActionListener(this);

m53=new JMenuItem("默认风格");

m53.addActionListener(this);

m54=new JMenuItem("状态栏");

m54.addActionListener(this);

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

m6.setMnemonic('H');

m61=new JMenuItem("帮助主题");

m61.addActionListener(this);

m62=new JMenuItem("关于");

m62.addActionListener(this);

m1.add(m10); m1.add(m11); m1.add(m12); m1.add(m13); m1.addSeparator(); m1.add(m14);

m2.add(m21); m2.add(m22); m2.add(m23); m2.add(m24); m2.addSeparator(); m2.add(m25);

m2.add(m26); m2.add(m27); m2.add(m271); m2.addSeparator(); m2.add(m28);

m2.add(m29); m3.add(m31); m31.add(m311); m31.add(m312); m31.add(m313);

m3.add(m32); m32.add(m321); m32.add(m322); m32.add(m323); m32.add(m324);

m32.add(m325); m3.add(m33); m3.addSeparator(); m3.add(m34); //m5.add(m51);

m5.add(m52); m5.add(m53); m5.addSeparator(); m5.add(m54); m6.add(m61);

m6.addSeparator(); m6.add(m62); mb.add(m1); mb.add(m2); mb.add(m3);

mb.add(m5); mb.add(m6); this.setJMenuBar(mb); //设置菜单栏

toolbar.add(newf); //工具栏各按钮

newf.setToolTipText("新建");

newf.addActionListener(this);

toolbar.add(open);

open.setToolTipText("打开");

open.addActionListener(this);

toolbar.add(save);

save.setToolTipText("保存");

save.addActionListener(this);

toolbar.addSeparator();

toolbar.add(copy);

copy.setToolTipText("复制");

copy.addActionListener(this);

toolbar.add(cut);

cut.setToolTipText("剪切");

cut.addActionListener(this);

toolbar.add(pp);

pp.setToolTipText("粘贴");

pp.addActionListener(this);

toolbar.add(del);

del.setToolTipText("删除");

del.addActionListener(this);

toolbar.addSeparator();

toolbar.add(findc);

findc.setToolTipText("查找");

findc.addActionListener(this);

toolbar.add(color);

color.setToolTipText("字体颜色");

color.addActionListener(this);

toolbar.addSeparator();

toolbar.add(help);

help.setToolTipText("帮助主题");

help.addActionListener(this);

toolbar.add(exit);

exit.setToolTipText("退出");

exit.addActionListener(this);

setVisible(true);

pack();

show();

this.addWindowListener(new xxx(this));

//toolbar.setBackground(new Color(150,150,240));

//txt1.setBackground(new Color(170,180,245));

}///构造函数结束///

////////////////事件处理/////////////////////////////////////

public void actionPerformed(ActionEvent p)

{

if(p.getActionCommand()=="新建"||p.getSource()==newf) //响应菜单及工具栏事件

{

fname=null; //置文件名为空,便于判断文件是否保存过

txt1.setText("");

state.setText("JA VA记事本------未命名文档");

}

if(p.getActionCommand()=="打开"||p.getSource()==open)

{

try {

if(this.choose.APPROVE_OPTION==this.choose.showOpenDialog(this))

{

path=this.choose.getSelectedFile().getPath();

fname=this.choose.getSelectedFile().getName();

File file=new File(path);

int flength=(int)file.length();

FileReader fReader=new FileReader(file);

char[] data=new char[flength];

fReader.read(data,0,flength);

txt1.setText(new String(data));

state.setText("JA VA记事本------"+path+" 共"+flength+"字节");//状态栏统计文件字节数

txt1.setCaretPosition(0);

}}

catch(IOException e)

{}

}

if(p.getActionCommand()=="保存"||p.getSource()==save)

if(fname==null) //如果文件名为空,说明文件未被创建,弹出另存为对话框{ othersave(); }

try {

File savefile=new File(path);

savefile.createNewFile();

FileWriter fw=new FileWriter(savefile);

fw.write(txt1.getText());

fw.close();

}

catch(IOException e)

{}

}

if(p.getActionCommand()=="另保存为")

{othersave();}

if(p.getActionCommand()=="退出"||p.getSource()==exit)

{exit();}

//////////////////编辑////////////////////

if(p.getActionCommand()=="复制"||p.getSource()==copy)

{ txt1.copy(); }

if(p.getActionCommand()=="剪切"||p.getSource()==cut)

{ txt1.cut(); }

if(p.getActionCommand()=="粘贴"||p.getSource()==pp)

{ txt1.paste(); }

if(p.getActionCommand()=="删除"||p.getSource()==del)

{

txt1.replaceSelection("");

}

///////////////////////////////////////////////////////

if(p.getActionCommand()=="查找"||p.getSource()==findc) // 创建查找对话框;

{find=new Dialog(this,"查找");

JPanel p1=new JPanel();

JPanel p2=new JPanel();

findtxt=new JTextField(7);

p1.add(new JLabel("输入要查找字符:"));

p1.add(findtxt);

p2.add(findenter);

find.add("Center",p1);

find.add("South",p2);

find.setSize(200,100);

find.show();

if(p.getSource()==findenter) ///点击查找对话框的确定按钮后的事件处理

{

if(findtxt.getText().equals(""))

{find.dispose();}

else if(!findtxt.getText().equals(""))

{ find.dispose();

str=txt1.getText();

startp=str.indexOf(findtxt.getText());

endp=startp+findtxt.getText().length();

txt1.select(startp,endp);

m26.setEnabled(true);

newendp=endp;////////获取这次查找的终点

notfindmethod();

}

}

//////////////////////////////////////////////////////////

if(p.getActionCommand()=="查找下一个")

{

nexttemp=newendp; /////获取上次查找的终点做为未查找字符串的起点

String strall=txt1.getText();

txt1.select(nexttemp,strall.length()); /////选中所有未查找的字符串

strnext=txt1.getSelectedText();

newstartp=strnext.indexOf(findtxt.getText())+nexttemp;/////在未查找的字符串里搜索对应字符的在TXT1中的位置

newendp=newstartp+findtxt.getText().length();

txt1.select(newstartp,newendp); ////找到相应文本,并选择

notfindmethod();

}

if(p.getActionCommand()=="替换")

{m271.setEnabled(true);

replace=new Dialog(this,"替换"); // 创建替换对话框;

JPanel p1=new JPanel();

JPanel p2=new JPanel();

JPanel p3=new JPanel();

findtxt=new JTextField(7);

repltxt=new JTextField(7);

p1.add(new JLabel("输入原始字符:"));

p1.add(findtxt);

p2.add(new JLabel("输入替换字符:"));

p2.add(repltxt);

p3.add(replb);

replace.add("North",p1);

replace.add("Center",p2);

replace.add("South",p3);

replace.setSize(200,150);

replace.show();

}

if(p.getSource()==replb) ///点击替换对话框的确定按钮后的事件处理

{

replace.dispose();

str=txt1.getText();

startp=str.indexOf(findtxt.getText());

endp=startp+findtxt.getText().length();

txt1.replaceRange(repltxt.getText(),startp,endp);

newendp=endp; ///获取这次替换的终点

}

if(p.getActionCommand()=="替换下一个")

{nexttemp=newendp; /////获取上次查找的终点做为未查找字符串的起点

String strall=txt1.getText();

txt1.select(nexttemp,strall.length()); /////选中所有未查找的字符串

strnext=txt1.getSelectedText();

newstartp=strnext.indexOf(findtxt.getText())+nexttemp;/////在未查找的字符串里搜索对应字符的在TXT1中的位置

newendp=newstartp+findtxt.getText().length();

txt1.select(newstartp,newendp);

notfindmethod();

txt1.replaceRange(repltxt.getText(),newstartp,newendp);//替换字符

}

if(p.getActionCommand()=="全选")

{txt1.selectAll(); }

if(p.getActionCommand()=="日期/时间") //用DATE类插入当前日期/时间,编译时会出现说明

{ int inpoint=txt1.getCaretPosition();

Date dt=new Date();

String strdate=dt.toLocaleString();

txt1.insert(strdate,inpoint);}

if(p.getActionCommand()=="正常")

{ newfont=txt1.getFont(); //得到当前应用字体,获得字体大小,创建相应样式

int size=newfont.getSize();

txt1.setFont(new Font("宋体",Font.PLAIN,size)); }

if(p.getActionCommand()=="粗体")

{ newfont=txt1.getFont();

int size=newfont.getSize();

txt1.setFont(new Font("宋体",Font.BOLD,size)); }

if(p.getActionCommand()=="斜体")

{ newfont=txt1.getFont();

int size=newfont.getSize();

txt1.setFont(new Font("宋体",Font.ITALIC,size)); }

////////////字体大小/////////////////

if(p.getActionCommand()=="最大")

{ newfont=txt1.getFont(); ////得到当前应用字体,获得字体样式,创建相应字体的大小

int sty=newfont.getStyle() ;

txt1.setFont(new Font("宋体",sty,35)); }

if(p.getActionCommand()=="较大")

{ newfont=txt1.getFont();

int sty=newfont.getStyle() ;

txt1.setFont(new Font("宋体",sty,30)); }

if(p.getActionCommand()=="适中")

{ newfont=txt1.getFont();

int sty=newfont.getStyle() ;

txt1.setFont(new Font("宋体",sty,18)); }

if(p.getActionCommand()=="较小")

{ newfont=txt1.getFont();

int sty=newfont.getStyle() ;

txt1.setFont(new Font("宋体",sty,16)); }

if(p.getActionCommand()=="最小")

{ newfont=txt1.getFont();

int sty=newfont.getStyle() ;

txt1.setFont(new Font("宋体",sty,14)); }

if(p.getActionCommand()=="字体颜色"||p.getSource()==color) //字体颜色

{

JColorChooser jColor=new JColorChooser(); //调用颜色面板,设置前景就可更改字体颜色

Color fcolor=txt1.getForeground();

txt1.setForeground( jColor.showDialog(txt1,"选择字体颜色",fcolor));

}

if(p.getActionCommand()=="自动换行")

{ txt1.setLineWrap(true);

m34.setEnabled(false);

}

//if(p.getActionCommand()=="系统风格") //不稳定,在不同编译平台下表现不一致

// { }

(完整版)java课程设计——客户管理系统源代码

完整代码: 1.客户类(class person): package客户管理系统; public class Person { private int num; private String name; private String address; private String sex; public Person(){} public Person(int num,String name,String address,String sex){ this.num=num; https://www.wendangku.net/doc/225915656.html,=name; this.address=address; this.sex=sex; } public void setNum(int num){ this.num=num; } public int getNum(){ return num; } public void setName(String name){ https://www.wendangku.net/doc/225915656.html,=name; } public String getName(){ return name; } public void setAddress(String address){ this.address=address; } public String getAddress(){ return address;

} public void setSex(String sex){ this.sex=sex; } public String getSex(){ return sex; } public String toString() { return"\t"+num+"\t"+name+"\t"+address+"\t"+sex; } } 2.菜单类(class Menu): package客户管理系统; import java.util.Scanner; public class Menu { Scanner input=new Scanner(System.in); public Menu() {} public int showMenu() { System.out.println("***********************************" ); System.out.println("客户管理系统"); System.out.println("===================================" ); System.out.println("【1】增加"); System.out.println("【2】删除"); System.out.println("【3】修改"); System.out.println("【4】查询"); System.out.println("【5】浏览"); System.out.println("【6】退出"); System.out.println("***********************************" ); System.out.print("请选择操作:");

JAVA课程设计打砖块(含代码)

Java程序课程设计任务书 一、主要容 打砖块游戏是一种动作电子游戏的名称。玩家操作一根萤幕上水平的“棒子”,让一颗不断弹来弹去的“球”在撞击作为过关目标消去的“砖块”的途中不会落到萤幕底下。球碰到砖块、棒子与底下以外的三边会反弹,落到底下会失去一颗球,把砖块全部消去就可以破关。 二、具体要求 通过图形用户界面(Graphics User Interface,GUI)和线程,使用户和程序之间可以方便地进行交互。运用Swing组件,编写小应用程序游戏,加深对Java语言的理解,深入地了解图形用户界面的设计,更加熟练地运用编程软件。 功能要求: (1)游戏运行需键盘的操作; (2)游戏可统计分数; (3)球落到底下会失去一颗,按ENTER可重新开始。 开发工具:JCreater软件; 开发技术:J2ME。 三、进度安排 12月28日:课程设计选题,查找参考资料 12月29日:完成打砖块游戏程序设计分析 12月30日~ 1月3日:完成程序代码的编写 1月4日~ 1月5日:游戏测试与完善 1月6日~ 1月7日:完成课程设计报告,准备答辩 四、主要参考文献 [1] (美)埃克尔著昊鹏,饶若楠等译. Java编程思想[J]. 机械工业,2005 [2](美)Gary J.Bronson著珑雅文译. Java编程原理[J]. 清华大学,2004 [3](美)Michael Morrison著徐刚,于健,薛雷译. 游戏编程入门[J]. 人民邮电,2005.9 [4](美)Wendy Stahler著冯宝坤,曹英译. 游戏编程中的数理应用[J]. 红旗,2005

[5](美)克罗夫特(David Wallace Croft)著彭晖译. Java游戏高级编程[J]. 清华大学,2005 [6](美)David Brackeen著邱仲潘译. Java游戏编程[J]. 科学,2004 [7] 聂庆亮编著. Java应用开发指南[J]. 清华大学,2010 [8] 耿祥义,跃平编著. Java面向对象程序设计[J]. 清华大学,2010 [9] 绍方编著. Java编程实用技术与案例[J]. 清华大学,2000.11 [10] 明日科技编著. Java编程全能词典[J]. 电子工业,2010 摘要 随着Java语言的不断发展和壮大,现在的Java已经广泛的应用于各个领域,

java记事本课程设计论文附源码

设计题目:记事本课程设计 专业:电子信息科学与技术 班级:电子1202班 学号:20121210606 姓名:王鹏 2015 年7月

XXX学院本科学生课程设计任务书

摘要 目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。此次课程设计主要通过编写一个简单的记事本程序使我们深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等内容。此简易记事本程序,使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能。该程序主要用到了Java swing和事件监听等。 关键词记事本程序,java语言,Java swing

目录 摘要 (1) 1 需求分析 (3) 1.1需求分析 (3) 1.2功能设计 (3) 2 概要分析 (4) 2.1概要设计思想 (4) 2.2程序运行界面 (4) 2.3程序模块说明 (4) 2.4流程图 (5) 2.5程序相关说明 (6) 3 程序详细设计与分析 (8) 3.1构建菜单栏及其下拉菜单 (8) 3.2“文件”菜单操作的事件监听 (8) 3.3“编辑”、“格式”等菜单的事件监听 (10) 3.4异常处理 (11) 4 测试分析 (12) 5 源程序清单 (15) 结论 (22) 参考文献 (23)

1 需求分析 1.1需求分析 现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。 1.2功能设计 本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面: 1、菜单中有“文件”,“编辑”,“格式”,“查看”,“帮助”五个主菜单。 2、“文件”有“新建”“打开”“保存”“另存为”“退出”五个子菜单:分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。 3、“编辑”中有“撤销”“剪切”“复制”“粘贴”“全选”“时间/日期”六个字菜单:用于撤销操作,剪切文字,复制文字,粘贴文字。全部选择,插入日期、时间。 4、“格式”菜单中有“自动换行”和“字体”两个子菜单。 5、“查看”菜单只是显示状态栏。 6、“帮助”菜单中只有“关于记事本”子菜单,主要用于显示该程序的名字,版本等信息。

课程设计—java记事本

import javax.swing.*; import javax.swing.undo.*; import javax.swing.text.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; import java.text.*; import java.util.*; import java.awt.datatransfer.*; import java.awt.print.*; import java.io.*; public class Jishiben extends JFrame implements ActionListener { JPopupMenu pm ; JTextArea ta; boolean isNewFile=true; //是否新文件(未保存过的) File currentFile; //当前文件名 String oldValue; //存放编辑区原来的内容,用于比较文本是否有改动//protected UndoManager undo = new UndoManager(); //protected UndoableEditListener undoHandler = new UndoHandler(); JToolBar tbar = new JToolBar(); JCheckBoxMenuItem mt19; public Jishiben() { super("记事本"); //Container ct=getContentPane(); //以下三句是设置编辑区域及滚动条 ta = new JTextArea(); JScrollPane sp = new JScrollPane(ta); add(sp); JMenuBar mb = new JMenuBar(); //设置文件菜单 JMenu mu1 = new JMenu("文件(F)",true); mu1.setMnemonic('F');//设置快捷键按下ALT+F激活打开菜单 JMenuItem mt1 = new JMenuItem("新建(N)",'N'); mt1.setMnemonic('N'); //mt1.addActionListener(new new1()); JMenuItem mt2 = new JMenuItem("打开(O)...",'O'); mt2.setMnemonic('O'); mt2.addActionListener(this); JMenuItem mt3 = new JMenuItem("保存(S)",'S'); //mt3.addActionListener(new save()); mu1.add(mt3); JMenuItem mt4 = new JMenuItem("另存为(A)..."); JMenuItem mt5 = new JMenuItem("页面设置(A)..."); JMenuItem mt6 = new JMenuItem("打印(P)..."); JMenuItem mt7 = new JMenuItem("退出(X)",'X');

Java课程设计聊天室(含代码)

Java程序课程设计任务书 JAVA聊天室的系统的设计与开发 1.主要内容: 用JA V A实现基于C/S模式的聊天室系统。聊天室分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的信息,客户端需要登陆到服务器端才可以实现正常的聊天功能。 2.具体要求(包括技术要求等): 系统的功能要求: A.服务器端主要功能如下: 1.在特定端口上进行侦听,等待客户端连接。 2.用户可以配置服务器端的侦听端口,默认端口为8888。 3.向已经连接到服务器端的用户发送系统消息。 4.统计在线人数。 5.当停止服务时,断开所有的用户连接。 B.客户端的主要功能如下: 1.连接到已经开启聊天服务的服务器端。 2.用户可以配置要连接的服务器端的IP地址和端口号。 3.用户可以配置连接后显示的用户名。 4.当服务器端开启的话,用户可以随时登录和注销。 5.用户可以向所有人或某一个人发送消息。 学习并掌握一下技术:Java JavaBean 等 熟练使用一下开发工具:Eclipse,JCreator 等 实现系统上诉的功能。 3.进度安排: 12月28日~ 12月29日:课程设计选题,查找参考资料 12月30日~ 1月1日:完成系统设计 1月2日~ 1月5日:完成程序代码的编写 1月6日:系统测试与完善 1月7日:完成课程设计报告,准备答辩 4.主要参考文献: [1].张广彬孟红蕊张永宝.Java课程设计(案例精编)[M].清华大学出版社.2007年版

摘要 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。基于Java网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。 一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Soket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQL Server2000完成并通过JDBC-ODBC桥访问数据库。 本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。使用JAVA语言编写,开发工具采用Eclipse。服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。大大增强了程序对服务器资源的利用。 聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。 关键词:多线程;客户机/服务器;JA V A ;Socket ;Eclipse ;TCP/IP

学生信息管理系统java课程设计含源代码完整版

学生信息管理系统j a v a 课程设计含源代码 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

JAVA程序设计课程设计报告 课题: 学生信息管理系统 姓名: 学号: 同组姓名: 专业班级: 指导教师: 1 2 1、功能模块划分 (3) 2、数据库结构描述 (4) 3、系统详细设计文档 (6) 4、各个模块的实现方法描述 (9) 5、测试数据及期望结果 (11)

一、系统描述 1、需求实现的功能 、录入学生基本信息的功能 学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,则不能再插入该学号。 、修改学生基本信息的功能 在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。 、查询学生基本信息的功能 可使用“姓名”对已存有的学生资料进行查询。 、删除学生基本信息的功能 在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。 、用户登陆 用不同的登录权限可以进入不同的后台界面,从而实现权限操作。 、用户登陆信息设置 可以修改用户登陆密码 2、设计目的 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的

java课程设计策画日历记事本

课程设计说明书 课程: Java程序设计 院系:计算机科学学院 专业班级:计算机科学与技术(2)班 组员:张少华、张天阳 2010年6月 26 日

《Java程序设计》课程设计 ——日历记事本 我们开发了一个实现有日历标记的记事本软件,日历记事本面板由日历和和记事本两部分组成。日历部分可以调节年份,月份,日期,星期。记事本可以实行查看,保存,删除等操作,并且每一步操作都有相应提示。本软件是一个实用性很强,简洁,方便的功能软件。 引言 Java是一种纯面向对象的、网络编程首选的语言。Java技术作为软件开的一种革命性技术,已被列为当今世界信息技术的主流之一。为了适应时代潮流,我们应该加强对Java的学习,更好的掌握这门课程。为此,我们成了一个课程小组,经过小组成的商讨之后,我们决定以“日历记事本”为设题材,借此巩固加深我们对Java 的了解。 本次课程设计的实例虽然比较简单,程序设计也不是很复杂,但在此程序的设计过程也是一个学习过程,更是对复杂程序的一个学习过程,还能培养我们的数抽象能力。因此,我们觉得这次课程设计是非常有意义的,能为我们今后学习面向过程的程序设计作一些铺垫。 1、设计的目的与要求; (1)为用户提供一个简便的日历记事本; (2)对java技术的进一步了解和简单的运用; (3)初步的接触软件工程; 2.设计目的与任务 本课程设计所要求达到的目的和任务:通过Java程序设计的一些重要理论基础来实现“日历记事本”的“日历”和“记事本”的双重功能。并通过此次课程设计的训练,使学生巩固和加深对Java这门课程的理解,通过利用所学到的计算科学的理论知识,提高解决实际问题的能力,增强运算、编程和使用技术资料的技能,通过实际问题的分析设计、编程和调试,掌握应用软件的分析方法和工程设计方法,能正确阐述设计和实验结果。通过这次课程设计,培养实事求是、认真、严谨的科学态度和刻苦钻研不断创新的精神,逐步建立正确的全局观念。 3.设计方案 3.1 总体设计

学生信息管理系统java课程设计(含源代码)

JAVA程序设计课程设计报告 课题: 学生信息管理系统 姓名: 学号: 同组姓名: 专业班级: 指导教师: 设计时间: 评阅意见: 评定成绩:

目录 一、系统描述 (2) 1、需要实现的功能 (3) 2、设计目的 (3) 二、分析与设计 (3) 1、功能模块划分 (3) 2、数据库结构描述 (4) 3、系统详细设计文档 (6) 4、各个模块的实现方法描述 (9) 5、测试数据及期望结果 (11) 三、系统测试 (16) 四、心得体会 (23) 五、参考文献 (24) 六、附录 (24)

一、系统描述 1、需求实现的功能 、录入学生基本信息的功能 学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,则不能再插入该学号。 、修改学生基本信息的功能 在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。 、查询学生基本信息的功能 可使用“姓名”对已存有的学生资料进行查询。 、删除学生基本信息的功能 在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。 、用户登陆 用不同的登录权限可以进入不同的后台界面,从而实现权限操作。 、用户登陆信息设置 可以修改用户登陆密码 2、设计目的 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,

仿windows JAVA 课程设计 记事本

前言 随时着科学技术的快速发展,计算机程序设计早已成为了趋势,JAVA是计算机专业的核心课程,是计算机科学的算法理论基础和软件设计的技术基础。JAVA是实践性很强的课程。课程设计是加强实践能力的一个强有力手段。要求掌握JAVA的应用、编写、上机调试的基本方法。本课程设计就是主要利用java语言编写的一个模仿windows 记事本的较简单的程序,实现了一些基本功能,要求打开文件,读取文件中的文本信息;显示、编辑修改文本信息;实现输入文本文件、控制保存文本信息到指定的文件的功能。 目录 一、需求分析 (1) 二、概要设计 (1) 三、详细设计 (2) 四、系统调试分析 (6) 五、课程设计心得体会 (7) 六、使用说明 (7) 七、参考文献及致 (7) 八、附录(程序源代码) (7)

一、需求分析 该课程设计报告里的简易记事本程序是使用Java程序设计语言编写的,要现记事本的基本功能,参考了windows中记事本的一些功能。要求打开文件,读取文件中的文本信息;显示、编辑修改文本信息;实现新建、打开、保存文本文件以及控制保存文本信息到指定的文件的一些基本功能。 二、概要设计 1.1 系统主要功能 本程序是利用java程序设计语言编写的一个简单的记事本程序。可以通过菜单栏和工具栏实现以下功能:如文件的新建,打开,保存和退出;对文件的编辑,如复制,剪切,粘贴;以及帮助菜单;执行完操作后,能够顺利关闭记事本。 1.2运行环境要求 (1) 实现设计的系统硬件需求 硬件配置的基本要求: * 586以上的计算机 * 32MB以上的存 * 彩色显示器 * 3.5寸高密软盘驱动器 * 光盘驱动器 * 4G以上硬盘空间 * 鼠标 (2) 实现设计的系统软件 * WINDOWS95或WINDOWS98 * Jcreator Pro全套软件 三、详细设计 设计思路:设计一个EditorDemo类,继承自JFrame类,并在EditorDemo类利用JtextPane 创建面板窗口textPane,利用Jlabel创建状态栏 statusBar,利用JFileChooser 创建文件选择器filechooser,利用JMenuBar创建并实例化菜单栏,利用JToolBar创建工具栏,再通过一些具体方法实现各功能键的功能。建立构造函数public EditorDemo();通过该构造函数实现记事本程序的主要功能,运行时在主类过调用该构造函数来实现对记事本程序的基本操作。 1:窗口设计 在主接口中设计一个EditorDemo容器继承自JFrame,并在其中加入菜单栏、工具栏和一个文本域控件。

java(源代码)连连看课程设计

目录 第一章引言 (2) 1.背景 (2) 1.1课程设计内容 (3) 第二章系统介绍 (4) 1.连连看游戏规则 (4) 1.1游戏基本规则 (4) 1.2操作规则 (4) 1.3胜利和失败 (4) 2.游戏流程图分析 (4) 第三章系统游戏设计 (7) 1.系统分析 (7) 1.1游戏系统需求分析 (7) 1.2系统开发及运行环境 (7) 1.3系统功能主要要求 (7) 2.系统总体结构 (8) 3. 系统各模块功能介绍 (8) 第四章系统的具体实现 (9) 1.系统主要运行界面 (9) 1.1运行界面 (9) 1.2执行界面,进入游戏正常运行 (9) 1.3时间到界面 (10) 1.4赢家界面 (11) 1.5进度条界面 (12) 图4.5程序运行进度条 (12) 2.游戏实现代码 (12) 2.1主面板内所需要的组件的声明 (12) 2.2填充一个矩形框,进行显示时间 (12) 2.3主面板及各组件初始化 (13) 2.4创建时间对象,每隔100毫秒刷新一次 (13) 2.5分数代码。 (13) 3.消除图片具体情况 (14) 3.1两次点击相同图片相邻 (14)

3.2水平方向消去算法 (14) 3.3竖直方向消去算法 (15) 第五章程序清单 (16) 第六章结束语 (24) 第七章参考文献 (25) 第一章引言 1.背景 游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。 游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。并于2004年,取得了国家版权局的计算机软件著作权登记证书。 随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。如“水晶连连看”、“果蔬连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。 2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。 网络小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。连连看游戏就是典型。 不管走到哪个网页游戏网站,连连看游戏总是排在受玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络、单机休闲小游戏。 游戏《连连看》,只要将相同的两张牌用三根以内的直线连在一起就可以消除,规则简单容易上手。游戏速度节奏快,画面清晰可爱,适合细心的玩家。丰富的道具和公共模式的加入,增强游戏的竞争性。多样式的地图,使玩家在各个游戏水平都可以寻找到挑战的目标,长期地保持游戏的新鲜感。 该游戏由30张不同的图片组成,游戏开始将会出现30张随机组合的图片,在规则下点击两张相同的图片后图片将会消失。图片全部消完为游戏成功。游戏还将设置退出,再来一局的按钮,并实现该功能,方便用户进行操作。

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

java课程设计简单记事本开发内附完整代码流程图等

浙江科技学院 经济管理学院 JAVA语言课程设计报告 选题名称简单记事本开发 学生学号 专业班级 学生姓名 学生成绩 指导教师朱军 工作时间2012/06/27——2012/06/29

目录 第一章选题简介 主要利用面向对象的程序设计语言Java来实现简单记事本,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切,查找,替换等功能,区别于一般的记事本,本程序利用了Java swing和事件监听等能够对文字的颜色进行设置。 第二章需求分析 1.系统要实现的目标分析 菜单中有文件,编辑,格式,视图风格,帮助五个主菜单。 (1)“文件”有新建、打开、保存、另存为、退出五个子菜单:分别用于新建文件,打开文件,保存文件,更改存储地址,退出记事本。 (2)“编辑”中有复制、剪切、粘贴、删除、查找、查找下一个、替换、替换下一个、全选、日期/时间十个字菜单:用于复制文字,剪切文字,粘贴文字,删除文字,查找文字,查找下一个文字,替换文字,替换下一个文字,选择文字,添加日期和者时间。 (3)“格式”中有字体样式、字体大小、字体颜色,自动换行。字体样式中又包含了正常、粗体、斜体3中字体样式,可以对文字的字体样式做修改。字体大小中又包含了最大、较大、适中、较小、最小这5个大小范围。字体颜色可以对字体进行颜色上的修改,是字体更加漂亮。自动换行能够实现文档在编辑是需要的自动换行功能。 (4)“视图风格”中有MOTIF风格,默认风格,状态栏。当用户选择MOTIF 风格,软件界面会切换成MOTIF风格界面。当用户选择默认风格,软件界面会切换成默认风格界面。点击状态栏时可以对状态栏进行显示和隐藏。 (5)“帮助”中有帮助主题和关于,可以解决用户在使用记事本中的一些问题。 (6)“快捷键”,在菜单栏下面增加了一排快捷键,可以对稳定进行快速的修改、操作等命令。快捷键主要有新建、打开、保存、复制、剪切、黏贴、删除、查找、字体颜色、帮助主题、退出。 2.对输入输出数据及流程的分析 本次设计中,设计了一个菜单栏和文本内容区。设计过程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。JMenu用来制作菜单,JTextPane主要用来输入文本。为了加入颜色的设置,所以加了一个JColorChooser组件。整个记事本分为2块:菜单栏和内容输入区。本程序中首先定义一个myfr类继承JFrame作为最底层容器。Textcontent为程序文本输入区。Menu为菜单栏。AboutDialog为关于对话框。要想记事本完成需求分析中相

Java英汉电子字典课程设计源代码

用户需求分析: 英汉词典作为一个常用的学习工具,是我们经常要使用的。该系统能完成一个简单的电子词的功能。该系统主要用于实现英汉互译的功能,系统拥有自己的数据库。 1.英译汉功能:我们可以先选择让系统进行英译汉功能,然后在查找框中输入想要查询的英文单词,系统将自动在数据库中查找匹配记录并给出相对应的汉语意思。 2.汉译英功能:我们可以在系统中选择汉译英功能,然后在查找框中输入想要查询的汉语意思,系统将自动在数据库中查找匹配记录并给出相对应的英文单词 3.词汇的添加功能:用户可以添加词库没有的单词及其解释。添加成功后该单词将在次库保存,以便下次查询。 4.词汇的修改功能;用户可以实现对词库中已有单词及其解释的修改。修改后的结果将保存在词库中。 5.词汇的删除功能;用户可自行删除词库中已有的单词,同时次单词的解释也将被一同删除。 6.其他功能:此外,系统还具有帮助和关于等功能,用来辅助用户更方便简洁的使用电子词典。 package dianzicidian; import java.awt.*; import https://www.wendangku.net/doc/225915656.html,.*; import java.sql.*; import java.awt.event.*; import javax.swing.JOptionPane; import java.io.*; import sun.audio.*; class dzcd extends Frame implements ActionListener { MenuBar menubar=new MenuBar();//菜单 Menu fileMenu,editMenu,helpMenu; MenuItem fileenglish,filechinese,exit,editAdd,editmod,editDel; TextField inputtext; TextArea txt; Label label1,label2; Button btn1,btnsound; Panel p,p1,p2,p3; dzcd() { super("电子词典"); setBounds(200,300,350,400); setMenuBar(menubar);

java课程设计-拼图游戏代码

package love; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; import javax.swing.*; public class Games extends JFrame implements ActionListener { private JButton buttons[][];// 存储按键的数组 private Container container;// 一个容器 private GridLayout layout;// 布局方式为GridLayout private int count = 0, is[] = new int[8];// count的作用是计算按键移动的次数,is[]储存一个随机产生的1到8数字数组 public Games() { super("拼图游戏");// 设置标题 layout = new GridLayout(3, 3);// 3行3列 container = getContentPane();// 该容器的布局方式,及其重要,否则产生空引用异常 container.setLayout(layout);// 将该布局方式作用于容器 buttons = new JButton[3][3];// 给按键数组分配储存空间 int locate1, locate2;// locate1用来指示当前产生的元素 locate2用来指示locate1之前的元素 for (locate1 = 0; locate1 < 8; locate1++) {// 该方法作用是产生1到8这8个数,随机分配给数组,即无序排列 int g = new Random().nextInt(8) + 1;// 随机产生一个空白按键,即不显示的那个 is[locate1] = g; for (locate2 = locate1 - 1; 0 <= locate2; locate2--) { if (is[locate1] == is[locate2]) break; } if (locate2 != -1) locate1--; } int temp = 0; int r = new Random().nextInt(3);// 随机产生一个0到3的数,代表空白按键的行 int l = new Random().nextInt(3);// 随机产生一个0到3的数,代表空白按键的列 for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) {

5_Java课程设计源代码

package zhouchuan; import java.applet.*; import java.awt.*; import java.awt.event.*; import https://www.wendangku.net/doc/225915656.html,.*; public class zhouchuan extends Applet implements ActionListener { AudioClip clip; Button buttonPlay, buttonLoop, buttonStop; public void init(){ try{ URL url=new URL("file:"+"F://ding.wav"); clip=getAudioClip(url);}catch(Exception e){ } buttonPlay=new Button("开始播放"); buttonLoop=new Button("循环播放"); buttonStop=new Button("停止播放"); buttonPlay.addActionListener(this); buttonStop.addActionListener(this); buttonLoop.addActionListener(this); add(buttonPlay); add(buttonLoop); add(buttonStop); } public void stop(){ clip.stop(); } public void actionPerformed(ActionEvent e){ if(e.getSource()==buttonPlay) clip.play(); else if(e.getSource()==buttonLoop) clip.loop();

java课程设计2013级大纲以及设计报告

珠海学院课程教学大纲 课程名称:java程序课程设计 适用专业: 2013级计算机科学与技术 课程类别:专业基础课 制订时间:2014年12月 计算机科学与技术系制

目录 1java程序课程设计教学大纲 2 java程序课程设计说明书 3 java程序课程设计报告(模板) 4 java程序课程设计成绩评定表 java程序课程设计教学大纲 (2011年制订,2014年修订) 一、课程编号: 二、前修课程:java程序设计 三、学分:2学分 四、学时: 32学时 五、课程性质与任务: 1.课程性质:《java程序课程设计》是吉林大学珠海学院计算机科学与技术系为本科生各专业开设的专业实践课。计算机科学与技术系本科生在完成《java 程序设计》课程学习后,通过本课程进入专业实践训练环节,其主要目的是使学生深入理解并实践在《java程序设计》课程中所学的有关知识,通过课程设计增强学生的实践动手能力,提高学生独立分析和解决实际问题的能力。培养学生配合完成任务的能力,为学生毕业后的实际工作打好基础。 课程设计是培养学生综合运用所学知识锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。Java语言的应用十分广泛,例如大型信息系统、通信、网络控制等。java课程设计对增强学生对基础知识的掌握和综合运用是非常必要,对后续许多专业课程的学习和实践训练都具十分重要的意义。 2.课程任务:本课程要求学生在学习了java基础编程的相关技术后,将课本中多个章节的编程技术灵活运用到一些复杂的综合例题中去,使学生了解应用问题

的分析方法和设计解决实际问题的具体过程,掌握应用java进行程序设计的基本规范和技巧,掌握面向对象编程的设计思想,重点掌握java的基本语法规则、输入输出方法、网络编程、多线程编程、小应用程序、数据库编程的综合应用。通过编程掌握调试java程序的基本技巧、模块化应用程序和测试运行复杂应用程序的基本流程。 六、课程教学基本要求提供足够多的程序设计选题,题目应覆盖面较为广泛,部分题目要具有开放性,要求每个学生根据自己的实际情况选择题目,经教师批准后即可进入实际工作阶段。 课程设计结束对每个学生进行验收,要求每个学生提交合格的课程设计报告,还要保证程序能够运行,能够讲清楚自己的工作。老师在检查过程中可针对程序提出问题,学生回答,若程序无法运行得到结果并且具有大量编译错误,而且对程序的内容无法正确解释,则实践老师可以根据实际情况给予评分为不及格,若程序可以运行,但完成的界面以及方法不够完善,则酌情扣分,若程序运行无问题,则提问回答不好的也要相应扣分。课程设计课程集中安排在第十一周。每个同学都要提交初期、中期和最后的文档,提交课程设计报告,要求在规定时间内提交文档。最后验收时,若文档不全,成绩受到一定影响。 七、学时分配表 2011年 12 月8日 java程序课程设计说明书

java课设走迷宫(含代码)

目录1.设计目的 课程设计的目的 2.总体设计 设计思路 设计方法 3.关键技术 4.程序流程 5.主要源代码 6. 运行结果及结论 7. 参考文献

1.设计目的 课程设计的目的 随着科技进步,时代发展,计算机走进了大家的生活。计算机程序强大的功能为使用者提供服务,编程语言也变得越来越流行。 Java 语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。 为了进一步巩固课堂上所学到的知识,深刻把握 Java 语言的重要概念及其面向对象的特性,熟练应用面向对象的思想和设计方法解决实际问题的能力,也是为了增加同学们娱乐游戏选择而开发了一个适合学生的,能提升思考力的迷宫冒险游戏,这既锻炼了动手能力,还能进行消遣娱乐,可谓一举两得。 2.总体设计设计思路 根据对游戏系统进行的需求分析,本系统将分为 6 个模块:分别是迷宫 主界面模块、记时设计模块、迷宫设计模块、道路和障碍设计模块、动漫冒险者设计模块、出入口设计模块。实现的功能有:

(1)迷宫的选择 玩家可以根据自身需求来进行选择简单迷宫、中等迷宫、难度迷宫三类中选择一类迷宫进行游戏。 (2)选择道路和障碍的图像 玩家可以根据个人喜好对迷宫中的道路和障碍的图片进行选择,但是图片的格式有规定,必须是“ jpg ”或“ gif ”格式的。 (3)游戏记时 当玩家控制迷宫中的动漫人物进行游戏时,计时器就开始进行记时,直 到动漫人物到达出口时,记时结束,并在屏幕上显示游戏用时。 (4)开始游戏 玩家将鼠标移动至迷宫中的动漫冒险者,即可看到“单击我然后按键盘 方向键”,单击后,游戏开始。玩家即可通过键盘上的方向键进行游戏。 (5)游戏结束 玩家控制动漫冒险者移动至迷宫地图的出口处时,游戏的计时器停止计时,并弹出信息框“恭喜您通关了” ,游戏结束 (6)冒险脚步声 玩家单击动漫冒险者后,便可以用键盘方向键进行控制。动漫冒险者每移动一步便会发出一声“嘟”的响声。

相关文档
相关文档 最新文档