java记事本课程设计.docx

上传人:b****5 文档编号:30720323 上传时间:2023-08-19 格式:DOCX 页数:47 大小:240.42KB
下载 相关 举报
java记事本课程设计.docx_第1页
第1页 / 共47页
java记事本课程设计.docx_第2页
第2页 / 共47页
java记事本课程设计.docx_第3页
第3页 / 共47页
java记事本课程设计.docx_第4页
第4页 / 共47页
java记事本课程设计.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

java记事本课程设计.docx

《java记事本课程设计.docx》由会员分享,可在线阅读,更多相关《java记事本课程设计.docx(47页珍藏版)》请在冰豆网上搜索。

java记事本课程设计.docx

java记事本课程设计

 

JAVA语言课程设计报告

 

题目:

记事本的制作

设计者:

刘兴钢

专业班级:

信管07—班

学号:

************

********

 

2010年12月24日

河南理工大学计算机学院

 

 

1、系统需求分析

1.1系统名称:

Window记事本

1.2系统介绍:

开发一个window记事本,主要有一个主界面及以下功能:

1:

文件的新建,打开,保存,打印,另存等;

2:

对文件的编辑,如全选,复制,剪切,粘贴等;

3:

对文件的格式操作,如自动换行,字体等;

4:

帮助,包括帮助主题,关于。

1.3开发环境

Eclipse

2.系统总体设计

2.1系统功能结构图

2.2系统文件结构图

2.3系统编辑结构图

2.4系统格式、帮助结构图

3系统详细设计

3.1.主界面

主界面主要是用于对选择相应的功能进行相应的功能,主界面主要包括文件,编辑,格式,帮助四个下拉菜单功能。

重要代码:

创建界面,安装各种监听器

