Java程序设计 记事本
我用java编写的记事本代码,分享给大家

backcolor.add(white); backcolor.addSeparator();
backcolor.add(pink); backcolor.addSeparator();
backcolor.add(morecolor);
JMenuItem red=new JMenuItem("红色");//","橙","黄","","青","蓝","紫","黑","灰","白","粉红"
JMenuItem green=new JMenuItem("绿色");
JMenuItem yellow=new JMenuItem("黄色");
clear.setFont(a); clear.setForeground(Color.MAGENTA);
paste.setFont(a); paste.setForeground(Color.MAGENTA);
cut.setFont(a); cut.setForeground(Color.MAGENTA);
JMenuItem black=new JMenuItem("黑色");
JMenuItem gray=new JMenuItem("灰色");
JMenuItem white=new JMenuItem("白色");
JMenuItem pink=new JMenuItem("粉红");
java课程设计

课程设计(论文)题目名称记事本程序课程名称java 程序设计课程设计学生姓名学号系、专业指导教师2010年1 月3 日摘要本次课程设计的题目是用JA V A语言编写记事本程序,要求是:用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。
本程序主要用到了Java swing组件和事件监听器,还用到了文件的输入输出流。
记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。
关键词:记事本程序;Java语言;swing组件目录1 问题描述 (3)2 需求分析 (3)3 概要设计 (3)3.1自定义类说明 (3)3.2 程序流程图 (7)4 详细设计 (7)4.1 jishiben类的实现 (7)4.2 GUI程序界面设计 (7)4.3 事件处理 (9)5 测试分析 (12)6 课程设计总结 (16)6.1设计体会 (16)6.2致谢 (16)参考文献 (17)附录(源程序清单) (18)1 问题描述设计一个具有GUI界面的记事本,含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。
这次课程设计由卢炜、刘秀春、伍霜霜和我四个人合作完成。
卢炜负责概要设计,刘秀春负责4.1 jishiben类的实现和4.2 GUI程序界面设计,伍霜霜负责5测试分析。
由于4.3事件处理和撰写程序关系密切,这两项都由我负责。
并且根据伍霜霜的测试的结果重新调整程序。
2 需求分析本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:(1)、菜单中有“文件”、“编辑”、“帮助”三个主菜单;(2)、“文件”有“新建”、“打开”、“保存”、“另存为”、“退出”分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。
(3)、“编辑”中,有“剪切”、“复制”、“粘贴”、“删除”、“查找”、“替换”、“全选”七个子菜单:用于剪切文字,复制文字,粘贴文字,删除文字,查找文件中的指定的字符串,替换文件中的指定的字符串,选定整个文件。
java课程设计记事本设计报告

java课程设计记事本设计报告一、教学目标本课程旨在通过Java编程语言实现一个记事本应用程序,让学生掌握Java编程的基本概念和方法,培养学生的编程能力和解决问题的能力。
1.理解Java编程语言的基本语法和结构。
2.掌握Java编程中的数据类型、变量、运算符、控制语句等基本概念。
3.学习Java中的类和对象的概念,理解封装、继承和多态的原理。
4.熟悉Java中的常用类库和方法。
5.能够运用Java编程语言编写简单的程序。
6.能够使用Java编程语言实现一个记事本应用程序,包括文本的增删改查等功能。
7.能够分析并解决编程过程中遇到的问题。
情感态度价值观目标:1.培养学生的团队合作意识和沟通能力,通过小组合作完成项目。
2.培养学生的创新思维和解决问题的能力,鼓励学生进行自主学习和探索。
3.培养学生的学习兴趣和自信心,让学生感受到编程的乐趣和成就感。
二、教学内容本课程的教学内容主要包括Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现。
1.Java编程语言的基本概念和方法:–数据类型、变量、运算符、控制语句等基本概念。
–类和对象的概念,封装、继承和多态的原理。
–常用类库和方法的使用。
2.记事本应用程序的设计和实现:–用户界面设计:创建文本框、按钮等控件,实现用户输入和显示功能。
–文件操作:实现文件的打开、保存、关闭等功能,使用文件读写技术。
–文本处理:实现文本的增删改查等功能,使用数据结构和算法进行文本管理。
三、教学方法本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。
1.讲授法:教师通过讲解Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现,引导学生掌握相关知识。
2.讨论法:学生分组进行讨论,分享自己的理解和思路,互相学习和交流。
3.案例分析法:分析实际案例,让学生了解记事本应用程序的实际应用场景和设计思路。
4.实验法:学生通过编写代码和进行实验,实现记事本应用程序的功能,培养学生的实际编程能力和解决问题的能力。
使用记事本编写java程序进行自我介绍

使用记事本编写java程序进行自我介绍Hi, my name is Emily. I am a computer science student with a passion for coding and problem solving. 你好,我叫Emily。
我是一名对编程和问题解决充满热情的计算机科学学生。
I have always been fascinated by the endless possibilities that programming offers. 从小到大,我一直被编程所带来的无限可能所吸引。
My journey with Java began when I was in high school. I remember the first time I wrote a simple "Hello, World!" program and was amazed at how a few lines of code could produce a message on the screen. 我的Java之旅始于我高中时期。
记得第一次写了一个简单的“Hello, World!”程序时,我被几行代码是如何在屏幕上产生一条消息而震惊。
As I delved deeper into Java, I discovered its versatility and power. Java's object-oriented nature allows for the creation of complex, modular programs, which was incredibly appealing to me. 随着我对Java的深入了解,我发现它的多功能性和强大性。
Java的面向对象的特性允许创建复杂、模块化的程序,这对我来说非常吸引人。
One of my most memorable coding projects was when I developed a Java application for a school project. It was a teamwork project where I collaborated with my classmates, and together we built a program that helped students manage their time and tasks effectively. 我在编码项目中最难忘的经历之一,就是我为学校项目开发一个Java应用程序。
《Java》课程设计》记事本

