12Java语言程序设计B报告3456题目:编写一个记事本程序78910一.要求:用图形用户界面实现。
能实现编辑、保存、另存为、查找替换11等功能。
提示:使用文件输入输出流。
12二.课程设计思路。
1314设计两个类,一个记事本的类(JSB),具有程序的要求和功能再创建一个15课设的主类(KESHE),在主类中创建一个JSB类的对象,就可以直接在编译器16中运行程序。
17在主界面中设计一个Frame容器,并在其中加入一个下拉18菜单和一个文本域控件,把该容器设置为GridLayout(1,1)布局。
19三.课程设计实现功能结构图。
203.1“文件”菜单。
212223243.2“编辑”菜单。
2526四.记事本实现功能代码实现。
274.1.界面设计。
2829主要代码:30f=new Frame(s);31p1=new TextArea("");32f.setSize(400,600);33f.setBackground(Color.white);34f.setVisible(true);35menubar=new MenuBar();36menu1=new Menu("文件");37menu2=new Menu("编辑");38item1=new MenuItem("新建"); 39item2=new MenuItem("打开"); 40item3=new MenuItem("保存"); 41item4=new MenuItem("另存为");42item5=new MenuItem("退出"); 43item6=new MenuItem("全选"); 44item7=new MenuItem("复制"); 45item8=new MenuItem("剪切");46item9=new MenuItem("粘贴");47menu1.add(item1);48menu1.add(item2);49menu1.add(item4);menu1.add(item5);5051menu2.add(item6);52menu2.add(item7);53menu2.add(item8);54menu2.add(item9);55menubar.add(menu1);menubar.add(menu2);5657f.setMenuBar(menubar);5859606162636465666768697071程序代码实现截图:7273747576774.2功能代码详细设计。
784.2.1新建文件。
if (e.getSource()==item1)7980{81if (i==0&&(ss.length()!=0))82{83bc();84}85else86p1.setText("");i=0;f.setTitle("文件对话框");87}4.2.2打开文件。
8889if (e.getSource()==item2)90{91fd=new FileDialog(f,"打开文件",0);92fd.setVisible(true);93try{94file=new File(fd.getDirectory(),fd.getFile());95f.setTitle(fd.getFile()+"文件对话框");96FileReader fr=new FileReader(file);97BufferedReader br=new BufferedReader(fr);98String line = null;99String view = "";100while((line=br.readLine())!=null)101{102view += line+"\n";103}104p1.setText(view);105br.close();fr.close();106107}108catch(IOException expIn)109{}110}1114.2.3复制文件。
112if (e.getSource()==item7)113{114try{115String str=p1.getSelectedText(); 116if(str.length()!=0)117{118strt=str;119}120}catch(Exception ex)121{ }122}1234.2.4粘贴文件。
if (e.getSource()==item9)124125{126if(strt.length()>0)127{128p1.insert(strt,p1.getCaretPosition()); 129}1304.2.5退出记事本。
131if (e.getSource()==item5)132{133if (i==0 &&(ss.length()!=0))134{135bc();136}137else138{139System.exit(0);140}141}142143144145146147148149150151152153154155156157158159160161162163五.JAVA课程设计个人总结。
164165这个学期我们学习了JAVA语言,这对于我们来说是一门十分陌生的166编程语言,在学习的过程中,我感到了这门语言的学习有一定的困难,与C、C++ 167语言相比需要克服的困难也相对多一些。
在学习了JAVA课程后,我们通过这次168的JAVA课程设计复习和掌握我们学习的JAVA语言知识,并且在课程设计的过169程中巩固和运用相关的知识,提高自己的JAVA编程能力。
通过这次的JAVA课程设计,我更好地了解了JAVA的编程方法,并且170171在遇到困难的时候,能主动请教身边的同学,不仅仅培养了我的编程能力,在172与同学的交流中我也更好的培养了与其他人的交流能力,相信通过这次的JAVA课程设计,我更好地学习了JAVA,相信我自己在以后的学习中能继续学习JAVA,173174在更好地丰富自己JAVA知识的同时,积极提高自己的JAVA编程能力,在以后能更好地掌握JAVA语言。
175176177178179180181182183184JAVA语言课程设计程序源代码:185import java.io.*;import java.awt.*;186187import java.awt.event.*;188189class FileInAndOut190{191public static String fileInput(String fName)String strRead="";193194try {195FileReader fr=new FileReader(fName);196BufferedReader br=new BufferedReader(fr);197String aline=new String();198while((aline=br.readLine())!=null)199strRead=strRead+aline;200br.close();201fr.close();202} catch (FileNotFoundException e) {203e.printStackTrace();204} catch (IOException e) {205e.printStackTrace();206}207return strRead;208}209210public static void fileWrite(String fName,String temp)try {212213FileWriter fw=new FileWriter(fName);214BufferedWriter bw=new BufferedWriter(fw); 215bw.write(temp);216bw.close();217fw.close();218} catch (IOException e) {219e.printStackTrace();220}221}222}223224public class MyNote implements ActionListener225{226private Frame f;227private TextArea ta;228private MenuBar mb;229private String strme[]={"文件","编辑","帮助"};private String strmi[][]={{"新建","打开","保存","退出"},{"剪切230231","拷贝","粘贴","查找"},232private String fileDir,fileName,temp="";private Menu me[];233234private MenuItem mi[][];235private Label l1,l2;236private TextField t1,t2;237private Button b1,b2,b3;238private Dialog diaFind,diaAbout;239public MyNote(){240241f=new Frame("我的记事本");242ta=new TextArea();f.add(ta);243244mb=new MenuBar();245f.setMenuBar(mb);246mi=new MenuItem[strme.length][];247me=new Menu[strme.length];248for(int i=0;i<strme.length;i++){me[i]=new Menu(strme[i]);249250mb.add(me[i]);251mi[i]=new MenuItem[strmi[i].length];252for(int j=0;j<strmi[i].length;j++){253mi[i][j]=new MenuItem(strmi[i][j]); 254me[i].add(mi[i][j]);255mi[i][j].addActionListener(this);256}257}258f.addWindowListener(new WindowAdapter(){259public void windowClosing(WindowEvent e){ 260System.exit(0);261}262});263f.setSize(400,300);264f.show();265diaFind=new Dialog(f,"查找",true);266diaFind.setLayout(new FlowLayout());l1=new Label("查找内容");268269l2=new Label("替换为");270t1=new TextField(20);t2=new TextField(20);271272b1=new Button("下一个");273b2=new Button("替换");274b3=new Button("取消");275diaFind.add(l1);276diaFind.add(t1);diaFind.add(l2);277278diaFind.add(t2);279diaFind.add(b1);280diaFind.add(b2);281diaFind.add(b3);282diaFind.addWindowListener(new WindowAdapter() 283{284public void windowClosing(WindowEvent e){286}287});288}289290public void actionPerformed(ActionEvent e){String cmd=e.getActionCommand();291292if(cmd.equals("新建")){293fileDir="";294fileName="";295ta.setText("");296f.setTitle("我的记事本");297}298299if(cmd.equals("打开")){300FileDialog diaOpen=new 301FileDialog(f,"",FileDialog.LOAD);302diaOpen.show();303fileDir=diaOpen.getDirectory();304fileName=diaOpen.getFile();305if(!fileName.equals("")){306307ta.setText(FileInAndOut.fileInput(fileDir+fileName));308f.setTitle(fileName+"我的记事本");309}310}311312if(cmd.equals("保存")){313FileDialog diaSave=new 314FileDialog(f,"",FileDialog.SAVE);315diaSave.show();316fileDir=diaSave.getDirectory();317fileName=diaSave.getFile();318if(!fileName.equals("")){319FileInAndOut.fileWrite(fileDir+fileName,ta.getText()); 320f.setTitle(fileName+"我的记事本");321}322}323324if(cmd.equals("退出")){325System.exit(0);326}327328if(cmd.equals("剪切")){329int x,y;330x=ta.getSelectionStart();331y=ta.getSelectionEnd();332temp=ta.getSelectedText();333ta.replaceRange("",x,y);334}335336if(cmd.equals("拷贝")){337temp=ta.getSelectedText();338}339if(cmd.equals("粘贴")){340341ta.replaceRange(temp,ta.getSelectionStart(),ta.getSelectionEnd()) 342;}343344345if(cmd.equals("查找")){diaFind.show();346347}348349if(cmd.equals("关于")){350}351352}353354public static void main(String[] args) { 355new MyNote();356}357}358359360361362。