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("粉红");

90号11软件 尹家涛 java课程设计记事本

90号11软件 尹家涛 java课程设计记事本

Java开发记事本项目系统编程文档
题目:记事本
班级: 11软件
姓名:尹家涛
指导老师:张红霞
2012年5月10日
版本历史
一、功能描述·1.模块A
·2.模块B
·3.模块C
:为什么新建、另存为等有的功能在工具栏里不能用?
二、使用说明
1、硬件设备:jdk
2、在jdk环境中,首先要导入程序所在的文件夹内,打开程
序的界面,然后再运行,界面会弹出一个记事本的对话框
3、模仿wind ow记事本,各个菜单项均可以使用,工具栏也
能完全实现所有的功能,右击菜单下的所有的功能都能实现
三、总结
通过完成这次项目,我懂得了很多问题,同时也暴露了很多问题。

书本上的知识只是理论,要想学好java语言必须通过理论知识并实践。

正所谓“纸上得来终觉浅,绝知此事要躬行”,这次实践课程虽然是编辑一个记事本,但收获确实不少。

因为只有我们遇到问题,才会迫使自己去查资料去解决,这样就会是自己进入一种状态,从而真正学到知识。

当看到自己的成果,心里激动不已,这些只有自己通过实践才能体会到。

从这次实践课中我知道我将面临今后更大的困难,要想成为一个优秀的java程序员,做好项目的同时还要和团队进行交流合作。