publicNotebook(){

setTitle("记事本--刘兴钢");

con=getContentPane();

text=newJTextArea();

JSPane=newJScrollPane(text);

createMenu();

createPopupMenu();

setJMenuBar(mainMenuBar);

con.add(JSPane,BorderLayout.CENTER);

text.setComponentPopupMenu(popMenu);

text.getDocument().addDocumentListener(this);

text.addKeyListener(newhandleKey());

text.addMouseListener(newhandleMouse());

setSize(400,300);

setVisible(true);

菜单代码

publicvoidcreateMenu(){

//创建JMenuBar

mainMenuBar=newJMenuBar();

//创建四个JMenu

fileMenu=newJMenu("文件");

editMenu=newJMenu("编辑");

formatMenu=newJMenu("格式");

helpMenu=newJMenu("帮助");

3.2.字体设计界面

主要代码

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.event.*;

importjava.awt.*;

publicclassfontDialogextendsJDialogimplementsActionListener,ListSelectionListener{

publicstaticfinalintCancle=0;

publicstaticfinalintOK=1;

publicstaticfinalString[]style={"正常","斜体","粗体","粗斜体"};

publicstaticfinalString[]size={"8","9","10","11","12","14","16",

"18","20","22","24","26","28","36","48","72"};

privateFontuserFont=null;

privateintuserSelect=Cancle;

privateJFrameparent=null;

privateContainercon;

privateJScrollPanenameSPane,styleSPane,sizeSPane;

privateJPanelpanel[];

privateJLabelnameLbl,styleLbl,sizeLbl;

privateJTextFieldnameText,styleText,sizeText;

privateJListnameList,styleList,sizeList;

privateJButtonOKBtn,cancleBtn;

publicfontDialog(){

this(null);

}

publicfontDialog(JFrameowner){

super(owner,true);

parent=owner;

setTitle("字体");

con=getContentPane();

BoxLayoutbox=newBoxLayout(con,BoxLayout.Y_AXIS);

con.setLayout(box);

panel=newJPanel[4];

for(inti=0;i<3;i++){

panel[i]=newJPanel();

panel[i].setLayout(newGridLayout(1,3));

}

panel[3]=newJPanel();

panel[3].setLayout(newFlowLayout());

nameLbl=newJLabel("字体");

styleLbl=newJLabel("字形");

sizeLbl=newJLabel("大小");

panel[0].add(nameLbl);

panel[0].add(styleLbl);

panel[0].add(sizeLbl);

nameText=newJTextField("宋体");

nameText.setColumns(5);

nameText.setEditable(false);

styleText=newJTextField("正常");

styleText.setColumns(5);

styleText.setEditable(false);

sizeText=newJTextField("12");

sizeText.setColumns(5);

sizeText.setEditable(false);

panel[1].add(nameText);

panel[1].add(styleText);

panel[1].add(sizeText);

GraphicsEnvironmenteq=GraphicsEnvironment.getLocalGraphicsEnvironment();

String[]availableFonts=eq.getAvailableFontFamilyNames();

nameList=newJList(availableFonts);

nameList.addListSelectionListener(this);

nameSPane=newJScrollPane(nameList);

styleList=newJList(style);

styleList.addListSelectionListener(this);

styleSPane=newJScrollPane(styleList);

sizeList=newJList(size);

sizeList.addListSelectionListener(this);

sizeSPane=newJScrollPane(sizeList);

panel[2].add(nameSPane);

panel[2].add(styleSPane);

panel[2].add(sizeSPane);

OKBtn=newJButton("确定");

OKBtn.addActionListener(this);

cancleBtn=newJButton("取消");

cancleBtn.addActionListener(this);

panel[3].add(OKBtn);

panel[3].add(cancleBtn);

for(inti=0;i<4;i++)

con.add(panel[i]);

}

publicintshowFontDialog(){

setSize(300,300);

intx,y;

if(parent!

=null){

x=parent.getX()+30;

y=parent.getY()+30;

}else{

x=150;

y=100;

}

setLocation(newPoint(x,y));

setVisible(true);

returnuserSelect;

}

publicFontgetFont(){

returnuserFont;

}

publicvoidactionPerformed(ActionEvente){

intstyleIndex=Font.PLAIN,fontSize;

if(e.getSource()==OKBtn){

if(styleText.getText().equals("正常"))

styleIndex=Font.PLAIN;

if(styleText.getText().equals("斜体"))

styleIndex=Font.ITALIC;

if(styleText.getText().equals("粗体"))

styleIndex=Font.BOLD;

if(styleText.getText().equals("粗斜体"))

styleIndex=Font.BOLD|Font.ITALIC;

fontSize=Integer.parseInt(sizeText.getText());

userFont=newFont(nameText.getText(),styleIndex,fontSize);

userSelect=OK;

setVisible(false);

}else{

userSelect=Cancle;

setVisible(false);

}

}

publicvoidvalueChanged(ListSelectionEvente){

if(e.getSource()==nameList)

nameText.setText((String)nameList.getSelectedValue());

if(e.getSource()==styleList)

styleText.setText((String)styleList.getSelectedValue());

if(e.getSource()==sizeList)

sizeText.setText((String)sizeList.getSelectedValue());

}

}

3.3.保存界面

代码

intdoSave(){

FileOutputStreamfout;

bytecontent[];

intflag;

if(!

haveName){

flag=doSaveAs();

}elseif(changed){

try{

fout=newFileOutputStream(file);

content=text.getText().getBytes();

fout.write(content);

fout.close();

changed=false;

flag=1;

}catch(FileNotFoundExceptione){

JOptionPane.showMessageDialog(this,"指定的文件名称或属性有问题!

");

flag=0;

}catch(IOExceptione){

JOptionPane.showMessageDialog(this,"无法写文件,请检查文件是否被锁定");

flag=0;

}

}else{

flag=1;

}

returnflag;

}

3.4.打印设计界面

代码如下:

voiddoPrint(){

try{

PrintRequestAttributeSetpras=newHashPrintRequestAttributeSet();

DocFlavorflavor=DocFlavor.BYTE_ARRAY.AUTOSENSE;

PrintServiceprintService[]=PrintServiceLookup.lookupPrintServices(flavor,pras);

PrintServicedefaultService=PrintServiceLookup.lookupDefaultPrintService();

PrintServiceservice=null;

service=ServiceUI.printDialog(null,100,100,printService,defaultService,flavor,pras);

if(service!

=null){

DocPrintJobjob=service.createPrintJob();

DocAttributeSetdas=newHashDocAttributeSet();

Docdoc=newSimpleDoc(text.getText().getBytes(),flavor,das);

job.print(doc,pras);//进行文件的打印

}

}catch(Exceptione){

JOptionPane.showMessageDialog(this,"打印任务无法完成");

}

}

3.5.查找设计界面

代码如下:

publicfindDialog(JFrameowner,JTextAreaJtext){

super(owner,false);

start=0;

text=Jtext;

panel1=newJPanel();

panel1.setLayout(newFlowLayout());

panel2=newJPanel();

panel2.setLayout(newFlowLayout());

label1=newJLabel("查找内容");

findEdit=newJTextField(12);

OKBtn=newJButton("查找下一个");

OKBtn.addActionListener(this);

panel1.add(label1);

panel1.add(findEdit);

panel1.add(OKBtn);

checkBox=newJCheckBox("区分大小写");

checkBox.setSelected(true);

upBtn=newJRadioButton("向上");

downBtn=newJRadioButton("向下",true);

dirBtnGroup=newButtonGroup();

dirBtnGroup.add(upBtn);

dirBtnGroup.add(downBtn);

CancleBtn=newJButton("取消");

CancleBtn.addActionListener(this);

panel2.add(checkBox);

panel2.add(upBtn);

panel2.add(downBtn);

panel2.add(CancleBtn);

con=getContentPane();

con.setLayout(newFlowLayout());

con.add(panel1);

con.add(panel2);

setTitle("查找");

setSize(300,120);

setVisible(true);

}

4软件测试

软件测试成功

5系统总结

总体来说,本次项目在规定期间顺利完成,记事本能够完成文件的编辑、保存、剪切,复制、查询、自动换行,字体设计和打印和页面设计等的相应功能。

6系统设计心得体会

经过一个星期的我的记事本的课程设计,我在老师及同学的指导帮助下,顺利完成该课程设计。

通过该课程设计,收获颇多。

首先,让我加深了对Java语言的理论知识的理解;

其次,让我更加熟练的掌握了Java语言的设计能力并且有了实践经验;

再次,在设计过程中,学到了老师没有在课堂上没有教授的知识;

最后,加强了我对Java语言的学习兴趣和好感。

7参考文献

[1]耿详义,张跃平.Java2实用教程.北京:

清华大学出版社,2004.2

[2]张利国.Java实用教程案例.北京:

清华大学出版社,2003.10

[3]周晓聪,等.面向对象程序设计与Java语言.北京:

机械工业出版社,2004.3

[4]李尊朝.Java语言程序设计.北京:

中国铁道出版社,2004.2

[5](美)PhilipHeller.ComplateJava2CertificationStudyGuideFourthEdition(Java2证学习指南)(第四版英文版).北京:

电子工业出版社,2004.1

附录:

程序清单

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjava.io.*;

importjavax.swing.event.*;

importjavax.print.*;

importjavax.print.attribute.*;

importjava.util.*;

importjava.text.*;

publicclassNotebookextendsJFrameimplementsActionListener,DocumentListener{

Containercon;

JScrollPaneJSPane;

JTextAreatext;

JMenuBarmainMenuBar;

JMenufileMenu,editMenu,formatMenu,helpMenu;

JMenuItemnewItem,openItem,saveItem,saveasItem,pageItem,printItem,exitItem;

JMenuItemundoItem,cutItem,copyItem,pasteItem,findItem,replaceItem,selectallItem,dateItem;

JCheckBoxMenuItemwrapItem;

JMenuItemfontItem;

JMenuItemhelpItem,aboutItem;

JPopupMenupopMenu;

fontDialogmyFontDialog=null;

booleanchanged=false;

booleanhaveName=false;

Filefile=null;

//主程序入口

publicstaticvoidmain(String[]args){

newNotebook();

}

//创建界面、安装各种监听器、

publicNotebook(){

setTitle("记事本--刘兴钢");

con=getContentPane();

text=newJTextArea();

JSPane=newJScrollPane(text);

createMenu();

createPopupMenu();

setJMenuBar(mainMenuBar);

con.add(JSPane,BorderLayout.CENTER);

text.setComponentPopupMenu(popMenu);

text.getDocument().addDocumentListener(this);

text.addKeyListener(newhandleKey());

text.addMouseListener(newhandleMouse());

setSize(400,300);

setVisible(true);

}

//创建主菜单

publicvoidcreateMenu(){

//创建JMenuBar

mainMenuBar=newJMenuBar();

//创建四个JMenu

fileMenu=newJMenu("文件");

editMenu=newJMenu("编辑");

formatMenu=newJMenu("格式");

helpMenu=newJMenu("帮助");

//创建JMenuItem并添加到对应的JMenu中

mainMenuBar.add(fileMenu);

newItem=newJMenuItem("新建");

openItem=newJMenuItem("打开..");

saveItem=newJMenuItem("保存..");

saveasItem=newJMenuItem("另存为..");

pageItem=newJMenuItem("页面设置..");

printItem=newJMenuItem("打印..");

exitItem=newJMenuItem("退出");

fileMenu.add(newItem);

fileMenu.add(openItem);

fileMenu.add(saveItem);

fileMenu.add(saveasItem);

fileMenu.addSeparator();

fileMenu.add(pageItem);

fileMenu.add(printItem);

fileMenu.addSeparator();

fileMenu.add(exitItem);

mainMenuBar.add(editMenu);

undoItem=newJMenuItem("撤消");

cutI

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1