当前位置:文档之家› JAVA课程设计-编写一个记事本程序

JAVA课程设计-编写一个记事本程序

Java语言程序设计B报告题目:编写一个记事本程序一.要求:用图形用户界面实现。

能实现编辑、保存、另存为、查找替换等功能。

提示:使用文件输入输出流。

二.课程设计思路。

设计两个类,一个记事本的类(JSB),具有程序的要求和功能再创建一个课设的主类(KESHE),在主类中创建一个JSB类的对象,就可以直接在编译器中运行程序。

在主界面中设计一个Frame容器,并在其中加入一个下拉菜单和一个文本域控件,把该容器设置为GridLayout(1,1)布局。

三.课程设计实现功能结构图。

3.1“文件”菜单。

3.2“编辑”菜单。

四.记事本实现功能代码实现。

4.1.界面设计。

主要代码:f=new Frame(s);p1=new TextArea("");f.setSize(400,600);f.setBackground(Color.white);f.setVisible(true);menubar=new MenuBar();menu1=new Menu("文件");menu2=new Menu("编辑");item1=new MenuItem("新建");item2=new MenuItem("打开");item3=new MenuItem("保存");item4=new MenuItem("另存为");item5=new MenuItem("退出");item6=new MenuItem("全选");item7=new MenuItem("复制");item8=new MenuItem("剪切");item9=new MenuItem("粘贴"); menu1.add(item1);menu1.add(item2);menu1.add(item4); menu1.add(item5); menu2.add(item6); menu2.add(item7); menu2.add(item8); menu2.add(item9); menubar.add(menu1); menubar.add(menu2);f.setMenuBar(menubar);程序代码实现截图:4.2功能代码详细设计。

4.2.1新建文件。

if (e.getSource()==item1){if (i==0&&(ss.length()!=0)){bc();}elsep1.setText("");i=0;f.setTitle("文件对话框");}4.2.2打开文件。

if (e.getSource()==item2){fd=new FileDialog(f,"打开文件",0);fd.setVisible(true);try{file=new File(fd.getDirectory(),fd.getFile());f.setTitle(fd.getFile()+"文件对话框");FileReader fr=new FileReader(file);BufferedReader br=new BufferedReader(fr);String line = null;String view = "";while((line=br.readLine())!=null){view += line+"\n";}p1.setText(view);br.close();}catch(IOException expIn){}}4.2.3复制文件。

if (e.getSource()==item7){try{String str=p1.getSelectedText();if(str.length()!=0){strt=str;}}catch(Exception ex){ }}4.2.4粘贴文件。

if (e.getSource()==item9){if(strt.length()>0){p1.insert(strt,p1.getCaretPosition()); }4.2.5退出记事本。

if (e.getSource()==item5){if (i==0 &&(ss.length()!=0)){}else{System.exit(0); }}五.JAVA课程设计个人总结。

这个学期我们学习了JAVA语言,这对于我们来说是一门十分陌生的编程语言,在学习的过程中,我感到了这门语言的学习有一定的困难,与C、C++语言相比需要克服的困难也相对多一些。

在学习了JAVA课程后,我们通过这次的JAVA课程设计复习和掌握我们学习的JAVA语言知识,并且在课程设计的过程中巩固和运用相关的知识,提高自己的JAVA编程能力。

通过这次的JAVA课程设计,我更好地了解了JAVA的编程方法,并且在遇到困难的时候,能主动请教身边的同学,不仅仅培养了我的编程能力,在与同学的交流中我也更好的培养了与其他人的交流能力,相信通过这次的JAVA课程设计,我更好地学习了JAVA,相信我自己在以后的学习中能继续学习JAVA,在更好地丰富自己JAVA知识的同时,积极提高自己的JAVA编程能力,在以后能更好地掌握JAVA 语言。

JA V A语言课程设计程序源代码:import java.io.*;import java.awt.*;import java.awt.event.*;class FileInAndOut{public static String fileInput(String fName){String strRead="";try {FileReader fr=new FileReader(fName);BufferedReader br=new BufferedReader(fr);String aline=new String();while((aline=br.readLine())!=null)strRead=strRead+aline;br.close();fr.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return strRead;}public static void fileWrite(String fName,String temp){try {FileWriter fw=new FileWriter(fName);BufferedWriter bw=new BufferedWriter(fw);bw.write(temp);bw.close();fw.close();} catch (IOException e) {e.printStackTrace();}}}public class MyNote implements ActionListener{private Frame f;private TextArea ta;private MenuBar mb;private String strme[]={"文件","编辑","帮助"};private String strmi[][]={{"新建","打开","保存","退出"},{"剪切","拷贝","粘贴","查找"},private String fileDir,fileName,temp="";private Menu me[];private MenuItem mi[][];private Label l1,l2;private TextField t1,t2;private Button b1,b2,b3;private Dialog diaFind,diaAbout;public MyNote(){f=new Frame("我的记事本");ta=new TextArea();f.add(ta);mb=new MenuBar();f.setMenuBar(mb);mi=new MenuItem[strme.length][];me=new Menu[strme.length];for(int i=0;i<strme.length;i++){me[i]=new Menu(strme[i]);mb.add(me[i]);mi[i]=new MenuItem[strmi[i].length];for(int j=0;j<strmi[i].length;j++){mi[i][j]=new MenuItem(strmi[i][j]);me[i].add(mi[i][j]);mi[i][j].addActionListener(this);}}f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ System.exit(0);}});f.setSize(400,300);f.show();diaFind=new Dialog(f,"查找",true);diaFind.setLayout(new FlowLayout());diaFind.setSize(260,120);l1=new Label("查找内容");l2=new Label("替换为");t1=new TextField(20);t2=new TextField(20);b1=new Button("下一个");b2=new Button("替换");b3=new Button("取消");diaFind.add(l1);diaFind.add(t1);diaFind.add(l2);diaFind.add(t2);diaFind.add(b1);diaFind.add(b2);diaFind.add(b3);diaFind.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){diaFind.dispose();}});}public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();if(cmd.equals("新建")){fileDir="";fileName="";ta.setText("");f.setTitle("我的记事本");}if(cmd.equals("打开")){FileDialog diaOpen=new FileDialog(f,"",FileDialog.LOAD);diaOpen.show();fileDir=diaOpen.getDirectory();fileName=diaOpen.getFile();if(!fileName.equals("")){ta.setText(FileInAndOut.fileInput(fileDir+fileName));f.setTitle(fileName+"我的记事本");}}if(cmd.equals("保存")){FileDialog diaSave=new FileDialog(f,"",FileDialog.SA VE);diaSave.show();fileDir=diaSave.getDirectory();fileName=diaSave.getFile();if(!fileName.equals("")){FileInAndOut.fileWrite(fileDir+fileName,ta.getText());f.setTitle(fileName+"我的记事本");}}if(cmd.equals("退出")){System.exit(0);}if(cmd.equals("剪切")){int x,y;x=ta.getSelectionStart();y=ta.getSelectionEnd();temp=ta.getSelectedText();ta.replaceRange("",x,y);}if(cmd.equals("拷贝")){temp=ta.getSelectedText();}if(cmd.equals("粘贴")){ta.replaceRange(temp,ta.getSelectionStart(),ta.getSelectionEnd());}if(cmd.equals("查找")){diaFind.show();}if(cmd.equals("关于")){}}public static void main(String[] args) {new MyNote();}}。

相关主题