这些都会在今后的学习中慢慢去体会,总的来说这次实践课给我最大的启示:耐心,信心,恒心是成功的关键。

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课程设计》记事本课程设计报告书目录一、设计课题二、设计目的三、操作环境四、设计场所(机房号、机器号或自己机器)五、设计过程(设计内容及主要程序模块)六、本次设计中用到的课程知识点(列出主要知识点)七、设计过程中遇到的问题及解决办法八、程序清单五、设计过程(设计内容及主要模块,不少于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大作业题目

JAVA大作业题目大作业要求:(1)最后提大作业报告电子版,报告内容格式见“JA V A程序设计(大作业)报告格式”要求。

(2)每个学生可任意选择下述十三个题目之一作为大作业,一人一组,独立完成。

大作业题目:1、基于java 的记事本要求:(1)设计一个登录界面,如果密码正确,则进入主界面(文件编辑器),如果不正确,则给出消息框,提示正确的密码(2)主界面JFrame的监听器接口至少用到2个(3)主界面JFrame的窗体要美观,利用Java能够把文本、图像、声音集成在一起。

2、Java版即时聊天程序功能要求:(1)用户登录及登录验证:用户能够使用固定帐号(帐号程序内置即可,无需完成额外的注册功能)登录系统,系统能对预定的帐号、密码进行验证。

(2)聊天功能:能够在两台以上的机器上登录运行程序,能使用不同帐号完成在线的即时消息发送(聊天)。

(3)好友管理:能够显示好友列表,并能够添加、修改、删除好友。

(4)在线、离线状态显示:能够显示好友的在线状态或离线状态。

(5)聊天记录管理:能够以文件或数据库形式将聊天记录进行存储,并能打开、显示、删除所存储的聊天记录。

3、【swing类GUI编程】编写交通信号灯的程序要求:(1)设计信号灯组件,该组件提供信号的红,绿,黄三种信号显示输出. (2)另外,在javax.swing.Timer的定时控制下, 轮流输出三种信号. (3)在窗口中应该有启动按钮,停止按钮. 并且有时间设置功能.设置三种状态的显示时间.(4)可供参考的类有:java.awt包中CanvasButtonTextFieldFrame(5)实现支持信号灯的点击事件, 例如,用鼠标点击红灯, 那么红灯立刻亮,然后再进入到定时三种信号的转换输出.4、JA V A简易时间日历程序通过编写一个基于JA V A的应用系统综合实例,自定义一个日历组件显示日期和时间并进行适当的功能扩充,实践Java语言编程技术。

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

如何使用记事本编写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笔记4(布局管理器常用组件qq聊天界面记事本)

Java笔记4(布局管理器、常用组件、qq聊天界面、记事本)文件结构Java代码布局管理器Demo8_1.java package com.test1; import javax.swing.JButton; import javax.swing.JFrame; public classDemo8_1 extends JFrame //继承JFrame { /*** @param args */ public static voidmain(String[] args) { Demo8_1 demo8_1=new Demo8_1(); } //把需要的组件定义在这里JButton jb1=null; //定义一个按钮//构造函数public Demo8_1() { ////JFrame是一个顶层容器类(可以添加其它swing组件的类) //JFrame jf=new JFrame(); //给窗体设置标题this.setTitle("Hello world"); //设置大小,按像素this.setSize(200, 200); //设置初始位置this.setLocation(100,200); //创建一个按钮jb1=new JButton("我是一个按钮!"); //添加JButton组件this.add(jb1); //设置当关闭窗口时,保证JVM也退出this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //显示this.setVisible(true); } } 常用组件常Demo8_2.java /* * BorderLayout演示*1.继承JFrame *2.定义组件*3.创建组件(构造函数) *4.添加组件*5.对窗体设置*6.显示窗体*/ package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_2 extends JFrame{ /** * @param args */ //定义组件JButton jb1,jb2,jb3,jb4,jb5; public static void main(String[] args) { // TODOAuto-generated method stub Demo8_2demo8_2=new Demo8_2(); } publicDemo8_2() { //创建组件jb1=new JButton("中部"); jb2=new JButton("北部"); jb3=new JButton("南部"); jb4=new JButton("东部");jb5=new JButton("西部"); //添加各个组件this.add(jb1,BorderLayout.CENTER);this.add(jb2,BorderLayout.NORTH);this.add(jb3,BorderLayout.SOUTH);this.add(jb4,BorderLayout.EAST);this.add(jb5,BorderLayout.WEST); //设置窗体属性this.setTitle("边界布局的案例");this.setSize(300,200); this.setLocation(200,200); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //显示窗体this.setVisible(true); } }Demo8_3.java /* * 功能:流式:流式布局案例*/ package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_3 extends JFrame{ /** * @param args */ //定义需要的组件JButton jb1,jb2,jb3,jb4,jb5,jb6;public static void main(String[] args) { // TODOAuto-generated method stub Demo8_3 demo8_3=new Demo8_3(); } //构造函数public Demo8_3() { //创建组件jb1=new JButton("关羽"); jb1.setSize(100, 100); jb2=new JButton("张飞"); jb3=new JButton("赵云");jb4=new JButton("马超"); jb5=new JButton("黄忠");jb6=new JButton("魏延"); //添加组件this.add(jb1); this.add(jb2); this.add(jb3);this.add(jb4); this.add(jb5); this.add(jb6);//设置布局管理器this.setLayout(newFlowLayout(FlowLayout.LEFT)); //设置窗体属性this.setTitle("流式布局案例"); this.setSize(350,200); this.setLocation(200,200); //禁止用户改变窗体大小this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //显示this.setVisible(true); } }swing编程实战Demo8_4.java /* * 风格布局*/ package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_4 extends JFrame{ int size=9; //定义组件JButton jbs[]=new JButton[size]; public static void main(String[] args) { // TODO Auto-generated method stub //创建实例Demo8_4demo8_4=new Demo8_4(); } //构造函数public Demo8_4() { //创建组件for(inti=0;ijava /* * 多种布局管理器的使用*/ package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_5 extends JFrame { //定义组件JPanel jp1,jp2; JButton jb1,jb2,jb3,jb4,jb5,jb6; public static void main(String[] args) { // TODO Auto-generated method stub Demo8_5 demo8_5=new Demo8_5(); }//构造函数public Demo8_5() { //创建组件//JPanel布局默认是FlowLayout jp1=new JPanel();jp2=new JPanel(); jb1=new JButton("西瓜");jb2=new JButton("苹果"); jb3=new JButton("荔枝");jb4=new JButton("葡萄"); jb5=new JButton("桔子");jb6=new JButton("香蕉"); //设置布局//添加jp1.add(jb1); jp1.add(jb2); jp2.add(jb3);jp2.add(jb4); jp2.add(jb5); //把Panel 加入JFrame this.add(jp1,BorderLayout.NORTH); this.add(jb6,BorderLayout.CENTER);this.add(jp2,BorderLayout.SOUTH);this.setSize(300,150); this.setLocation(200,200); this.setVisible(true); } } Demo8_6.java package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_6 extends JFrame{ /** * @param args */ //定义组件JPanel jp1,jp2,jp3; //三个子面板JLabeljlb1,jlb2; //标签JButton jb1,jb2; //两个按钮JTextField jtf1,jpf1; //两个文本输入框public static void main(String[] args) { // TODOAuto-generated method stub Demo8_6demo8_6=new Demo8_6(); } //构造函数public Demo8_6() { jp1=new JPanel();jp2=new JPanel(); jp3=new JPanel();jlb1=new JLabel("用户名:"); jlb2=new JLabel("密码:"); jb1=new JButton("登录"); jb2=new JButton("取消"); jtf1=new JTextField(10); //用户名文本框jpf1=new JPasswordField(10); //密码文本框//设置布局管理this.setLayout(new GridLayout(3,1));//加入各个组件jp1.add(jlb1); jp1.add(jtf1);jp2.add(jlb2); jp2.add(jpf1); jp3.add(jb1);jp3.add(jb2); //加入到JFrame this.add(jp1); this.add(jp2); this.add(jp3); this.setTitle("会员管理系统"); this.setSize(250,130);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } } Demo8_7.java/* * 复选框或单选框的案例*/ package com.test1; import java.awt.*; importjavax.swing.*; public class Demo8_7 extends JFrame{ //定义JPanel jp1,jp2,jp3;JLabel jl1,jl2; JButton jb1,jb2; JCheckBoxjcb1,jcb2,jcb3; JRadioButton jrb1,jrb2;ButtonGroup bg; public static void main(String[] args) { // TODO Auto-generated method stubDemo8_7 dmeo8_7=new Demo8_7(); } //构造函数public Demo8_7() { //创建组件jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jl1=new JLabel("你喜欢的运动:");jl2=new JLabel("你的性别:"); jb1=new JButton("注册用户"); jb2=new JButton("取消注册");jcb1=new JCheckBox("足球"); jcb2=newJCheckBox("篮球"); jcb3=new JCheckBox("网球");jrb1=new JRadioButton("男"); jrb2=new JRadioButton("女"); //一定要把jrb1,jrb2放入到一个ButtonGroup ButtonGroup bg=new ButtonGroup(); bg.add(jrb1); bg.add(jrb2);//设置布局管理器this.setLayout(new GridLayout(3,1)); //添加组件jp1.add(jl1); jp1.add(jcb1);jp1.add(jcb2); jp1.add(jcb3); jp2.add(jl2);jp2.add(jrb1); jp2.add(jrb2); jp3.add(jb1);jp3.add(jb2); this.add(jp1); this.add(jp2); this.add(jp3); this.setSize(300,150);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } } Demo8_8.java/* * JCombobox/JList/JScrollPane */package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_8 extends JFrame { //定义JPanel jp1,jp2;JLabel jl1,jl2; JComboBox jcb1; JList jlist; JScrollPane jsp; public static void main(String[] args) { // TODO Auto-generated method stubDemo8_8 demo8_8=new Demo8_8(); } //构造函数public Demo8_8() { jp1=new JPanel(); jp2=new JPanel(); jl1=new JLabel("你的籍贯:"); jl2=new JLabel("旅游地点:"); String []jg={"北京","上海","天津","火星"}; jcb1=new JComboBox(jg); String []dd={"九寨沟","故宫","长城","兵马俑"}; jlist=new JList(dd);jlist.setVisibleRowCount(2);//设置你希望显示多少个选项jsp=new JScrollPane(jlist); //设置布局this.setLayout(new GridLayout(3,1)); //添加组件jp1.add(jl1); //加到面板1当中jp1.add(jcb1);jp2.add(jl2); //加到面板2当中jp2.add(jsp);this.add(jp1); //把面板加入到窗体当中this.add(jp2); //设置窗体属性this.setSize(200,180);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } } Demo8_9.java /* * 词霸*/ package com.test1;import java.awt.*; import javax.swing.*;public class Demo8_9 extends JFrame{ //定义组件JSplitPane jsp; JList jList; JLabel jl1; public static void main(String[] args) { // TODOAuto-generated method stub Demo8_9demo8_9=new Demo8_9(); } publicDemo8_9() { //创建组件String []words={"迈克尔-杰克逊","中国","导游"}; jList=new JList(words); jl1=new JLabel(new ImageIcon("images/迈克尔-杰克逊2.jpg")); //拆分窗格jsp=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,jList,jl1);//设置窗格可以伸缩jsp.setOneTouchExpandable(true); //设置布局管理器//添加组件this.add(jsp);//设置大小this.setSize(550,632);this.setLocation(200,200);this.setVisible(true); } }Demo8_10.java /* * qq聊天器*/package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_10 extends JFrame{ JTextArea jta=null; JScrollPane jsp=null; //滚动面板JPanel jp1=null;JComboBox jcb=null; JTextField jtf=null; JButton jb=null; public static void main(String[] args) { // TODO Auto-generated method stubDemo8_10 demo8_10=new Demo8_10(); }//构造public Demo8_10() { jta=new JTextArea(); jsp=new JScrollPane(jta); //为文本域添加滚动条jp1=new JPanel(); String []chatter={"布什","拉登"}; jcb=new JComboBox(chatter);jtf=new JTextField(10); jb=new JButton("发送");//设置布局//添加组件jp1.add(jcb);jp1.add(jtf); jp1.add(jb); //加入JFrame this.add(jsp); this.add(jp1,BorderLayout.SOUTH);//设置窗体属性this.setSize(300,200);this.setIconImage((newImageIcon("images\\rowin2.gif")).getImage());this.setTitle("简单QQ");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } }Demo8_11.java /* * qq登录界面制作*/ package com.test1; import java.awt.*; import javax.swing.*; public class Demo8_11 extends JFrame{ //北部区域JLabel jl1; //南部区域JButton jb1,jb2,jb3; JPanel jp1;//中部区域JTabbedPane jtp;//选项卡窗格JPanel jp2,jp3,jp4;//三个子面板JLabeljl2,jl3,jl4,jl5; //号码输入文本框JTextField jtf; //密码JPasswordField jpf; //清除号码button JButton jb4; //隐身登录,记住密码JCheckBoxjcb1,jcb2; public Demo8_11() { //创建组件jl2=new JLabel("QQ号码",JLabel.CENTER);jl3=new JLabel("QQ密码",JLabel.CENTER); jl4=new JLabel("忘记密码",JLabel.CENTER);jl4.setFont(new Font("宋体",Font.PLAIN,16));//设置字体样式jl4.setForeground(Color.BLUE);//设置字体颜色jl5=new JLabel("申请密码保护");jl5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_ CURSOR)); //输入号码框jtf=new JTextField(); //输入密码框jpf=new JPasswordField(); jb4=new JButton(newImageIcon("images\\清除号码.jpg")); //复选框jcb1=new JCheckBox("隐身登录"); jcb2=new JCheckBox("记住密码"); //北部区域jl1=new JLabel(new ImageIcon("images\\老虎.jpg"));//南部区域jp1=new JPanel(); jb1=newJButton(new ImageIcon("images\\登录.gif")); jb2=new JButton(new ImageIcon("images\\取消.gif")); jb3=new JButton(new ImageIcon("images\\向导.gif")); //中部区域jtp=new JTabbedPane(); jp2=new JPanel(); jp3=new JPanel();jp3.setBackground(Color.RED);//给面板设置背景颜色jp4=new JPanel(); jp4.setBackground(newColor(0,0,255));//用另一种方法设置背景颜色//将面板添加到选项卡窗格上jtp.add("QQ号码",jp2); //第一个参数代表选项卡的名称,第二个参数代表面板jtp.add("手机号码",jp3); jtp.add("电子邮箱",jp4);//设置布局jp2.setLayout(new GridLayout(3,3));//添加组件//南部jp1.add(jb1); jp1.add(jb2); jp1.add(jb3); //中部jp2.add(jl2);//QQ号码jp2.add(jtf);//号码框jp2.add(jb4);//清除号码按钮jp2.add(jl3);//密码jp2.add(jpf);//密码框jp2.add(jcb1);//记住密码jp2.add(jcb2);//隐身登录jp2.add(jl5);//申请密码保护this.add(jp1,BorderLayout.SOUTH);//加入南部子面板this.add(jl1,BorderLayout.NORTH);//加入北部子面板this.add(jtp,BorderLayout.CENTER);//把选项卡加入中部//展现组件ImageIcon icon=newImageIcon("images\\rowin.gif");this.setIconImage(icon.getImage());this.setSize(350,240); this.setLocation(300,400); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { newDemo8_11(); } } Demo8_12.java /* * 记事本界面*/ package com.test1;import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Demo8_12 extends JFrame{ JMenuBar jmb;//菜单条组件JMenu menu1,menu2,menu3,menu4,menu5;JMenuItem item2,item3,item4,item5,item6,item7;JMenu xinjian;//二级菜单JMenuItem file,project; JTextArea jta; //文本输入区域//工具条JToolBar jtb; JButton jb1,jb2,jb3,jb4,jb5,jb6;public Demo8_12() { //创建组件jtb=new JToolBar(); jb1=new JButton(newImageIcon("images\\new.jpg")); jb1.setToolTipText("新建");//设置提示信息jb2=new JButton(new ImageIcon("images\\open.jpg")); jb2.setToolTipText("打开"); jb3=new JButton(newImageIcon("images\\save.jpg")); jb4=newJButton(new ImageIcon("images\\copy.jpg"));jb5=new JButton(new ImageIcon("images\\cut.jpg"));jb6=new JButton(new ImageIcon("images\\paste.jpg")); jmb=new JMenuBar(); menu1=new JMenu("文件(F)"); menu1.setMnemonic('F');//设置助记符menu2=new JMenu("编辑(E)");menu2.setMnemonic('E'); menu3=new JMenu("格式(O)"); menu3.setMnemonic('O'); menu4=new JMenu("查看(V)"); menu4.setMnemonic('V');menu5=new JMenu("帮助(H)");menu5.setMnemonic('H'); //item1=new JMenuItem("新建"); xinjian=new JMenu("新建");file=new JMenuItem("文件"); project=new JMenuItem("工程"); item2=new JMenuItem("打开",new ImageIcon("new.gif")); item3=new JMenuItem("保存(s)"); item3.setMnemonic('s');//给菜单添加快捷方式item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.V K_S,InputEvent.ALT_MASK)); item4=new JMenuItem("另存为"); item5=new JMenuItem("页面设置"); item6=new JMenuItem("打印"); item7=new JMenuItem("退出"); jta=new JTextArea();//设置布局//添加组件//将按钮添加到工具条上jtb.add(jb1); jtb.add(jb2); jtb.add(jb3); jtb.add(jb4); jtb.add(jb5); jtb.add(jb6);//将菜单项添加到菜单上xinjian.add(file);xinjian.add(project); menu1.add(xinjian);menu2.add(item2); menu1.add(item3);menu1.add(item4); menu1.addSeparator();//添加分割线menu1.add(item5); menu1.add(item6);menu1.addSeparator(); menu1.add(item7);//将菜单添加到菜单条上jmb.add(menu1);jmb.add(menu2); jmb.add(menu3);jmb.add(menu4); jmb.add(menu5); //将菜单条添加到窗体上this.setJMenuBar(jmb);//将工具条添加到窗体上this.add(jtb,BorderLayout.NORTH); //给文本域添加滚动条JScrollPane jsp=new JScrollPane(jta); jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SC ROLLBAR_AS_NEEDED); this.add(jsp); //展现this.setTitle("记事本"); ImageIcon icon=new ImageIcon("images\\rowin.gif");this.setIconImage(icon.getImage());//设置窗体图标this.setSize(500,400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { Demo8_12 demo8_12=new Demo8_12(); } }。

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

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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

import java.awt.*;import java.awt.event.*;import java.text.*;import java.util.*;import java.io.*;import javax.swing.*;import javax.swing.event.*;import java.util.List;public class TextFileEditorJFrame extends JFrame implements ActionListener,ItemListener,MouseListener{private File file; //当前文件//---文件菜单,定义的添加项,新建,打开,保存,另存为,退出------//private JMenuItem menuitem_create,menuitem_open,menuitem_save,menuitem_saveas,menuitem_exit;//---编辑菜单,定义的添加项,剪切,复制,粘贴,删除-------//private JMenuItem menuitem_cut, menuitem_copy,menuitem_paste,menuitem_delete;//----右键菜单项,剪切,复制,粘贴,删除----//private JMenuItem final_cut,final_copy,final_paste,final_delete;private JTextArea textarea; //文本编辑区private JButton button_color; //设置颜色private JScrollPane scroll; //为文本编辑区提供滚动条private JDialog dialog1,dialog2; //对话框private JLabel label_dialog,label_dialog2;private Boolean via=false;private JPopupMenu popupmenu; //右键弹出菜单private JCheckBoxMenuItem checkbox_cuti, checkbox_xieti; //复选框表示粗体、斜体private String fileName=null; //文件名private int k = 0; //k用来存放字号大小private String size = "宋体";private JComboBox jco1,jco2; //工具栏处表示字体,字号组合框File currentFile,saveFileName = null, fileName1 = null; //文件类public TextFileEditorJFrame() //空文件的构造方法,初始化{super("文本编辑器"); //框架的标题this.setSize(700,500);this.setLocation(140,140); //相对界面的位置this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);textarea = new JTextArea("");textarea.addMouseListener(this);this.add(textarea); //添加文本区this.addMenu(); //调用自定义的addMenu()方法,添加菜单栏this.addToolBar(); //调用自定义的addToolBar()方法,添加工具栏textarea.setFont(new Font("宋体",1,16)); //设置文本区初始字体this.setV isible(true);textarea.requestFocus(); //设置文本区焦聚this.file = null; //空文件对象}public TextFileEditorJFrame(String filename) //指定文件名的构造方法//即打开文件后显示文件内容{this();if (filename!=null){this.file = new File(filename);this.setTitle(filename); //将文件名添加在窗口标题栏上this.textarea.setText(this.readFromFile()); //读取指定文件中的字符串,并显示在文本区中}}public TextFileEditorJFrame(File file) //指定文件对象的构造方法,{ //通过文件对象调用函数得到文件名,从而读取文件内容this();if (file!=null){this.file = file;this.setTitle(this.file.getName()); //把标题设置成得到的文件名,通过文件对象调用函数得到文件名this.textarea.setText(this.readFromFile()); //调用readFromFile()方法,把读取的内容在文本区显示}}private void addMenu() //添加主菜单{JMenuBar menubar = new JMenuBar(); //创建菜单栏this.setJMenuBar(menubar); //将菜单条设置为当前窗口的菜单条//-----------------------------------------文件菜单----------------------------------------------JMenu menu_file = new JMenu("文件");menubar.add(menu_file); //创建文件菜单,并添加到菜单栏menuitem_create = new JMenuItem("新建(N)"); //创建新建菜单项menuitem_create.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK)); //为新建设置快捷键Ctrl+Nmenu_file.add(menuitem_create); //添加到文件菜单menuitem_create.addActionListener(this);menuitem_open = new JMenuItem("打开(O)"); //创建打开菜单项menuitem_open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,ActionEvent.CTRL_MASK)); //为打开设置快捷键Ctrl+Omenu_file.add(menuitem_open); //添加到文件菜单menuitem_open.addActionListener(this);menuitem_save = new JMenuItem("保存(S)");//创建保存菜单项menuitem_save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK));//为保存设置快捷键Ctrl+Smenu_file.add(menuitem_save); //添加到文件菜单menuitem_save.addActionListener(this);menuitem_saveas = new JMenuItem("另存为(F12)");//创建另存为菜单项menuitem_saveas.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F12,ActionEvent.CTRL_MASK));//为另存为设置快捷键Ctrl+F12menu_file.add(menuitem_saveas); //添加到文件菜单menuitem_saveas.addActionListener(this);menu_file.addSeparator(); //在菜单中添加分隔线,将菜单项进行分组menuitem_exit = new JMenuItem("退出(E)");//创建退出菜单项menuitem_exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,ActionEvent.ALT_MASK));//为退出设置快捷键Ctrl+Emenu_file.add(menuitem_exit);//添加到文件菜单menuitem_exit.addActionListener(this);//-----------------------------------------编辑菜单---------------------------------------------JMenu menu_edit = new JMenu("编辑"); //创建编辑菜单,添加到菜单栏menubar.add(menu_edit);menuitem_cut = new JMenuItem("剪切(X)");//创建剪切菜单项,并添加到编辑菜单中menuitem_cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL _MASK));//设置快捷键Ctrl+Xmenu_edit.add(menuitem_cut);menuitem_cut.addActionListener(this);menuitem_copy = new JMenuItem("复制(C)");//在编辑菜单中添加复制菜单项menuitem_copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,ActionEvent.CTRL_M ASK));//设置快捷键Ctrl+Cmenu_edit.add(menuitem_copy);menuitem_copy.addActionListener(this);menuitem_paste = new JMenuItem("粘贴(V)");//创建粘贴menuitem_paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,ActionEvent.CTRL_M ASK));//设置快捷键Ctrl+Vmenu_edit.add(menuitem_paste);menuitem_paste.addActionListener(this);menuitem_delete = new JMenuItem("删除(D)");//创建删除menuitem_delete.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,ActionEvent.CTRL_ MASK));//设置快捷键Ctrl+Dmenu_edit.add(menuitem_delete);menuitem_delete.addActionListener(this);menu_edit.addActionListener(new ActionListener() // 注册事件监听{public void actionPerformed(ActionEvent e) {checkMenuItemEnabled(); // 设置剪切、复制、粘贴、删除等功能的可用性}});menu_edit.addSeparator(); //设置分隔线//-----------------------------------------格式菜单----------------------------------------------JMenu menu_style = new JMenu("格式"); //在菜单栏中创建格式菜单menubar.add(menu_style);JMenu menu_ziti = new JMenu("字体"); //添加字体项checkbox_cuti=new JCheckBoxMenuItem("粗体");checkbox_xieti=new JCheckBoxMenuItem("斜体");checkbox_cuti.addItemListener(this);checkbox_xieti.addItemListener(this);menu_ziti.add(checkbox_cuti); //粗体,斜体复选菜单添加到字体项中menu_ziti.add(checkbox_xieti);menu_style.add(menu_ziti);JMenuItem menu_color = new JMenuItem("颜色"); //添加颜色项menu_style.add(menu_color);menu_color.addActionListener(this);//-----------------------------------------帮助菜单----------------------------------------------JMenu menu_help = new JMenu("帮助"); //创建帮助菜单menubar.add(menu_help);JMenuItem menu_look = new JMenuItem("查看帮助(L)"); //帮助菜单中添加帮助查看项menu_help.add(menu_look);menu_look.addActionListener(this);JMenuItem menu_about = new JMenuItem("关于文本(A)");//添加关于文本项menu_help.add(menu_about);menu_about.addActionListener(this);dialog1 = new JDialog(this,"关于文本"); //单击关于文本,弹出对话框dialog1.setSize(480,150);label_dialog = new JLabel("---作者:郑健健,制作时间:2013,1,8------",JLabel.CENTER);dialog1.add(label_dialog);dialog1.setDefaultCloseOperation(HIDE_ON_CLOSE);dialog2 = new JDialog(this,"帮助文档");//单击查看帮助,弹出对话框dialog2.setSize(500,220);label_dialog2 = new JLabel("---------欢迎使用记事本--------",JLabel.CENTER);dialog2.add(label_dialog2);dialog2.setDefaultCloseOperation(HIDE_ON_CLOSE);//----------------------------------------------右键弹出菜单对象--------------------------------------------------------popupmenu = new JPopupMenu();final_cut = new JMenuItem("剪切(X)"); //final_cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));//设置快捷键Ctrl+Xpopupmenu.add(final_cut); //添加剪切final_cut.addActionListener(this);final_copy = new JMenuItem("复制(C)");final_copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK)) ;//设置快捷键Ctrl+Cpopupmenu.add(final_copy); //添加复制final_copy.addActionListener(this);final_paste = new JMenuItem("粘贴(V)");final_paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK)) ;//设置快捷键Ctrl+Vpopupmenu.add(final_paste); //添加粘贴final_paste.addActionListener(this);final_delete = new JMenuItem("删除(D)");final_delete.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_MASK) );//设置快捷键Ctrl+Dpopupmenu.add(final_delete); //添加删除final_delete.addActionListener(this);textarea.add(popupmenu);// --------------------文本编辑区注册右键菜单事件-----------//textarea.addMouseListener(new MouseAdapter() {public void mousePressed(MouseEvent e) {checkForTriggerEvent(e);}public void mouseReleased(MouseEvent e) {checkForTriggerEvent(e);}private void checkForTriggerEvent(MouseEvent e) {if (e.isPopupTrigger()){popupmenu.show(e.getComponent(), e.getX(), e.getY());// X、Y// 显示弹出菜单}// 在组件调用者的坐标空间中的位置checkMenuItemEnabled(); // 设置剪切、复制、粘贴、删除等功能的可用性textarea.requestFocus(); // 编辑区获取焦点}});Container container = getContentPane(); //创建滚动条container.setLayout(new BorderLayout() );scroll = new JScrollPane( textarea,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_ALW AYS );container.add( scroll, BorderLayout.CENTER );}private void addToolBar(){//------------------------设置工具栏---------------------------------//JToolBar jto=new JToolBar(); //创建工具栏jto.setBackground(Color.black); //设置工具栏背景颜色JButton btziti=new JButton("字体");jto.add(btziti); //添加显示字体的按钮Stringob1[]=GraphicsEnvironment.getLocalGraphicsEnvironment().getA vailableFontFamilyNames();//字体组合框数据项String ob2[]={"10","12","14","16","18","20","24","28","32","36","48","72"};//字号组合框数据项jco1=new JComboBox(ob1);//两个组合框:字体,字号大小jco2=new JComboBox(ob2);jco1.addActionListener(this);jco2.addActionListener(this);jto.add(jco1); //工具栏里面添加:字体,字号组合框jto.add(jco2);this.add(jto,BorderLayout.NORTH);//添加工具栏}public void checkMenuItemEnabled(){String selectText = textarea.getSelectedText();if (selectText == null){ //如果没有选择文本,剪切,删除,复制功能不可用menuitem_cut.setEnabled(false);final_cut.setEnabled(false);menuitem_copy.setEnabled(false);final_copy.setEnabled(false);menuitem_delete.setEnabled(false);final_delete.setEnabled(false);}else{ //选择了文本,剪切,删除,复制功能可用menuitem_cut.setEnabled(true);final_cut.setEnabled(true);menuitem_copy.setEnabled(true);final_copy.setEnabled(true);menuitem_delete.setEnabled(true);final_delete.setEnabled(true);}}public String readFromFile() //使用流从指定文本文件中读取字符串{try{FileReader fin = new FileReader(this.file); //以文件对象作为文件名来读取文件BufferedReader bin = new BufferedReader(fin); //设置缓冲区,将读到的字符串暂存在缓冲区String aline="", lines="";do{aline = bin.readLine(); //读取一行字符串,抵达文件结尾时返回nullif (aline!=null)lines += aline + "\r\n";} while (aline!=null); //文件不为空一直读取bin.close(); //读取后关闭文件,释放缓冲区fin.close();return lines;}catch (IOException ioex){return null; //出现异常,返回空}}public boolean openDialog() //执行打开文件对话框{ //在打开文件对话框中,单击【打开】按钮时返回true,单击【取消】按钮时返回false FileDialog filedialog = new FileDialog(this,"打开",FileDialog.LOAD); //创建打开文件对话框filedialog.setVisible(true); //显示打开文件对话框if ((filedialog.getDirectory()!=null) && (filedialog.getFile()!=null)) //单击【打开】按钮时,文件路径不为空,文件名不为空{this.file = new File(filedialog.getDirectory(), filedialog.getFile());return true;}elsereturn false; //单击【取消】按钮时}public void fileSaveAs(){JFileChooser jFileChooser=new JFileChooser();if(JFileChooser.APPROVE_OPTION==jFileChooser.showSaveDialog(this))//打开保存对话框,选择yes or no{fileName=(jFileChooser.getSelectedFile()+".txt");//文件名称赋给fileNamefileSave(); //fileName不为空,调用保存函数,对文件进行另存}}public void fileSave(){if(fileName==null){fileSaveAs();}else{if(!via){if(fileName.length()!=0){try{File saveFile=new File(fileName);FileWriter fw=new FileWriter(saveFile);fw.write(textarea.getText()); //文本内容输出fw.close();via=true;this.setTitle(fileName.substring(stIndexOf("\\")+1));this.repaint();}catch(Exception e){JOptionPane.showMessageDialog(this,"保存文件时出错","错误",JOptionPane.ERROR_MESSAGE);//提示错误}}else{fileSaveAs();}}}}public void chooseColor(){Color bcolor=textarea.getForeground();JColorChooser jColor=new JColorChooser();jColor.setColor(bcolor);textarea.setForeground(JColorChooser.showDialog(textarea,"选择颜色",bcolor));}public void actionPerformed(ActionEvent e) //单击事件处理程序{if (e.getActionCommand()=="新建(N)") //单击新建时,弹出提示框,文件是否保存{textarea.replaceRange("", 0, textarea.getText().length());this.setTitle("无标题- 记事本");}if(e.getActionCommand()=="打开(O)") //单击打开时,弹出对话框{if (this.openDialog()) //打开文件对话框并单击【打开】按钮时执行,单击【取消】按钮时不执行{this.setTitle(this.file.getName()); //取得文件名,作为标题this.textarea.setText(this.readFromFile());//调用读函数,把文件读出,显示到文本区}}if(e.getActionCommand()=="保存(S)" ) //非第1次保存时,只保存不需要打开保存文件对话框{this.fileSave();}if((e.getActionCommand()=="保存(S)" && this.file==null) || e.getActionCommand()=="另存为(F12)"){ //第1次保存或执行"另存为"菜单时,需要打开保存文件对话框this.fileSaveAs();}if (e.getSource() == menuitem_exit) {int exitChoose = JOptionPane.showConfirmDialog(this, "确定要退出吗?", "退出提示", JOptionPane.OK_CANCEL_OPTION);if (exitChoose == JOptionPane.OK_OPTION) {System.exit(0);} else {return;}}if(e.getActionCommand()=="剪切(T)")textarea.cut();if(e.getActionCommand()=="复制(C)")textarea.copy();if(e.getActionCommand()=="粘贴(V)")textarea.paste();if(e.getActionCommand()=="删除(D)"){textarea.replaceRange("",textarea.getSelectionStart(),textarea.getSelectionEnd());via=false;}if(e.getActionCommand()=="颜色"){chooseColor();}if(e.getActionCommand() == "查看帮助(L)"){dialog2.setLocation(250,330);dialog2.setVisible(true);}if(e.getActionCommand() == "关于文本(A)"){dialog1.setLocation(250,330);dialog1.setVisible(true);}int style=textarea.getFont().getStyle();if(e.getSource()==jco1||e.getSource()== jco2)//字体和字号组合框的实现{size=(String) jco1.getSelectedItem();k=Integer.parseInt(jco2.getSelectedItem().toString());textarea.setFont(new Font(size,Font.PLAIN,k));}}public void itemStateChanged(ItemEvent e) //复选框选择事件处理程序{ //实现ItemListener接口中的方法Font font = textarea.getFont();int style = font.getStyle();if (e.getSource()==checkbox_cuti)style = style ^ 1; //整数的位运算,异或^if (e.getSource()==checkbox_xieti)style = style ^ 2;textarea.setFont(new Font(font.getName(),style,font.getSize()));}public void mouseClicked(MouseEvent mec) //单击鼠标时触发{ //实现MouseListener接口中的方法if (mec.getModifiers()==mec.BUTTON3_MASK) //单击的是鼠标右键popupmenu.show(textarea,mec.getX(),mec.getY()); //在鼠标单击处显示快捷菜单}public void mousePressed(MouseEvent mep) { }public void mouseReleased(MouseEvent mer) { }public void mouseEntered(MouseEvent mee) { }public void mouseExited(MouseEvent mex) { }public void mouseDragged(MouseEvent med) { }public static void main(String arg[]){new TextFileEditorJFrame();}}。

相关文档
最新文档