Java程序设计 记事本

合集下载

我用java编写的记事本代码,分享给大家

我用java编写的记事本代码,分享给大家
backcolor.add(gray); backcolor.addSeparator();
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课程设计

课程设计(论文)题目名称记事本程序课程名称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编程语言实现一个记事本应用程序,让学生掌握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程序进行自我介绍

使用记事本编写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》课程设计》记事本

《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记事本源代码(完整)

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_的多功能记事本设计

基于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程序吗,下面我们一起来看看吧。

如何使用记事本编写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课程设计报告记事本

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--简单记事本源代码

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();}}}}}。

android开发记事本实验报告,记事本实验报告(含源代码运行结果).doc

android开发记事本实验报告,记事本实验报告(含源代码运行结果).doc

android开发记事本实验报告,记事本实验报告(含源代码运⾏结果).doc记事本实验报告(含源代码运⾏结果)嘉应学院计算机学院实验报告系/班别: 计算机学院 1203班指导⽼师: 肖**课程名称: Java语⾔程序设计实验内容: ⽤Java编写记事本学⽣学号:学⽣姓名: 曾朝阳实验地点: 锡科403实验类型: 设计实验时间: 第⼗四周⾄第⼗七周实验要求:能够通过使⽤JDK1.6安装开发windows 桌⾯应⽤程序。

实验⽬的:熟悉事件触发和事件监听以及组件和容器的界⾯安排,能够⽤java设计⼀个仿windows的标准型记事本。

实验过程描述:实验环境:⽹络实验室实验设备:PC机, ⽹络实验平台:winxp. JDK1.6过程描述:1.⾸先,安装JDK1.62.打开开始-》运⾏->输⼊cmd进⼊dos->cd 路径(原程序的路径)->javac NotepadTest.java(编绎)->java NotepadTest运⾏编写程序:import java.io.File;import .URLClassLoader;import .URL;import ng.InterruptedException;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.PrintStream;import java.util.Scanner;import java.util.Date;import java.util.Iterator;import java.util.List;import java.text.SimpleDateFormat; import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.ImageIcon;import javax.swing.JScrollPane;import javax.swing.JToolBar;import javax.swing.JMenuItem;import javax.swing.KeyStroke;import javax.swing.JPopupMenu;import javax.swing.JFileChooser;import javax.swing.JOptionPane;import javax.swing.JFileChooser;import javax.swing.JColorChooser; import javax.swing.JDialog;import javax.swing.JTextField;import javax.swing.BorderFactory;import javax.swing.JList;import javax.swing.JComboBox;import javax.swing.UIManager;import javax.swing.JRadioButton;import javax.swing.JToggleButton;import javax.swing.ButtonGroup;import javax.swing.TransferHandler;import javax.swing.border.Border; import javax.swing.border.TitledBorder; import javax.swing.text.Document; import javax.swing.undo.UndoManager; import javax.swing.undo.UndoableEdit; import。

java记事本程序

java记事本程序

《Java程序设计》课程设计指导书一、课程设计的目的第二部分小型软件的开发(选做一题,且由个人独立开发完成)课程设计题目1、编写一个记事本程序。

要求:使用图形用户界面实现。

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