《Java课程设计》记事本课程设计报告书目录一、设计课题二、设计目的三、操作环境四、设计场所(机房号、机器号或自己机器)五、设计过程(设计内容及主要程序模块)六、本次设计中用到的课程知识点(列出主要知识点)七、设计过程中遇到的问题及解决办法八、程序清单五、设计过程(设计内容及主要模块,不少于3000字)1.设计要求1)界面设计2)功能实现(1)文件菜单:新建、打开、保存、另存为、退出等。
(2)其中新建菜单项可以新建一个记事本程序;打开菜单项可以打开一个用户指定的文本文件,并将其内容显示在记事本的文本区域;保存和另存为菜单项可分别实现文件的保存和另存为3)编辑菜单:复制、剪切和粘贴等4)帮助菜单:软件版本信5)右键弹出快捷菜单2.总体设计1)功能模块图:图一功能模块图2)功能描述1、打开记事本。
首先是标准型的记事本,拥有文件、编辑。
格式和帮助。
如图1所示:图1标准型记事本界面2、在标准型的记事本界面中,进行的新建一个本件名字叫新记事本。
如图2记事本文件帮助新建打开保存另存为退出复制剪切粘贴编辑关于记事本右键快捷格式字体颜色图2新建记事本功能3、用打开文件打开刚刚新建的新记事本。
如图三所示。
图3—打开文件4、点击退出即可退出,如图4所示:图4—退出记事本5、点击帮助可以看到有关记事本的相关信息,其中有作者名、版本、许可条款、隐私声明等必要信息。
如图5所示:图5—帮助相关信息6、右键可实现复制、粘贴、剪切、清除等常用功能,方便用户可以快捷方便的使用记事本。
如图6所示:图6—右键功能7、编辑也可实现制、粘贴、剪切、清除等常用功能,方便用户选择自己适合的方式,自由选择方便的快捷方式使用。
如图7:图7—编辑八、程序清单package test;import java.io.File;import java.io.*;import java.awt.event.*;import java.awt.Toolkit;import java.awt.*;import javax.swing.*;import javax.swing.filechooser.*;public class Notebook extends JFrame implements ActionListener,ItemListener{ //组件创建JButton b_save,b_close; //按钮JTextArea textArea; //文本框File tempFile; //文件JPanel jp; //面板JMenu file,edit,style,help; //菜单JMenuItemf_new,f_open,f_save,f_close,f_saveas,e_copy, e_paste,e_cut,e_clear,e_selectAll,e_find,e_rep lace,s_font,s_color,h_editor,h_help; //菜单条JMenuBar jmb;JScrollPane jsp; //滚动面板JPopupMenu popUpMenu = new JPopupMenu(); //右键弹出式菜单JLabel stateBar;//标签JLabel jl,jj;JFileChooser jfc = new JFileChooser(); //文件选择JMenuItemje_copy,je_paste,je_cut,je_clear,je_selectAll,je _find,je_replace; //弹出式菜单条public Notebook(){jfc.addChoosableFileFilter(new FileNameExtensionFilter("文本文件(*.txt)","txt"));jmb = new JMenuBar();textArea = new JTextArea();jsp = new JScrollPane(textArea);file = new JMenu("文件");edit = new JMenu("编辑");style = new JMenu("格式");help = new JMenu("帮助");je_copy = new JMenuItem("复制(C) ");je_paste = new JMenuItem("粘贴(P) ");je_cut = new JMenuItem("剪切(X) ");je_clear = new JMenuItem("清除(D) ");je_selectAll = new JMenuItem("全选(A) ");je_find = new JMenuItem("查找(F) ");je_replace = new JMenuItem("替换(R) ");je_copy.addActionListener(this); //给弹窗式的各组件添加监听器je_paste.addActionListener(this);je_cut.addActionListener(this);je_clear.addActionListener(this);je_selectAll.addActionListener(this);je_find.addActionListener(this);je_replace.addActionListener(this);//给界面上方的菜单条添加监听器f_new = new JMenuItem("新建(N)");f_new.setAccelerator(KeyStroke.getKeyS troke('N',InputEvent.CTRL_MASK,false)); //设置带修饰符快捷键f_new.addActionListener(this);f_open = new JMenuItem("打开(O)");f_open.setAccelerator(KeyStroke.getKey Stroke('O',InputEvent.CTRL_MASK,false));f_open.addActionListener(this);f_save = new JMenuItem("保存(S)");f_save.setAccelerator(KeyStroke.getKey Stroke('S',InputEvent.CTRL_MASK,false));f_save.addActionListener(this);f_saveas = new JMenuItem("另存为");f_saveas.setAccelerator(KeyStroke.getKe yStroke(KeyEvent.VK_S,InputEvent.CTRL_ MASK|InputEvent.SHIFT_MASK));f_saveas.addActionListener(this);f_close = new JMenuItem("退出(W)");f_close.setAccelerator(KeyStroke.getKey Stroke('W',InputEvent.CTRL_MASK,false));f_close.addActionListener(this);e_copy = new JMenuItem("复制(C)");e_copy.setAccelerator(KeyStroke.getKey Stroke('C',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_paste = new JMenuItem("粘贴(V)");e_paste.setAccelerator(KeyStroke.getKeyStro ke('V',InputEvent.CTRL_MASK,false));e_paste.addActionListener(this);e_cut = new JMenuItem("剪切(X)"); e_cut.setAccelerator(KeyStroke.getKeyStroke ('X',InputEvent.CTRL_MASK,false));e_cut.addActionListener(this);e_clear = new JMenuItem("清除(D)");e_clear.setAccelerator(KeyStroke.getKeyStrok e('D',InputEvent.CTRL_MASK,false));e_clear.addActionListener(this);e_selectAll = new JMenuItem("全选(A)");e_selectAll.setAccelerator(KeyStroke.getKey Stroke('A',InputEvent.CTRL_MASK,false));e_selectAll.addActionListener(this);e_find = new JMenuItem("查找(F)");e_find.setAccelerator(KeyStroke.getKeyStrok e('F',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_replace = new JMenuItem("替换(R)");e_replace.setAccelerator(KeyStroke.getK eyStroke('R',InputEvent.CTRL_MASK,false)) ;e_replace.addActionListener(this);s_font = new JMenuItem("字体(T)");s_font.setAccelerator(KeyStroke.getKeyStrok e('T',InputEvent.CTRL_MASK,false));s_font.addActionListener(this);s_color = new JMenuItem("颜色(C)...");s_color.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_C,InputEvent.CTRL_MAS K | InputEvent.SHIFT_MASK));s_color.addActionListener(this);h_editor = new JMenuItem("关于记事本");h_editor.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_E,InputEvent.CTRL_MAS K));h_editor.addActionListener(this);h_help = new JMenuItem("帮助信息(H)");h_help.setAccelerator(KeyStroke.getKeyStrok e(KeyEvent.VK_I,InputEvent.CTRL_MASK) );h_help.addActionListener(this);//添加右键弹出式菜单popUpMenu.add(je_copy);popUpMenu.add(je_paste);popUpMenu.add(je_cut);popUpMenu.add(je_clear);popUpMenu.addSeparator();popUpMenu.add(je_selectAll);popUpMenu.add(je_find);popUpMenu.add(je_replace);//编辑区鼠标事件,点击右键弹出"编辑"菜单textArea.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e) {if(e.getButton() == MouseEvent.BUTTON3)popUpMenu.show(e.getComponent(), e.getX(), e.getY());} //e.getComponent()和textArea具有同等效果public void mouseClicked(MouseEvent e){if(e.getButton() == MouseEvent.BUTTON1)popUpMenu.setVisible(false);}});this.setJMenuBar(jmb);this.setTitle("记事本程序");file.add(f_new); //添加文件菜单组件file.add(f_open);file.addSeparator(); //加分隔线file.add(f_save);file.add(f_saveas);file.addSeparator();file.add(f_close);edit.add(e_copy); //添加编辑菜单组件edit.add(e_paste);edit.add(e_cut);edit.add(e_clear);edit.addSeparator();edit.add(e_selectAll);edit.add(e_find);edit.add(e_replace);style.addSeparator();style.add(s_font);style.add(s_color);jmb.add(file); //添加格式菜单组件jmb.add(edit);jmb.add(style);jmb.add(help);help.add(h_editor); //添加帮助菜单组件help.add(h_help);//textArea.setWrapStyleWord(true); //设置在单词过长的时候是否要把长单词移到下一行。
Java记事本源代码(完整)

/*** 作品:记事本* 作者:**** 功能:简单的文字编辑*/import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;class NotePad extends JFrame{private JMenuBar menuBar;private JMenu fielMenu,editMenu,formMenu,aboutMenu;private JMenuItemnewMenuItem,openMenuItem,saveMenuItem,exitMenuItem;private JMenuItemcutMenuItem,copyMenuItem,pasteMenuItem,foundItem,replaceItem,s electAll;private JMenuItem font,about;private JTextArea textArea;private JFrame foundFrame,replaceFrame;private JCheckBoxMenuItem wrapline;private JTextField textField1=new JTextField(15);private JTextField textField2=new JTextField(15);private JButton startButton,replaceButton,reallButton;int start=0;String value;File file=null;JFileChooser fileChooser=new JFileChooser();boolean wrap=false;public NotePad(){//创建文本域textArea=new JTextArea();add(new JScrollPane(textArea),BorderLayout.CENTER);//创建文件菜单及文件菜单项fielMenu=new JMenu("文件");fielMenu.setFont(new Font("微软雅黑",0,15));newMenuItem=new JMenuItem("新建",newImageIcon("icons\\new24.gif"));newMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));newMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_N,InputEvent.CTRL_MASK));newMenuItem.addActionListener(listener);openMenuItem=new JMenuItem("打开",newImageIcon("icons\\open24.gif"));openMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));openMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent .VK_O,InputEvent.CTRL_MASK));openMenuItem.addActionListener(listener);saveMenuItem=new JMenuItem("保存",newImageIcon("icons\\save.gif"));saveMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent .VK_S,InputEvent.CTRL_MASK));saveMenuItem.addActionListener(listener);exitMenuItem=new JMenuItem("退出",newImageIcon("icons\\exit24.gif"));exitMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));exitMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent .VK_E,InputEvent.CTRL_MASK));exitMenuItem.addActionListener(listener);//创建编辑菜单及菜单项editMenu=new JMenu("编辑");editMenu.setFont(new Font("微软雅黑",0,15));cutMenuItem=new JMenuItem("剪切",newImageIcon("icons\\cut24.gif"));cutMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_X,InputEvent.CTRL_MASK));cutMenuItem.addActionListener(listener);copyMenuItem=new JMenuItem("复制",newImageIcon("icons\\copy24.gif"));copyMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent .VK_C,InputEvent.CTRL_MASK));copyMenuItem.addActionListener(listener);pasteMenuItem=new JMenuItem("粘贴",newImageIcon("icons\\paste24.gif"));pasteMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEven t.VK_V,InputEvent.CTRL_MASK));pasteMenuItem.addActionListener(listener);foundItem=new JMenuItem("查找");foundItem.setFont(new Font("微软雅黑",Font.BOLD,13));foundItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK _F,InputEvent.CTRL_MASK));foundItem.addActionListener(listener);replaceItem=new JMenuItem("替换");replaceItem.setFont(new Font("微软雅黑",Font.BOLD,13));replaceItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_R,InputEvent.CTRL_MASK));replaceItem.addActionListener(listener);selectAll=new JMenuItem("全选");selectAll.setFont(new Font("微软雅黑",Font.BOLD,13));selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK _A,InputEvent.CTRL_MASK));selectAll.addActionListener(listener);//创建格式菜单及菜单项formMenu=new JMenu("格式");formMenu.setFont(new Font("微软雅黑",0,15));wrapline=new JCheckBoxMenuItem("自动换行");wrapline.setFont(new Font("微软雅黑",Font.BOLD,13));wrapline.addActionListener(listener);wrapline.addChangeListener(new ChangeListener() {public void stateChanged(ChangeEvent e) {if(wrapline.isSelected()){textArea.setLineWrap(true);}elsetextArea.setLineWrap(false);}});font=new JMenuItem("字体");font.setFont(new Font("微软雅黑",Font.BOLD,13)); font.addActionListener(listener);//创建关于菜单aboutMenu=new JMenu("关于");aboutMenu.setFont(new Font("微软雅黑",0,15)); about=new JMenuItem("记事本……");about.setFont(new Font("微软雅黑",Font.BOLD,13)); about.addActionListener(listener);//添加文件菜单项fielMenu.add(newMenuItem);fielMenu.add(openMenuItem);fielMenu.add(saveMenuItem);fielMenu.addSeparator();fielMenu.add(exitMenuItem);//添加编辑菜单项editMenu.add(cutMenuItem);editMenu.add(copyMenuItem);editMenu.add(pasteMenuItem);editMenu.add(foundItem);editMenu.add(replaceItem);editMenu.addSeparator();editMenu.add(selectAll);//添加格式菜单项formMenu.add(wrapline);formMenu.add(font);//添加关于菜单项aboutMenu.add(about);//添加菜单menuBar=new JMenuBar();menuBar.add(fielMenu);menuBar.add(editMenu);menuBar.add(formMenu);menuBar.add(aboutMenu);setJMenuBar(menuBar);//创建两个框架,用作查找和替换foundFrame=new JFrame();replaceFrame=new JFrame();//创建两个文本框textField1=new JTextField(15);textField2=new JTextField(15);startButton=new JButton("开始");startButton.addActionListener(listener);replaceButton=new JButton("替换为");replaceButton.addActionListener(listener);reallButton=new JButton("全部替换");reallButton.addActionListener(listener);}//创建菜单项事件监听器ActionListener listener=new ActionListener() {public void actionPerformed(ActionEvent e) {String name=e.getActionCommand();if(e.getSource() instanceof JMenuItem){if("新建".equals(name)){textArea.setText("");file=null;}if("打开".equals(name)){if(file!=null){fileChooser.setSelectedFile(file);}intreturnVal=fileChooser.showOpenDialog(NotePad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=fileChooser.getSelectedFile();}try{FileReader reader=new FileReader(file);int len=(int)file.length();char[] array=new char[len];reader.read(array,0,len);reader.close();textArea.setText(new String(array));}catch(Exception e_open){e_open.printStackTrace();}}}if("保存".equals(name)){if(file!=null){fileChooser.setSelectedFile(file);}intreturnVal=fileChooser.showSaveDialog(NotePad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=fileChooser.getSelectedFile();}try{FileWriter writer=new FileWriter(file);writer.write(textArea.getText());writer.close();}catch (Exception e_save) {e_save.getStackTrace();}}if("退出".equals(name)){System.exit(0);}if("剪切".equals(name)){textArea.cut();}if("复制".equals(name)){textArea.copy();}if("粘贴".equals(name)){textArea.paste();}if("查找".equals(name)){value=textArea.getText();foundFrame.add(textField1,BorderLayout.CENTER);foundFrame.add(startButton,BorderLayout.SOUTH);foundFrame.setLocation(300,300);foundFrame.setTitle("查找");foundFrame.pack();foundFrame.setVisible(true);foundFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE );}if("替换".equals(name)){value=textArea.getText();JLabel label1=new JLabel("查找内容:");JLabel label2=new JLabel("替换为:");JPanel panel1=new JPanel();panel1.setLayout(new GridLayout(2,2));JPanel panel2=new JPanel();panel2.setLayout(new GridLayout(1,3));replaceFrame.add(panel1,BorderLayout.NORTH);replaceFrame.add(panel2,BorderLayout.CENTER);panel1.add(label1);panel1.add(textField1);panel1.add(label2);panel1.add(textField2);panel2.add(startButton);panel2.add(replaceButton);panel2.add(reallButton);replaceFrame.setTitle("替换");replaceFrame.setLocation(300,300);replaceFrame.pack();replaceFrame.setVisible(true);replaceFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLO SE);}if("开始".equals(name)||"下一个".equals(name)){String temp=textField1.getText();int s=value.indexOf(temp,start);if(value.indexOf(temp,start)!=-1){textArea.setSelectionStart(s);textArea.setSelectionEnd(s+temp.length());textArea.setSelectedTextColor(Color.GREEN);start=s+1;startButton.setText("下一个");}else {JOptionPane.showMessageDialog(foundFrame, "查找完毕!", "提示", 0,new ImageIcon("icons\\search.gif"));foundFrame.dispose();}}if("替换为".equals(name)){String temp=textField1.getText();int s=value.indexOf(temp,start);if(value.indexOf(temp,start)!=-1){textArea.setSelectionStart(s);textArea.setSelectionEnd(s+temp.length());textArea.setSelectedTextColor(Color.GREEN);start=s+1;textArea.replaceSelection(textField2.getText());}else {JOptionPane.showMessageDialog(foundFrame, "查找完毕!", "提示", 0,new ImageIcon("icons\\search.gif"));foundFrame.dispose();}}if("全部替换".equals(name)){String temp=textArea.getText();temp=temp.replaceAll(textField1.getText(),textField2.getTex t());textArea.setText(temp);}if("全选".equals(name)){textArea.selectAll();}if("字体".equals(name)){FontDialog fontDialog=newFontDialog(NotePad.this);fontDialog.setVisible(true);if(textArea.getFont()!=fontDialog.getFont()){textArea.setFont(fontDialog.getFont());}}if("记事本……".equals(name)){AboutDialog aboutDialog=newAboutDialog(NotePad.this);aboutDialog.setVisible(true);}}};//创建字体设置对话面板,并添加相应事件监听器class FontDialog extends JDialog implements ItemListener, ActionListener, WindowListener{public JCheckBox Bold=new JCheckBox("Bold",false);public JCheckBox Italic=new JCheckBox("Italic",false);public List Size,Name;public int FontName;public int FontStyle;public int FontSize;public JButton OK=new JButton("OK");public JButton Cancel=new JButton("Cancel");public JTextArea Text=new JTextArea("字体预览文本域\n0123456789\nAaBbCcXxYyZz");public FontDialog(JFrame owner) {super(owner,"字体设置",true);GraphicsEnvironmentg=GraphicsEnvironment.getLocalGraphicsEnvironment();String name[]=g.getAvailableFontFamilyNames();Name=new List();Size=new List();FontName=0;FontStyle=0;FontSize=8;int i=0;Name.add("Default Value");for(i=0;i<name.length;i++)Name.add(name[i]);for(i=8;i<257;i++)Size.add(String.valueOf(i));this.setLayout(null);this.setBounds(250,200,480, 306);this.setResizable(false);OK.setFocusable(false);Cancel.setFocusable(false);Bold.setFocusable(false);Italic.setFocusable(false);Name.setFocusable(false);Size.setFocusable(false);Name.setBounds(10, 10, 212, 259);this.add(Name);Bold.setBounds(314, 10, 64, 22);this.add(Bold);Italic.setBounds(388, 10, 64, 22);this.add(Italic);Size.setBounds(232, 10, 64, 259);this.add(Size);Text.setBounds(306, 40, 157, 157);this.add(Text);OK.setBounds(306, 243, 74, 26);this.add(OK);Cancel.setBounds(390, 243, 74, 26);this.add(Cancel);Name.select(FontName);Size.select(FontSize);Text.setFont(getFont());Name.addItemListener(this);Size.addItemListener(this);Bold.addItemListener(this);Italic.addItemListener(this);OK.addActionListener(this);Cancel.addActionListener(this);this.addWindowListener(this);}public void itemStateChanged(ItemEvent e) {Text.setFont(getFont());}public void actionPerformed(ActionEvent e) {if(e.getSource()==OK){FontName=Name.getSelectedIndex();FontStyle=getStyle();FontSize=Size.getSelectedIndex();this.setVisible(false);}else cancel();}public void windowClosing(WindowEvent e) {cancel();}public Font getFont(){if(Name.getSelectedIndex()==0) return new Font("新宋体",getStyle(),Size.getSelectedIndex()+8);else return newFont(Name.getSelectedItem(),getStyle(),Size.getSelectedIndex() +8);}public void cancel(){Name.select(FontName);Size.select(FontSize);setStyle();Text.setFont(getFont());this.setVisible(false);}public void setStyle(){if(FontStyle==0 || FontStyle==2)Bold.setSelected(false);else Bold.setSelected(true);if(FontStyle==0 || FontStyle==1)Italic.setSelected(false);else Italic.setSelected(true);}public int getStyle(){int bold=0,italic=0;if(Bold.isSelected()) bold=1;if(Italic.isSelected()) italic=1;return bold+italic*2;}public void windowActivated(WindowEvent arg0) {}public void windowClosed(WindowEvent arg0) {}public void windowDeactivated(WindowEvent arg0) {}public void windowDeiconified(WindowEvent arg0) {}public void windowIconified(WindowEvent arg0) {}public void windowOpened(WindowEvent arg0) {} }//创建关于对话框class AboutDialog extends JDialog implements ActionListener{ public JButton OK,Icon;public JLabel Name,Version,Author,Java;public JPanel Panel;AboutDialog(JFrame owner) {super(owner,"关于",true);OK=new JButton("OK");Icon=new JButton(new ImageIcon("icons\\edit.gif"));Name=new JLabel("Notepad");Version=new JLabel("Version 1.0");Java=new JLabel("JRE Version 6.0");Author=new JLabel("Copyright (c) 11-5-2012 By Jianmin Chen");Panel=new JPanel();Color c=new Color(0,95,191);Name.setForeground(c);Version.setForeground(c);Java.setForeground(c);Author.setForeground(c);Panel.setBackground(Color.white);OK.setFocusable(false);this.setBounds(250,200,280, 180);this.setResizable(false);this.setLayout(null);Panel.setLayout(null);OK.addActionListener(this);Icon.setFocusable(false);Icon.setBorderPainted(false);Author.setFont(new Font(null,Font.PLAIN,11));Panel.add(Icon);Panel.add(Name);Panel.add(Version);Panel.add(Author);Panel.add(Java);this.add(Panel);this.add(OK);Panel.setBounds(0, 0, 280, 100);OK.setBounds(180, 114, 72, 26);Name.setBounds(80, 10, 160, 20);Version.setBounds(80, 27, 160, 20);Author.setBounds(15, 70, 250, 20);Java.setBounds(80, 44, 160, 20);Icon.setBounds(16, 14, 48, 48);}public void actionPerformed(ActionEvent e) { this.setVisible(false);}}}//创建记事本public class ChenJianmin {public static void main(String[] args){EventQueue.invokeLater(new Runnable() {public void run() {NotePad notePad=new NotePad();notePad.setTitle("记事本");notePad.setVisible(true);notePad.setBounds(100,100,800,600);notePad.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}});}}。
基于Eclipse+Android_SDK_的多功能记事本设计
第19期2023年10月无线互联科技Wireless Internet Science and TechnologyNo.19October,2023作者简介:李志伟(1987 ),男,河南夏邑人,讲师,硕士;研究方向:物联网技术,计算机应用技术,职业教育㊂基于Eclipse +Android SDK 的多功能记事本设计李志伟(苏州高等职业技术学校,江苏苏州215000)摘要:传统的记录方式不能满足当前的信息记录要求,文章基于Eclipse +Android SDK 开发了一种多功能的电子记事本㊂使用面向对象的Java 语言以及轻量级的数据库SQLite 对数据和文件进行管理㊂实现了记事本的用户注册㊁登录㊁创建便签和编辑便签㊁便签记事㊁网络分享以及弹窗模块设计㊂功能测试结果表明,设计基本达到了用户的需求目标,具有方便㊁易用的特点㊂关键词:Eclipse ;Android SDK ;记事本;SQLite 中图分类号:TP319㊀㊀文献标志码:A0㊀引言㊀㊀在日常学习和工作中,人们经常需要快速㊁高效地记录许多信息㊂然而,传统的记录方式已经不能满足这种需求㊂研究和开发一种具有文字记录㊁拾音功能㊁文件分享等功能的电子记事本,显得十分有意义[1]㊂2020年,叶从玲[2]使用了Android 自带的SQlite 数据库,提高了记事本开发的效率㊂2021年,王杰等[3]使用Eclipse 开发工具实现了一种云记事本设计,具有随时记录㊁读取的特点㊂2022年,连壮[4]使用Java 语言实现了记事本启动界面的动画设计,用户体验性较好㊂多数记事本实现了增㊁删㊁改㊁查,以及信息检索等基本功能㊂缺少用户身份验证的记事本,存在一定的安全隐患㊂本文使用Eclipse 开发工具和Android 的SDK,开发了具有注册㊁登录功能的多功能记事本㊂合法用户可实现编辑记事㊁查找㊁分享等操作;能有效防止非法用户查看记录的信息,具有联网㊁丢失找回㊁编辑快捷等特点㊂1㊀需求分析及数据库设计㊀㊀需要实现的功能主要有:(1)用户的注册和登录;(2)文本记事基本的操作,如增㊁删㊁改㊁查;(3)共享功能,将记录的信息以短信或微信㊁QQ㊁邮件的方式共享给联系人㊂设计开发时应当考到以下内容:(1)记事便签加载时,应减少内存消耗,注意内存的释放;(2)加载音频和视频文件时,除了保证播放的流畅,还应保证音质㊁编辑的质量问题;(3)从技术可行性上分析,软件的配置环境应当满足开发者需求,所开发的应用能让大众所接受㊂另外,记事本的设计应遵循简单㊁使用方便的原则,设计不需要太复杂㊂数据库表的设计主要有两个,用于文本记事的表和关于用户的表,如表1 2所示㊂表1㊀文本记事表字段名数据类型,长度/bit是否允许空值主外键dates(创建日期)Varchar,50不允许null title(标题)Varchar,50不允许null context(记事内容)Varchar,10000允许null表2㊀用户表字段名数据类型,长度/bit是否允许空值主外键dates(创建时间)Varchar,50不允许主键theme(用户名)Varchar,50不允许nulltop_image(用户密码)Varchar,50不允许外键num(该用户的登录时间)Varchar,1000不允许null 2㊀多功能记事本详细设计㊀㊀多功能记事本除了具有图标设计的Logo 外,还包括了主界面㊁文本记事㊁便签记事㊁编辑记事㊁网络分享㊁记事模块弹窗等模块的设计㊂2.1㊀主界面设计㊀㊀主界面中的文本记事页面,包含了3个部分:第一部分是最上面一行的 标题栏 ,右边有两个按钮,分别有两个不同功能㊂ + 所代表的是添加记事功能模块,点击之后可以任意添加一种记事㊂点击 搜索 按钮,可将当前Activity跳转到搜索界面,输入关键字则可查找出所有标题带关键字的记事,并且能查看记事内容㊂第二部分的 模块向导 栏,点击即可跳转到相应模块界面㊂考虑到操作的简捷性,设计了可左右滑动,实现界面切换的功能,向左滑动屏幕则可跳转到上一个Activity,即上一个模块,向右滑动则跳转到下一个模块界面㊂在布局代码中,实现的关键组件为ViewPager,用它可以实现界面导航和屏幕切换㊂2.2㊀文本记事模块㊀㊀保持记事页面的 标题栏 和 模块向导 不变,增添需要展示的文本记事内容㊂操作时,可通过单击或双击每一项内容来实现㊂例如,可实现编辑㊁修改㊁保存㊁查看㊁删除等功能㊂设计时,为了使界面更加柔和,可通过将界面整体下拉或滚动,选择将展示内容的滚动条隐藏的方式㊂记事模块保持了界面的统一风格,更贴近Android软件的UI设计㊂ 展示内容 部分的核心代码,主要是通过重写Android提供的Adapter适配器类中的getView()方法来实现,主要功能就是将数据转换为视图,以便在UI布局中显示㊂2.3㊀便签记事模块㊀㊀此部分的 标题栏 和 模块向导 布局与文本记事模块中的设计一样㊂但是当用户所添加的便签记事内容过多,需要对这些便签进行管理㊁分类时,便签记事模块的功能优势就显现出来了㊂点击功能按钮,可以看到用户的所有便签记事㊂设计时需注意,若设计的便签过大,内存消耗过多,会导致此模块功能崩溃,程序无法正常运行㊂比如使用了setImageBitmap ()方法或setImageResource()来设置一张大图,在完成decode后,最终仍要调用Java层的createBitmap()方法来完成,这样就会消耗掉更多的内存资源㊂我们可以通过使用Android自带的㊁已封装好了方法,来解决内存占用过大的问题㊂比如,使用BitmapFactory. decodeStream()方法,创建出一个Bitmap,再将其设为ImageView的source,加载显示即可㊂这是因为decodeStream最大的优势是直接调用了nativeDecodeAsset()方法来完成decode,无需再使用Java层的createBitmap㊂便签记事的分类功能是通过Android提供的GridView控件来实现的㊂2.4㊀编辑记事模块㊀㊀该模块在设计时,选择系统自带的Media Play 类,即可实现对音频㊁视频的加载㊁插入㊁播放等操作㊂调用线程录制,可减少硬件原因导致的数据丢失问题㊂将反应慢的原始按钮样式,替代为成现代的㊁反应灵敏的话筒便签㊂考虑到安全性问题,需要重写按钮对应的方法来处理这个过程㊂为了保证编辑的质量,减少软件卡顿,可通过线程来实现㊂部分核心代码如下:mydata=new MyDataBase(getContext()," mydata");//将生成新的编辑文件dao=new DataBaseDAO(mydata);//实例化数据库连接类mHandler=new MyHandler();//用线程dialog_view.setImageResource(res[msg. what]);//根据声音强弱改变便签,从而达到看起来在说话的效果SetRecorderFile();//创建音频文件recorder=new MediaRecorder();//实例化Android多媒体类㊀㊀recorder.setAudioSource(MediaRecorder. AudioSource.MIC);㊀//设置音频格式recorder.setOutputFormat(MediaRecorder. OutputFormat.THREE_GPP);//设置输出格式recorder.setAudioEncoder(MediaRecorder. AudioEncoder.AMR_NB);//设置解码先设置前面的属性2.5㊀网络分享模块㊀㊀分享功能设计的难点在于,关键字高亮的设置问题㊂通过使用Google官方提供的SpannableString Builder类中的setSpan()方法,来处理高亮问题㊂该方法对原本的字符串做出处理处理后,亮出关键字,执行Textview.setText(result)方法,达到实现高亮效果㊂共享功能对数据的处理流程是,首先查询出数据库的所有数据,对于每类数据,保存在list集合中,随后对list集合进行遍历,remove掉所有包含关键字的项,对剩下的数据通过Adapter适配器选择性传到活动界面显示㊂对于每类数据都做这种处理,即可共享出所有符合条件的数据㊂部分关键代码如下: private void filter(){//根据关键字数据处理函数if(list.size()>0){//list存储数据库取出来的所有数据for(int i=0;i<list.size();i++){HashMap< String,String>mp=list.get(i);//去除不包含关键字的数据,words表示关键字内容if("".equals(words) mp.get("title"). indexOf(words)==-1){list.remove(i);i--;}}} if(list!=null&&list.size()>0){option.setvisible (true);}//如果最后有数据,则将相应模块设为可见状态else{option.setvisible(false);}}//如果没有数据,则相应模块设置为不可见状态2.6㊀记事弹窗模块㊀㊀长按每一项功能模块,都会弹出相应的操作列表㊂这些弹出框就是所有记事弹框的功能㊂目前,弹框消失是通过用户点击返回键或者取消键,或者在弹出框之外的任意处点击后,才会消失,不够简便㊂为了实现操作简便的效果,可将其设定为,只有点击取消按钮才会消失,否则不做任何操作㊂实现弹框的功能代码,主要是长按操作,触发事件处理机制,调用接口响应㊂部分核心实现代码如下://长按之后弹出列表删除㊁修改标题㊁更新内容㊁共享列表AlertDialog.Builder builder=new AlertDialog. Builder(mContext);//弹出框builder.setCancelable(false);//弹出框设为不可取消option.delete(dates);//调用接口实现删除操作option.update_title(dates);//调用接口实现更新操作option.update_context(dates);//调用接口实现更新操作option.send(dates,title);//调用接口实现共享操作builder.setNegativeButton( 取消 ,new DialogInterface.OnClickListener(){//点击取消按钮,关闭弹出框public void onClick(DialogInterface dialog,int which){dialog.cancel();//关闭弹出框3㊀系统测试㊀㊀任何一款设计软件,在发布㊁使用前必须进行测试㊂测试主要是查看软件中数据的准确性,能否满足需求,各功能模块的操作是否正常,以及还有哪些地方需要改进[5]㊂通常使用白盒测试技术和黑盒测试技术来对软件进行测试㊂前者是在了解系统内部工作流程的前提下,可以根据需求规范验证系统内部操作是否能够正常运行的测试;而黑盒测试指的是,倘若知道了这个系统的全部功能,可以进行测试㊁检测系统中的每一个功能是否满足正常使用㊂一般的测试用例分为输入㊁行为和希望结果3个部分㊂但是优秀的测试用例还需要从正确性㊁完整性㊁输入具体内容㊁用词无歧义㊁用例细化㊁判断点无歧义,以及合理区分优先级等几个方面考虑㊂在对多功能记事本应用进行测试时,需考虑到登录的权限进行测试,如用户登录模块测试㊁新增标签模块测试㊁删除分类测试以及弹窗模块测试㊁分享模块测试㊂对测试中发现的错误及时修改处理,保证系统准确无误地供给用户使用㊂4㊀结语㊀㊀本文基于Eclipse+Android SDK开发设计了一款多功能记事本㊂完成了需求分析与数据库表的设计;实现了多功能记事本的主界面设计㊁文本记事模块设计㊁便签记事与编辑记事模块设计,以及网络分享模块的设计;在登录㊁修改密码以及分类删除功能性测试方面,表明了设计的有效性㊂此类多功能的记事本具有很强的实用性,快捷㊁方便的记事特点,更有利于提高信息记录的效率㊂参考文献[1]江志华,陈翱天.基于Android平台的记事本App 的开发与实现[J].乐山师范学院学报,2020(12): 49-54.[2]叶从玲.基于Android的快捷记事本的设计与实现[J].电脑知识与技术,2020(9):90-91.[3]王杰,周晓梅.基于腾讯云的云记事本系统设计与研究[J].电脑知识与技术,2021(25):92-95. [4]连壮.智能记事本App的实现与研究[J].电子技术与软件工程,2022(16):59-62.[5]唐岩皓.多源室内定位技术的算法研究与应用[D].桂林:桂林电子科技大学,2019.(编辑㊀李春燕)Design of a multifunctional notepad based on Eclipse+Android SDKLi ZhiweiSuzhou Higher Vocational and Technical School Suzhou215000 ChinaAbstract Traditional recording methods cannot meet the current requirements for information recording.This article develops a multifunctional electronic notebook based on Eclipse+Android e object-oriented Java language and lightweight database SQLite to manage data and files.Implemented user registration login creation and editing of notes note keeping network sharing and pop-up module design for Notepad.The functional test results indicate that the design has basically met the user s requirements and has the characteristics of convenience and ease of use. Key words Eclipse Android SDK notepad SQLite。
如何使用记事本编写java程序
如何使用记事本编写java程序使用记事本编写程序需要一定的技术,那么你知道该如何使用记事本编写java程序吗,下面我们一起来看看吧。
如何使用记事本编写java程序第一种方法1首先右击鼠标,新建一个文本文档。
2更改文本文档的后缀名为 .java 。
注意文件名必须和类名相同。
如果你的电脑没有显示后缀名的话需要对电脑进行一定的设置。
3打开计算机——组织——文件夹选项——查看——将隐藏文件夹选项取消勾选即可。
建议将这个选项取消勾选,有很多的恶意程序会侵入我们的电脑,取消勾选可以很好的查看病毒等文件的类型。
4右击建好的文档,选择编辑即可进行java的编写。
在编写的时候我们有一定的格式,java语言的格式是为了我们日后更改程序方便而规定的,我们一定要遵循这种格式编写。
第二种方法1直接新建一个记事本文档,然后选择保存。
注意保存时额位置,不要等到保存完却找不到文件到哪了。
2在选择保存的窗口中输入后缀“.java”,然后保存即可。
注意文件名必须和类名相同。
3同样右击文件,选择编辑即可在文件中进行编辑了。
前两个大括号之间回车,第二对大括号有一个间隔,直接按TAb 键即可。
测试运行java程序打开运行命令,也可以直接在开菜单中输入CMD调用命令窗口。
你的文件保存在哪里就将你的文件目录输入到命令提示符窗口中,例如我的是D盘根目录,所以我输入“d:”。
编译java文件,生成class文件。
在命令提示符中输入“javac 文件名.java”,我的文件名为A,所以输入javac A.java然后回车,等待编译。
运行文件。
继续输入“java 文件名”然后回车就可以运行我们写好的文件了。
java课程设计报告记事本
.. . .学院课程设计题目:记事本程序设计院〔系〕:数学与计算机学院年级专业:姓名:000000学号:指导教师:二〇一三年十二月三十日学院教务处制学院本科学生课程设计任务书课程设计〔论文〕指导教师成绩评定表摘要目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的根底知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。
按照教学培养方案要求,学生在学习完课本中指定课时的知识后,应安排一定课时的课程设计。
其主要目的是使学生深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言根底、异常处理、事件处理、小应用程序以及图形用户界面设计等。
故此“记事本〞应运而生。
该报告中的程序是简易记事本。
使用Java程序编写,能够进展输入文字操作,并具有新建文件,翻开文件,保存文件,退出,复制,粘贴,剪切等功能,不同之处是本程序能够对文字的颜色进展设置。
该程序主要用到了Java swing和事件监听等。
关键字:记事本,Java,Java swing目录摘要 (I)1 前言 (2)2 需求分析 (3)2.1需求分析 (3)2.2功能设计 (3)3 概要设计 (4)3.1程序设计思路 (4)3.2程序运行界面 (4)3.3模块说明图 (5)3.4程序流程图 (6)3.5程序相关说明 (7)4 程序详细设计与分析 (7)4.1初始化组件 (7)4.2.构建菜单栏及其下拉菜单 (8)4.3 “文件〞菜单的事件监听 (8)4.4 “编辑〞菜单的事件监听 (9)5 测试分析 (10)结论 (13)参考文献 (14)附录 (14)1 前言Java的前身是Oak,它一开场只是被应用于消费性电子产品中。
后来它的开发者们发现它还可以被用于更大围的Internet上。
1995年,Java语言的名字从Oak编程了Java。
1997年J2SE1.1发布。
1998年J2SE1.2发布,标志Java2的诞生。
JAVA--简单记事本源代码
JAVA--简单记事本源代码import javax.swing.JFrame;import javax.swing.JTextArea;import java.awt.*;import java.awt.event.*;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import javax.swing.*;import javax.swing.plaf.FileChooserUI;public class notepad extends JFrame implements ActionListener{//定义所需要的组件JTextArea jta=null;JMenuBar jmb=null;JMenu jm=null;JMenuItem jmi1=null;JMenuItem jmi2=null;public static void main(String[]args){new notepad();}public notepad(){//把组件添加到窗体上jta=new JTextArea();jmb=new JMenuBar();this.add(jta);this.setJMenuBar(jmb);//设置窗体属性this.setTitle("简易记事本");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setSize(400, 300);this.setVisible(true);//把菜单添加进菜单条jm=new JMenu("⽂件");jm.setMnemonic('f');jmb.add(jm);//把⼦菜单加⼊⾄菜单jmi1=new JMenuItem("打开");jmi2=new JMenuItem("保存");jmi1.setActionCommand("open");jmi2.setActionCommand("save");jm.add(jmi1);jm.add(jmi2);//为两个字菜单注册事件监听jmi1.addActionListener(this);jmi2.addActionListener(this);}public void actionPerformed(ActionEvent e){//对点击了打开进⾏处理if(e.getActionCommand().equals("open")){//创建⼀个⽂件选择组件JFileChooser jfc1=new JFileChooser();//设置⽂件选择器的名字jfc1.setDialogTitle("请选择⽂件....");//设置⽂件选择组件的类型(打开类型)jfc1.showOpenDialog(null);//显⽰该组件jfc1.setVisible(true);//获取选择⽂件的绝对路径String s;s=jfc1.getSelectedFile().getAbsolutePath();//将该⽂件显⽰到记事本上BufferedReader br=null;FileReader fr=null;try{//创建⼀个带缓冲的⽂件读取对象fr=new FileReader(s);br=new BufferedReader(fr);String text="";String m=null;//循环读取⽂件while((m=br.readLine())!=null){text+=m+"\r\n";}//将读取的结果打印到记事本上⾯this.jta.setText(text);}catch(Exception e1){e1.printStackTrace();}finally{//关掉打开的⽂件try{br.close();fr.close();}catch(Exception e2){e2.printStackTrace();}}}else if(e.getActionCommand().equals("save")){//创建⼀个⽂件选择组件JFileChooser jfc=new JFileChooser();//设置⽂件选择的名称jfc.setDialogTitle("另存为");//设置⽂件选择组件的类型(保存类型)jfc.showSaveDialog(null);//显⽰该组件jfc.setVisible(true);//获取选择⽂件的绝对路径String filename;filename=jfc.getSelectedFile().getAbsolutePath(); //将记事本内的⽂本保存⾄该路径BufferedWriter bw=null;FileWriter fw=null;try{//创建⽂件输出⽂件fw=new FileWriter(filename);bw=new BufferedWriter(fw);//获取⽂本String outtext="";outtext=this.jta.getText();//输出⽂本fw.write(outtext);}catch(Exception e2){e2.printStackTrace();}finally{//关闭打开的输出⽂件try{bw.close();fw.close();}catch(Exception e3){e3.printStackTrace();}}}}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
String fns=null;
Frame f=new Frame("保存");
FileDialog fd=new FileDialog(f,"保存文件",FileDialog.SAVE);
fd.setFile("*.txt");
fd.setVisible(true);
try
{
String savepath=fd.getDirectory();
final JButton jbReplace=new JButton("替换");
final JButton jbReplaceAll=new JButton("替换所有");
final JButton jbCancel=new JButton("取消");
final JButton jbFind=new JButton("查找");
gbc.gridx=0;
gbc.gridy=1;
jd.getContentPane().add(jp,gbc);
gbc.gridx=1;
gbc.gridy=1;
jd.getContentPane().add(jtf,gbc);
gbc.gridx=2;
gbc.gridy=1;
jd.getContentPane().add(jbReplace,gbc);
{
jd.dispose();
}
}
);
jd.getContentPane().add(jtf);
jd.getContentPane().add(jbFind);
jd.getContentPane().add(jbCancel);
jd.setLocation(240,200);
jd.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
jd.setVisible(true);
}
catch(Exception efind)
{
}
}
⑥替换的实现
if(e.getActionCommand().equals("替换"))
{
final JDialog jd=new JDialog(this,"替换",true);
GridBagLayout gbl=new GridBagLayout();
图2各菜单功能
② 编辑区设计
编辑区可以实现文字的输入,编辑,复制,剪切,粘贴等,也可以实现弹出式菜单,弹出式菜单可以进行复制,剪切,粘贴操作。编辑区是一个JTextArea,被添加到了窗体的中部。
2.文件菜单中各项功能的实现
①新建功能设计
/*以下代码实现新建功能*?
if(e.getActionCommand().equals("新建"))
final JTextField jtf=new JTextField(15);
final JTextField jtf1=new JTextField(15);
jd.getContentPane().setLayout(gbl);
jd.setSize(330,150);
jd.setResizable(false);
GridBagConstraints gbc=new GridBagConstraints();
gbc.weightx=1;
gbc.weighty=1;
gbc.gridwidth=1;
gbc.gridheight=1;
JLabel jlFind=new JLabel("查找:");
JLabel jp=new JLabel("替换内容:");
jd.setResizable(false);
final JTextField jtf=new JTextField(15);
JLabel jlFind=new JLabel("查找内容:");
jd.getContentPane().add(jlFind);
JButton jbFind=new JButton("查找");
pw.write(jta.getText(),0,jta.getText().length());
pw.flush();
}
}
catch(Exception esave)
{
}
}
④复制,剪切,粘贴,全选,删除功能的实现
if(e.getActionCommand().equals("剪切"))
{
jta.cut();
华北科技学院计算机系综合性实验
实 验 报 告
课程名称Java程序设计A
实验学期2010至2011学年 第1学期
学生所在系部计算机
年级2008专业班级计科B083
学生姓名陈浩浩学号************
任课教师李芙玲
实验成绩
计算机系制
《Java程序设计A》课程综合性实验报告
开课实验室:基础实验室二2010年12月17日
String savename=fd.getFile();
if(savename!=null)
{
PrintWriter pw=new PrintWriter(new BufferedWriter(new FileWriter(savepath+savename)));
pw.write(jta.getText(),0,jta.getText().length());
}
jta.select(a,StartFindPos);
}
}
}
);
JButton jbCancel=new JButton("取消");
jbCancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ejb)
}
if(e.getActionCommand().equals("复制"))
{
jta.copy();
}
if(e.getActionCommand().equals("粘贴"))
{
jta.paste();
}
if(e.getActionCommand().equals("删除"))
{
}
if(e.getActionCommand().equals("全选"))
pw.flush();
}
}
catch(Exception esave)
{
}
}
/*以下代码实现另存为功能*/
if(e.getActionCommand().equals("另存为"))
{
Frame f=new Frame("保存");
FileDialog fd=new FileDialog(f,"文件另存为",FileDialog.SAVE);
String s=br.readLine();
while(s!=null)
{
jta.append(s+"\n");
s=br.readLine();
}
br.close();
}
catch(Exception ex)
{
}
}
③保存和另存为功能设计
/*以下代码实现保存功能*/
if(e.getActionCommand().equals("保存"))
4.其他功能设计。
四、实验结果及分析
1.主界面的设计与实现
整个界面共包括2部分,如图1所示,最上面是菜单栏,中部是主文本区。
图1 主界面
①菜单的设计
本程序共设计5个菜单,分别是文件,编辑,格式,查看,帮助,其中文件菜单实现了新建,打开,保存,另存为,退出程序功能,编辑菜单实现了复制,剪切,全选,清楚功能,格式菜单实现了字体,文字颜色,背景颜色,自动换行功能,视图窗体主要控制菜单栏和格式栏是否显示,帮助菜单里是一个关于程序的介绍。各个菜单的功能见图2。
{
jta.selectAll();
}
⑤查找功能实现
if(e.getActionCommand().equals("查找"))
{
try
{
final JDialog jd=new JDialog(this,"查找",true);
GridBagLayout gbl=new GridBagLayout();
GridBagConstraints gbc=new GridBagConstraints();
gbc.weightx=0.5;
gbc.weighty=0.5;
gbc.gridwidth=1;
gbc.gridheight=1;
jd.getContentPane().setLayout(gbl);
jd.setSize(380,100);
二、设备与环境
硬件:多媒体计算机
软件:Windows 2000以上的操作系统、JDK开发包、集成开发环境
MyEclipse 7.0 Blue
三、实验内容
总体要求:程序功能基本完成,用户界面友好,代码的可维护性和可扩展性较好,最好包括必要的注释和相应的文档。
具体要求:基本的文本录入,字符修改,删除,换行,粘贴,复制,剪切等功能,主要包括:
gbc.gridx=2;