import java.awt.CheckboxMenuItem;import java.awt.Color;import java.awt.Container;import java.awt.FileDialog;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GraphicsEnvironment;import java.awt.Menu;import java.awt.MenuBar;import java.awt.MenuItem;import java.awt.MenuShortcut;import java.awt.TextArea;import java.awt.Toolkit;import java.awt.Window;import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.StringSelection;import java.awt.datatransfer.Transferable;import java.awt.datatransfer.UnsupportedFlavorException;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.JButton;import javax.swing.JColorChooser;import javax.swing.JComboBox;import javax.swing.JDialog;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;public class notebook {// 记事本的具体实现类private static final long serialVersionUID = 1L;private TextArea content;private String filePath = "";//先让路径为空Color color=Color.red;Toolkit toolKit = Toolkit.getDefaultToolkit();Clipboard clipboard = toolKit.getSystemClipboard();public notebook(){//创建一个JFrame对象;并设置相关属性final JFrame jf = new JFrame("我的记事本");jf.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);jf.setBounds(100,100,500,500);jf.setResizable(true);jf.setVisible(true);//创建菜单栏MenuBar menu = new MenuBar();jf.setMenuBar(menu);//创建并添加文本框content = new TextArea("",50,50,TextArea.SCROLLBARS_VERTICAL_ONLY);jf.add(content);content.setVisible(true);content.requestFocusInWindow();//菜单栏添加内容Menu filemenu = new Menu("文件(F)");Menu editmenu = new Menu("编辑(E)");Menu formatmenu = new Menu("格式(O)");Menu viewmenu = new Menu("查看(V)");Menu helpmenu = new Menu("帮助(H)");menu.add(filemenu);menu.add(editmenu);menu.add(formatmenu);menu.add(viewmenu);menu.add(helpmenu);//创建文件菜单上的各个菜单项并添加到菜单上MenuItem newitem = new MenuItem("新建(N)");newitem.setShortcut(new MenuShortcut(KeyEvent.VK_N,false));filemenu.add(newitem);MenuItem openitem = new MenuItem("打开(O)");openitem.setShortcut(new MenuShortcut(KeyEvent.VK_O,false)); filemenu.add(openitem);MenuItem saveitem = new MenuItem("保存(S)");saveitem.setShortcut(new MenuShortcut(KeyEvent.VK_S,false)); filemenu.add(saveitem);MenuItem saveasitem = new MenuItem("另存为(A)");saveasitem.setShortcut(new MenuShortcut(KeyEvent.VK_A,false)); filemenu.add(saveasitem);MenuItem setitem = new MenuItem("页面设置(U)");setitem.setShortcut(new MenuShortcut(KeyEvent.VK_U,false));filemenu.add(setitem);setitem.setEnabled(false);MenuItem printitem = new MenuItem("打印(P)");printitem.setShortcut(new MenuShortcut(KeyEvent.VK_P,false)); filemenu.add(printitem);printitem.setEnabled(false);filemenu.addSeparator();MenuItem exititem = new MenuItem("退出(X)");exititem.setShortcut(new MenuShortcut(KeyEvent.VK_X,false)); filemenu.add(exititem);//添加监听器来实现文件菜单上的各个菜单项的功能//新建菜单项的功能实现newitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {String con = content.getText();if(!con.equals("")){//文本域里文本不为空int result = JOptionPane.showConfirmDialog(null, ("是否要保存?"),("保存文件..."),JOptionPane.YES_NO_CANCEL_OPTION);if(result == JOptionPane.NO_OPTION){//不保存content.setText("");}else if(result == JOptionPane.CANCEL_OPTION){//取消新建 }else if(result == JOptionPane.YES_OPTION)//选择保存{JFileChooser jfc = new JFileChooser();//用于选择保存路径的文件名int bcf = jfc.showSaveDialog(jf);if(bcf == JFileChooser.APPROVE_OPTION){try {//保存文件BufferedWriter bfw = new BufferedWriter( new FileWriter(new File(jfc.getSelectedFile().getAbsolutePath()+".txt")));filePath = jfc.getSelectedFile().getAbsolutePath()+".txt";//获取文件保存的路径 bfw.write(con);//向文件写出数据bfw.flush();bfw.close();//关闭输出流} catch (IOException ex) {Logger.getLogger(notebook.class.getName()).log(Level.SEVERE, null, ex);}new notebook();//新建文本文件}}}}});//打开菜单项的功能实现openitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {FileDialog dialog = new FileDialog(new JFrame(),"打开....",FileDialog.LOAD);dialog.setVisible(true);filePath = dialog.getDirectory() + dialog.getFile();System.out.println(filePath);File file = new File(filePath);BufferedReader br = null;StringBuilder sb = new StringBuilder();try{br = new BufferedReader (new FileReader(file));String str = null;while ((str = br.readLine()) != null){sb.append(str).append("\n");}content.setText(sb.toString());}catch(FileNotFoundException e1){e1.printStackTrace();}catch(IOException e1){e1.printStackTrace();}finally{if(br != null){try{br.close();}catch(IOException e1){e1.printStackTrace();}}}}});//保存菜单项的功能实现saveitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {FileDialog dialog = new FileDialog(new JFrame(),"保存....",FileDialog.SAVE);dialog.setVisible(true);filePath = dialog.getDirectory() + dialog.getFile();if(filePath.equals("")){//没有路径时,就另存为JFileChooser jfc = new JFileChooser();//用于选择保存路径的文件名int bcf = jfc.showSaveDialog(jf);//弹出保存窗口if(bcf == JFileChooser.APPROVE_OPTION){try {//保存文件BufferedWriter bfw = new BufferedWriter(new FileWriter(new File(jfc.getSelectedFile().getAbsolutePath()+".txt")));filePath = jfc.getSelectedFile().getAbsolutePath();bfw.write(content.getText());//向文件写出数据bfw.flush();bfw.close();//关闭输出流} catch (IOException ex) {Logger.getLogger(notebook.class.getName()).log(Level.SEVERE, null, ex);}}}else{//路径不为空时,保存在原来的路径下try {//保存文件BufferedWriter bfw = new BufferedWriter(new FileWriter(new File(filePath)));bfw.write(content.getText());//向文件写出数据bfw.flush();bfw.close();//关闭输出流} catch (IOException ex) {Logger.getLogger(notebook.class.getName()).log(Level.SEVERE, null, ex);}}}});//另存为菜单项的功能实现saveasitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {JFileChooser jfc = new JFileChooser();//用于选择保存路径的文件名int bcf = jfc.showSaveDialog(jf);//弹出保存窗口if(bcf == JFileChooser.APPROVE_OPTION){try {//保存文件BufferedWriter bfw = new BufferedWriter(new FileWriter(new File(jfc.getSelectedFile().getAbsolutePath()+".txt")));filePath = jfc.getSelectedFile().getAbsolutePath();bfw.write(content.getText());//向文件写出数据 bfw.flush();bfw.close();//关闭输出流} catch (IOException ex) {Logger.getLogger(notebook.class.getName()).log(Level.SEVERE, null, ex);}}}});//页面设置菜单项的功能实现setitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {}});//打印菜单项的功能实现printitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {}});//退出菜单项的功能实现exititem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {Object[] options = { "是的,我要退出", "不好意思,点错了" };int option = JOptionPane.showOptionDialog(null, "您确定要退出吗?","退出提示....",JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,null,options, options[0]);if(option == JOptionPane.OK_OPTION){System.exit(0);}}});//创建编辑菜单上的各个菜单项并添加到菜单上MenuItem undoitem = new MenuItem("撤销(U)");undoitem.setShortcut(new MenuShortcut(KeyEvent.VK_Z,false));editmenu.add(undoitem);MenuItem cutitem = new MenuItem("剪切(T)");cutitem.setShortcut(new MenuShortcut(KeyEvent.VK_X,false));editmenu.add(cutitem);MenuItem copyitem = new MenuItem("复制(C)");copyitem.setShortcut(new MenuShortcut(KeyEvent.VK_C,false));editmenu.add(copyitem);MenuItem pasteitem = new MenuItem("粘贴(P)");pasteitem.setShortcut(new MenuShortcut(KeyEvent.VK_V,false));editmenu.add(pasteitem);MenuItem deleteitem = new MenuItem("删除(L)");deleteitem.setShortcut(new MenuShortcut(KeyEvent.VK_DELETE,false));editmenu.add(deleteitem);editmenu.addSeparator();MenuItem finditem = new MenuItem("查找(F)");finditem.setShortcut(new MenuShortcut(KeyEvent.VK_F,false));editmenu.add(finditem);MenuItem nextitem = new MenuItem("查找下一个(N)");nextitem.setShortcut(new MenuShortcut(KeyEvent.VK_3,false));editmenu.add(nextitem);MenuItem replaceitem = new MenuItem("替换(R)");replaceitem.setShortcut(new MenuShortcut(KeyEvent.VK_H,false)); editmenu.add(replaceitem);MenuItem turntoitem = new MenuItem("转到(G)");turntoitem.setShortcut(new MenuShortcut(KeyEvent.VK_G,false)); editmenu.add(turntoitem);editmenu.addSeparator();//复选菜单项Menu choicemenu = new Menu("选择(C)");MenuItem allitem = new MenuItem("全选(A)");allitem.setShortcut(new MenuShortcut(KeyEvent.VK_A,false));choicemenu.add(allitem);MenuItem fanxiangitem = new MenuItem("反向选择(B)");fanxiangitem.setShortcut(new MenuShortcut(KeyEvent.VK_B,false)); choicemenu.add(fanxiangitem);MenuItem chieseitem = new MenuItem("选择汉字(C)");chieseitem.setShortcut(new MenuShortcut(KeyEvent.VK_C,false)); choicemenu.add(chieseitem);editmenu.add(choicemenu);//编辑菜单项的时间/日期项MenuItem dateitem = new MenuItem("时间/日期(D)");dateitem.setShortcut(new MenuShortcut(KeyEvent.VK_5,false));editmenu.add(dateitem);//添加监听器来实现编辑菜单上的各个菜单项的功能//撤销菜单项的功能实现undoitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {}});//剪切菜单项的功能实现cutitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {String text = content.getSelectedText();StringSelection selection = new StringSelection(text);clipboard.setContents(selection, null);if(text.length() == 0){return;}else{content.replaceRange("",content.getSelectionStart(),content.getSelectionEnd());}}});//复制菜单项的功能实现copyitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {String text = content.getSelectedText();StringSelection selection = new StringSelection(text);clipboard.setContents(selection, null);}});//粘贴菜单项的功能实现pasteitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {Transferable contents = clipboard.getContents(this);String str =null;try {str = (String) contents.getTransferData(DataFlavor.stringFlavor);} catch (UnsupportedFlavorException e1) {e1.printStackTrace();} catch (IOException e1) {e1.printStackTrace();}if (str == null)return;try {content.replaceRange(str,content.getSelectionStart(),content.getSelecti onEnd());}catch (Exception e1) {e1.printStackTrace();}}});//删除菜单项的功能实现deleteitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {content.replaceRange("",content.getSelectionStart(),content.getSelectio nEnd());}});//查找菜单项的功能实现finditem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {final JDialog dialog = new JDialog(jf,"查找字符串...",true);dialog.setBounds(560,250,310,130);JLabel find = new JLabel("请输入字符串 :");final JTextField findtext = new JTextField(1);JButton jbu = new JButton("查找");dialog.setLayout(null);find.setBounds(10,30,90,20);findtext.setBounds(100,30,90,20);jbu.setBounds(200,30,80,20);dialog.add(find);dialog.add(findtext);dialog.add(jbu);jbu.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {String text = content.getText();String str = findtext.getText();int end = text.length();int len = str.length();int start = content.getSelectionEnd();if(start == end){start = 0;}for(;start<=end-len;start++){if(text.substring(start,start+len).equals(str)){content.setSelectionStart(start);content.setSelectionEnd(start+len);return;}}//若找不到待查字符串,则将光标置于末尾content.setSelectionStart(end);content.setSelectionEnd(end);}});dialog.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){dialog.dispose();}});dialog.setResizable(false);dialog.setVisible(true);}});//查找下一个菜单项的功能实现nextitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {}});//替换菜单项的功能实现replaceitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {final JDialog dialog = new JDialog(jf,"字符串替换...",true);dialog.setBounds(560,250,310,180);final JLabel tihuan = new JLabel("请输入要替换的字符串:");JLabel mubiao = new JLabel("请输入替换后的字符串:");JTextField jtf1 = new JTextField(10);JTextField jtf2 = new JTextField(10);JButton jb = new JButton("替换");dialog.setLayout(null);tihuan.setBounds(10,30,150,20);mubiao.setBounds(10,70,150,20);jtf1.setBounds(160,30,110,20);jtf2.setBounds(160,70,110,20);jb.setBounds(100,110,80,20);dialog.add(tihuan);dialog.add(mubiao);dialog.add(jtf1);dialog.add(jtf2);dialog.add(jb);final String text = content.getText();final String str1 = tihuan.getText();final String str2 = mubiao.getText();jb.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {if(content.getSelectedText().equals(tihuan.getText())){content.replaceRange(str2,content.getSelectionStart(),content.getSelectionE nd());}else {int end=text.length();int len=str1.length();int start=content.getSelectionEnd();if(start==end) start=0;for(;start<=end-len;start++){if(text.substring(start,start+len).equals(str1)){content.setSelectionStart(start);content.setSelectionEnd(start+len);return;}}//若找不到待查字符串,则将光标置于末尾content.setSelectionStart(end);content.setSelectionEnd(end);}}});dialog.setResizable(false);dialog.setVisible(true);}});//转到菜单项的功能实现turntoitem.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {}});//全选菜单项的功能实现allitem.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {content.selectAll();}});//反向选择菜单项的功能实现fanxiangitem.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {}});//选择汉字菜单项的功能实现chieseitem.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {}});//时间菜单项的功能实现dateitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {}});//创建格式菜单上的各个菜单项并添加到菜单上CheckboxMenuItem lineturnitem = new CheckboxMenuItem("自动换行(W)"); formatmenu.add(lineturnitem);formatmenu.addSeparator();MenuItem worditem = new MenuItem("字体(F)");formatmenu.add(worditem);worditem.setEnabled(true);formatmenu.addSeparator();MenuItem coloritem = new MenuItem("字体颜色(C)");formatmenu.add(coloritem);//添加监听器来实现格式菜单上的各个菜单项的功能//自动换行菜单项的功能实现lineturnitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {}});//字体菜单项的功能实现worditem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {final JFrame ztsz = new JFrame("字体设置...");//字体设置窗口 //字体ztsz.setLocation(150, 200);jf.setEnabled(false);//文本编辑窗体不可用!final JComboBox jc = new JComboBox(GraphicsEnvironment.getLocalGraphicsEnvironment() .getAvailableFontFamilyNames());jc.setLocation(30, 80);Container c = ztsz.getContentPane();JPanel jp = new JPanel();jp.add(jc,new FlowLayout());//字形String[] faceString={"正常","粗体","斜体","粗斜体"};String[] sizeString={"初号","小初","一号","小一","二号","小二","三号","小三","四号","小四","五号","小五","六号","小六","七号","八号","5","8","9","10","11","12","14","16","18","20","22","24","26","28","36","48","72"};final JComboBox zx = new JComboBox(faceString);final JComboBox dx = new JComboBox(sizeString);final JButton sure = new JButton("确定");final JButton cancel = new JButton("取消");jp.add(zx);jp.add(dx);jp.add(sure);jp.add(cancel);c.add(jp);//确定sure.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){//将文本设置成所选的字体if(!content.getText().equals("")){content.setFont(new Font(jc.getActionCommand(),zx.getSelectedIndex(),dx.getSelectedIndex()));jf.setEnabled(true);//文本编辑窗体可用ztsz.dispose();}else{JOptionPane.showMessageDialog(null,"您的文本中还没有内容,请输入内容后重新设置!","消息...",RMATION_MESSAGE);jf.setEnabled(true);ztsz.dispose();}}});cancel.addActionListener(new ActionListener(){//取消 public void actionPerformed(ActionEvent e){jf.setEnabled(true);//文本编辑窗体可用ztsz.dispose();//关闭字体设置窗体}});ztsz.setSize(360, 100);//设置窗体长度100和宽度360ztsz.setVisible(true);//窗体可见ztsz.setResizable(false);//禁止放大窗体}});//字体颜色菜单项的功能实现coloritem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {color=JColorChooser.showDialog(jf,"",color);content.setForeground(color);}});//添加监听器来实现查看菜单上的各个菜单项的功能//字数统计菜单项的功能实现MenuItem countitem = new MenuItem("字数统计(C)");viewmenu.add(countitem);countitem.setEnabled(true);countitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {}});//状态栏菜单项的功能实现MenuItem stateitem = new MenuItem("状态栏(S)");viewmenu.add(stateitem);stateitem.setEnabled(false);stateitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {}});//创建帮助菜单上的各个菜单项并添加到菜单上MenuItem findhelpitem = new MenuItem("查看帮助(H)");helpmenu.add(findhelpitem);findhelpitem.setEnabled(false);helpmenu.addSeparator();MenuItem aboutboxitem = new MenuItem("关于记事本(A)");helpmenu.add(aboutboxitem);helpmenu.addSeparator();MenuItem writeritem = new MenuItem("关于作者(S)");helpmenu.add(writeritem);//添加监听器来实现帮助菜单上的各个菜单项的功能//查看帮助菜单项的功能实现findhelpitem.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){}});//关于记事本菜单项的功能实现aboutboxitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){JOptionPane.showMessageDialog(jf,"作者:罗晓庚!\n" +"作者邮箱:lxgwolike140@\n" +"并新增了“反向选择”,“选择汉字”\n" +"“字数统计”,“自动保存”等功能 \n" +"\n" +"","关于记事本...",RMATION_MESSAGE);}});//关于作者菜单项的功能实现writeritem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){JOptionPane.showMessageDialog(jf,"9日\n" +"本科院校:辽宁科技大学\n" +"最向往的地方:北京\n" +" 最喜欢的话:我愿变成一座石桥,受五百年风吹,五百年雨打,\n" +" 五百年日晒,只求你从上面走过...\n" +"梦想:天地有多大,梦有多潇洒\n","关于作者...",RMATION_MESSAGE);}});//关闭程序事件jf.addWindowListener(new WindowAdapter(){//程序关闭时的方法public void windowClosing(WindowEvent e){int option = JOptionPane.showConfirmDialog(null, "您确定关闭吗?","关闭提示....",JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE);if(option == JOptionPane.OK_OPTION){((Window) e.getComponent()).dispose();System.exit(0);}}});}public static void main(String[] args){new notebook();}。

Java开发日历记事本

Java开发日历记事本
I SN 1 0 — O 4 S 09 3 4
E m i xj cc e. — a : s@cc. t n l l n c
h t :ww d z .e .n t / w.n sn t p/ o
Te h+8 55l 56 96 56 09 4 6— 一 90 3 9 6
C m ue K o  ̄d ea d T c n l y电脑 知识 与技术 o p tr n we g n e h o g o
号 码 排 列算 法 : 方 法包 含 两 个 整 形 参 数 , 该 分别 是 星期 几 和 月 天数 。该 方法 的作 用是 将 日期 一 次 排 列 人 日历 牌 的 网格 中 , 日期
2算 法描述
主 类 的算 法 :a n aP d类 首先 创 建 用 于 布 局 的 面 板 , 面 添 加 日历 牌 , 面 添加 记事 本 。然后 调 用 C ln aPd方 法 , 方 法 C l dra e 左 右 a d ra e 该
有 三 个 分 别 是 y a, n , a e r mo t d y的整 形 参 数 。该 方 法 管 理 日历 记 事 本 的 主 界 面 。在 E历 牌 部 分 使 用 网格 布 局 , h t 行数 和列 数 均 为 7 。其 中第 一 行 显示 星期 标 题 的标 签 . 续 六 行 显 示 日期 的标 签 。 后
g g .Thebai unc on fCae d rh v r w s a a em odfe . ua e s f t so l n a a e b o e nd d t c i i d The i bai unci so N o e a v np , a ,d lt ,ve . scf ton .f t p d ha e i ut sve ee e iw

java桌面课程设计记事本

java桌面课程设计记事本

java桌面课程设计记事本一、教学目标本课程的目标是让学生掌握Java语言实现桌面应用程序的基本技能,通过学习Java语言基础和GUI编程,培养学生的编程能力和解决实际问题的能力。

在知识目标方面,要求学生掌握Java语言基本语法、面向对象编程思想、常用类库和GUI组件的使用。

在技能目标方面,要求学生能够独立设计并实现一个桌面记事本应用程序,掌握Java编程的基本流程。

在情感态度价值观目标方面,培养学生的团队合作意识,提高学生解决问题的能力,使学生认识到计算机编程在实际应用中的重要性。

二、教学内容本课程的教学内容主要包括Java语言基础、面向对象编程、GUI编程和桌面应用程序设计。

具体包括以下几个部分:1.Java语言基础:Java语言的基本语法、数据类型、运算符、控制结构、数组、字符串等。

2.面向对象编程:类与对象、封装、继承、多态、接口、集合等。

3.GUI编程:Swing组件、事件处理、布局管理、菜单栏、工具栏等。

4.桌面应用程序设计:记事本应用程序的需求分析、设计、实现和测试。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式。

包括:1.讲授法:讲解Java语言基础、面向对象编程和GUI编程的基本概念和原理。

2.案例分析法:分析典型的桌面应用程序案例,引导学生学会分析问题和解决问题。

3.实验法:让学生动手编写代码,实现桌面记事本应用程序,提高学生的实际操作能力。

4.讨论法:学生进行小组讨论,分享学习心得和经验,培养学生的团队合作意识。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《Java核心技术卷I》、《Java GUI编程》等。

2.参考书:《Java编程思想》、《Effective Java》等。

3.多媒体资料:教学PPT、视频教程、在线代码示例等。

4.实验设备:计算机、网络环境、编程软件(如Eclipse、IntelliJ IDEA等)。

java编程记事本代码

java编程记事本代码

import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; public class Notepad extends JFrame {係统组件声明private JMenuBar menuBar = new JMe nuBar(; private JEditorPa ne content = new JEditorPa ne(; private JScrollPa ne scroll = new JScrollPa ne(c ontent; private JFileChooser filechooser = new JFileChooser(; private BorderLayout bord = new BorderLayout(; private JLabel statusBar = new JLabel(; private JPanel pane = new JPanel(; private File file = null; /定义文件菜单private JMenu fileMenu = new JMenu(; private JMenultem newMenultem = new JMenultem(; private JMe nultem ope nMen ultem = new JMe nultem(; private JMe nultem saveMe nultem = new JMe nultem(; private JMe nultem saveAsMe nultem = new JMe nultem(; private JMe nultem pageSetupMe nultem = new JMe nultem(; private JMe nultem prin tMe nultem = new JMe nultem(; private JMe nultem exitMe nultem = new JMenultem(; // 定义风格菜单private JMenu styleMenu = new JMenu(; private Butt on Group styleMe nu Group = new Butt on Group(; private JRadioButt onMen ultem javaStyleMe nultem = new JRadioButt onMen ultem(; private JRadioButt onMen ultem metalStyleMe nultem = new JRadioButt onMen ultem(; private JRadioButt onMen ultem windowsStyleMenultem = new JRadioButtonMenultem(; // 定义帮助菜单private JMe nultem aboutMe nultem = new JMe nultem(; private JMe nultem helpTopicMe nultem =new JMenultem(; private JMenu helpMenu = new JMenu(; 〃构造函数public Notepad({ initComponents(; } private void initComponents({ // 添加子菜单项到文件菜单fileMe nu.setText("\u6587\u4ef6 (F"; n ewMe nultem.setText(” 新建(NCtrl+N"; ope nMen ultem.setText(” 打开(O…Ctrl+O"; saveMe nultem.setText(”保存(S Ctrl+S"; saveAsMenultem.setText(” 另存为(A..."; pageSetupMenultem.setText(” 页面设置(U..."; printMenultem.setText(” 打印(P... Ctrl+P"; exitMe nultem.setText(” 退出";fileMe nu.add( newMe nultem;fileMe nu .add(ope nMen ultem; fileMe nu .add(saveMe nultem; fileMe nu .add(saveAsMe nultem; fileMe nu.addSeparator(; fileMenu.add(pageSetupMenultem;fileMenu.add(printMenultem; fileMe nu.addSeparator(; fileMe nu.add(exitMe nultem; // 添加子菜单项到风格菜单styleMe nu.setText(‘ 风格(S"; javaStyleMe nultem.setText("Java 默认";metalStyleMe nultem.setText("Metal 风格";wi ndowsStyleMe nultem.setText("Wi ndows 风格";styleMe nuGroup.add(javaStyleMe nultem;styleMe nuGroup.add(metalStyleMe nuItem;styleMe nu Group.add(wi ndowsStyleMe nultem; styleMe nu .add(javaStyleMe nultem; styleMe nu.add(metalStyleMe nultem; styleMe nu.add(wi ndowsStyleMe nultem; // 添加子菜单项到帮助菜单helpMenu.setText(‘帮助(H"; helpTopicMenultem.setText(” 帮助主题(H"; aboutMenultem.setText(” 关于记事本(A";helpMe nu .add(helpTopicMe nultem; helpMe nu .addSeparator(;helpMe nu .add(aboutMe nultem; //定义文件菜单下的事件监听n ewMe nultem.addActio nListe ner(new n ewMe nultem_actio nAdapter(this; ope nMen ultem.addActio nListe ner(new ope nMen ultem_actio nAdapter(this; saveMenultem.addActio nListe ner(new saveMe nultem_actio nAdapter(this; saveAsMe nultem.addActio nListe ner(new saveAsMe nultem_actio nAdapter(this; pageSetupMe nultem.addActio nListe ner(new pageSetupMe nultem_actio nAdapter(this; prin tMe nultem.addActi on Liste ner(n ew prin tMe nultem_actio nAdapter(this;exitMenultem.addActionListener(new exitMenultem_actionAdapter(this; // 定义风格菜单下的事件监听javaStyleMenultem.addActionListener(newjavaStyleMenultem_actionAdapter(this; metalStyleMenultem.addActionListener(new metalStyleMe nultem_actio nAdapter(this;wi ndowsStyleMe nultem.addActio nListe ner(newwi ndowsStyleMe nultem_actio nAdapter(this; // 定义帮助菜单下的事件监听helpTopicMe nultem.addActio nListe ner(new helpTopicMe nultem_actio nAdapter(this; aboutMe nultem.addActio nListe ner(new aboutMe nultem_actio nAdapter(this; 〃填加菜单至U菜单栏menuBar.add(fileMenu; menuBar.add(styleMenu; menuBar.add(helpMenu; // 对主窗口的一些设置this.setDefaultCloseOperation(EXIT_ON_CLOSE; this.setTitle(" 纪生的记事本";this.setSize(640,480; setJMenuBar(menuBar; pane.setLayout(bord;pane.add("Center",scroll; setContentPane(pane; } /定义新建菜单项方法public void newMe nultemActio nPeformed(Actio nEve nt evt{ file = nu II;if(!("".equals(co nten t.getText({ Object]] optio ns = {" 是(Y "," 否(N "," 取消"}; int s = JOptio nPan e.showOptio nDialog( null, "\u6587\u4ef6 "+getTitIe(+"\u7684\u6587\u5b57\u5df2\u7ecf\u6539\u53d8\u3002\n\u60f3\u4fdd\u5b58\u6587\u4ef6 \u5417\uff1f", "\u8bb0\u4e8b\u672c", JOptio nPan e.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]; switch(s{ case 0: int returnVal=filechooser.showSaveDialog(this; if(returnVal ==JFileChooser.APPROVE_OPTION { file=filechooser.getSelectedFile(; try{ FileWriterfw=new FileWriter(file; fw.write(co nten t.getText(;setTitle(filechooser.getSelectedFile(.getName(+" - \u8bb0\u4e8b\u672c"; fw.close(; } catch(Excepti on e{ e.pri ntStackTrace(; } break; } case 1: conten t.setText(""; setTitle("无标题-\u8bb0\u4e8b\u672c"; } } } // 定义打开菜单项方法public voidope nMen ultemActio nPeformed(Actio nEve nt evt{ try { file = n ull; int returnVal = filechooser.showOpenDialog(this; if(returnVal ==JFileChooser.APPROVE_OPTION{ file = filechooser.getSelectedFile(; FileReader fr = new FileReader(file; int len = (in tfile .len gth(; char[] buffer = new char[le n]; fr.read(buffer,0,le n; fr.close(; conten t.setText (newString(buffer; } } catch(Exception e{ e.printStackTrace(; } } // 定义退出菜单项方法public void exitMe nultem_actio nPeformed(Actio nEve nte{ if(!("".equals(co nte nt.getText({ Object]] optio ns = {" 是(Y "," 否(N "," 取消"}; int s = JOptionPane.showOptionDialog(null,"文件的文字已经改变。

日历记事本-JAVA课程设计..

日历记事本-JAVA课程设计..

沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学图7 删除后页面图4.设计体会经过几天的努力,参考了一些书和网上的资料,完成了一个日历记事本的设计。

由于只学过一学期的Java课程,知识掌握的有限,所以此程序不是特别复杂。

在这个过程中,在把书本上的知识给系统的复习了一下的同时,同时也发现了自己的太多不足,对JA V A语言整体知识构架不够熟悉,不能灵活地运用所学的知识点。

自己的编程方式也不是太标准,经常出现代码写错而调试很久的低级错误情况出现。

通过这次课程设计,我明白了编写程序,不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。

还要熟悉常用的编程技巧和编程思想,不能只关心程序的运行结果,更要注重程序代码的结构,编程者更要有严谨地态度。

本次课程设计不仅巩固了以前所学的知识,还有通过设计过程中大量地查阅网络文章,对一些关键知识点逐个地了解并解决相关问题。

所以网络这个强大的工具,确实是我们学习之中可以借助的一个很好的帮手。

网络是我们学习的最好的老师之一。

有问题,问网络,是一个很好的习惯。

因此学到了不少书本上没有的知识;学到了很多java编程知识。

可以说它给了我一次自我评估的机会。

通过设计让我知道了那些方面我还是有欠缺的,促使我花时间弥补。

总之,本次课程设计收获颇丰。

5.参考文献沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学。

使用记事本编写java程序进行自我介绍

使用记事本编写java程序进行自我介绍

使用记事本编写java程序进行自我介绍下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!使用记事本编写java程序进行自我介绍是每一个Java程序员在学习和工作中都会经历的过程。

Java学习案例-实现日记本功能

Java学习案例-实现日记本功能

日记本【任务介绍】1.任务描述编写一个日记本功能的程序,使用字节流经日记的具体信息记录在本地的txt文件中。

当用户输入日记的特定内容后,会将输入的内容保存至本地的txt文件中。

需要输入的内容包括“姓名”,“天气”、“标题”、“内容”的数据。

保存的时候需要判断本地是否存在文件,如果存在则追加,不存在则新建。

文件命名格式为“黑马日记本”加上“.txt”后缀,如“黑马日记本.txt”2.运行结果任务运行结果如图7-1所示。

图7-2 运行结果运行结束后在本地生成一个“黑马日记本.txt”文件,如图7-2所示。

图7-2 黑马日记本.txt【任务目标】●学会分析"日记本小功能"程序的实现思路。

●根据思路独立完成"日记本小功能"的源代码编写、编译及运行。

●掌握字节流操作本地文件的方法。

●掌握ArrayList和StringBuffer的使用,以及异常的处理。

【实现思路】(1)为方便保存日记的相关信息,可以将日记信息封装成一个实体类。

(2)用户编写日记时,首先创建一个集合用于存放日记,然后用户依次填写的内容为“姓名”,“天气”、“标题”和“内容”,并将这些内容存放在集合中,再将实体类保存到txt文件中。

(3)查询日记时,使用字节流的读取实现控制台打印日记信息。

(4)将日记信息写入到txt文件之前,需先拼凑好txt文件名,再判断本地是否已存在此文件,这里可通过输入流尝试获取此文件的字节流,如果获取成功,则证明这个文件已存在,那么就通过输出流向文件末尾追加日记信息,如果获取失败,即异常,说明之前并没有生成日记信息,则需要新建此文件。

【实现代码】日记小功能的实现代码,如文件7-1所示。

(1)将日记信息封装成一个实体类Diary,具体如文件7-1所示。

文件7-1 Diary.java1 package chapter0703;2 public class Diary {3 String time; //时间4 String name; //姓名5 String weather;//天气6 String title;//标题7 String content;//内容8 public Diary(String time, String name, String weather, String title,9 String content) {10 this.time = time;11 = name;12 this.weather = weather;13 this.title = title;14 this.content=content;15 }16 }在文件7-1中,第3-7行代码定义了用于标识日记信息的各个字段,第8-14行代码重新了toString()方法。

java记事本源代码

java记事本源代码
m12.setAccelerator(keysave);
JMenuItem m13=new JMenuItem("另保存为 ");
m13.addActionListener(this);
JMenuItem m14=new JMenuItem("退出 ");
m14.addActionListener(this);
{
myfr fr=new myfr("JAVA记事本");
fr.setSize(560,395);
}
}
///////////////////////////myfr主窗体类//////////////////////////////////////
class myfr extends JFrame implements ActionListener
JTextArea txt1; //主输入文本区
File newfiles;
JPopupMenu popm; //弹出菜单声明
//JMenu m1,m2,m3,m4,m5,m6; //各菜单项
JMenu m1, m2, m3;
JMenuItem m26,m271,m34,p_copy,p_cut,p_paste,p_del;
replb.addActionListener(this);
mainpane=(JPanel)this.getContentPane();
mainpane.setLayout(new BorderLayout());
txt1=new JTextArea("",13,61);
m21.setAccelerator(keycopy);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;
相关文档
最新文档