技术点不多,主要涉及一些IO类的使用与GUI的用法,为大家提供一个简单的模板,更多的功能当然是留给大家自己来思考,代码可以自己拷过去运行一下,打开文件与另存为方法请填入绝对路径下的文件名,点击保存会直接保存到D盘,还可以设置字体,代码如下:
面板类:
import java.awt.FlowLayout; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStream; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.ScrollPaneConstants; @SuppressWarnings("serial") public class NotePad extends JFrame{ JTextArea textArea=new JTextArea(); public static void main(String args[]){ NotePad tf=new NotePad(); tf.showframe(); } public void showframe(){ //创建一个菜单选项 JMenuBar menubar=initMenu(); //给输入框添加滚动条 JScrollPane scroll=new JScrollPane(textArea); //设置滚动条的大小为窗口的大小 scroll.setPreferredSize(this.getSize()); //设置滚动条的出现方式为自动出现 scroll.setAutoscrolls(true); //设置垂直的滚动条总是显示 scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); //设置横向的滚动条总是显示 scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); //字体说明:0常规,1粗体,2斜体,3倾斜加粗 this.setJMenuBar(menubar); this.add(scroll); this.setTitle("我的记事本"); this.setSize(600,400); this.setDefaultCloseOperation(3); this.setLocationRelativeTo(null); this.setVisible(true); } //实例化一个菜单 public JMenuBar initMenu(){ JMenuBar menubar=new JMenuBar(); //主选项 String menu1[]=new String[]{"文件","编辑","格式","查看","帮助"}; //扩展选项 String me1[][]=new String[][]{{"打开(O) Ctrl+O","保存(S) Ctrl+S","另存为(A) Ctrl+A", "页面设置(U)","打印(P)","退出(E)"},{"撤销(Z) Ctrl+Z","剪切(X) Ctrl+X", "复制(C) Ctrl+C","粘贴(V) Ctrl+V","删除(D) Ctrl+D","查找(F) Ctrl+F", "替换(R) Ctrl+R"},{"自动换行","字体"},{"状态栏"}, {"查看帮助","关于记事本"}}; Font font=new Font("楷体",1,16); for(int i=0;i<menu1.length;i++){ //实例化菜单选项并添加到菜单上 JMenu menu=new JMenu(menu1[i]); menu.setFont(font); //实例化子菜单选项 for(int j=0;j<me1[i].length;j++){ //添加子菜单选项 JMenuItem me=new JMenuItem(me1[i][j]); me.setFont(font); //将子菜单添加到主菜单上面 menu.add(me); //给子菜单项添加监听器 MenuListener mlis=new MenuListener(new openFrame(),new fontFrame(),new saveFrame(),this); //设置按钮响应 me.setActionCommand(me1[i][j]); me.addActionListener(mlis); } //将菜单添加到菜单条上面 menubar.add(menu); } return menubar; } /** * 打开文件的界面 */ class openFrame { public void showFrame(){ final JFrame frame=new JFrame(); JLabel file_la=new JLabel("文件名"); final JTextField file_jf=new JTextField(15); JButton sure=new JButton("确定"); frame.setLayout(new FlowLayout()); frame.add(file_la); frame.add(file_jf); frame.add(sure); frame.setSize(240,120); frame.setLocationRelativeTo(null); frame.setTitle("请输入文件名"); frame.setVisible(true); sure.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ //打开文件的方法 openFile(file_jf.getText().toString()); frame.setVisible(false); } }); } } /** * 保存文件的界面 */ class saveFrame { public void showFrame(){ final JFrame frame=new JFrame(); JLabel file_la=new JLabel("文件名"); final JTextField file_jf=new JTextField(15); JButton sure=new JButton("确定"); frame.setLayout(new FlowLayout()); frame.add(file_la); frame.add(file_jf); frame.add(sure); frame.setSize(240,120); frame.setLocationRelativeTo(null); frame.setTitle("请输入文件名"); frame.setVisible(true); sure.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ saveFile(file_jf.getText().toString()); frame.setVisible(false); } }); } } /** * 设置字体的界面 */ class fontFrame{ public void showFrame(){ final JFrame fontframe=new JFrame(); JButton sure=new JButton("确定"); Font f=new Font("宋体",0,16); //字体选择项 String fontSelection[]=new String[]{"华文彩云","华文行楷","华文楷体","华文琥珀","华文中宋", "华文细黑","华文新魏","方正姚体","仿宋","宋体","黑体","隶书","楷体","幼圆"}; final JComboBox<String> fontBox=new JComboBox<String>(fontSelection); //设置滚动条 JScrollPane scroll=new JScrollPane(fontBox); fontBox.setFont(f); //字形选择项 String boldSelection[]=new String[]{"常规","加粗","斜体","倾斜加粗"}; final JComboBox<String> boldBox=new JComboBox<String>(boldSelection); boldBox.setFont(f); //字体大小 String size[]=new String[]{"8","9","10","11","12","14","16","18","20","22", "24","26","28","36","48","72"}; final JComboBox<String> fontsize=new JComboBox<String>(size); JScrollPane fontSize=new JScrollPane(fontsize); fontframe.setLayout(new FlowLayout()); fontframe.add(scroll); fontframe.add(boldBox); fontframe.add(fontSize); fontframe.add(sure); fontframe.setSize(350,260); fontframe.setTitle("请选择字体"); fontframe.setResizable(false); //设置窗体显示的位置 fontframe.setLocationRelativeTo(null); fontframe.setVisible(true); sure.addActionListener(new ActionListener(){ //字体设置的方法 public void actionPerformed(ActionEvent e){ //得到字体框的选择项 String font=fontBox.getSelectedItem().toString(); //得到样式框的选择项 String bold=boldBox.getSelectedItem().toString(); //得到字体大小框的字体大小 String s=fontsize.getSelectedItem().toString(); Integer size=Integer.parseInt(s); //设置字体 if(bold.equals("常规")){ textArea.setFont(new Font(font,0,size)); }else if(bold.equals("加粗")){ textArea.setFont(new Font(font,1,size)); }else if(bold.equals("斜体")){ textArea.setFont(new Font(font,2,size)); }else if(bold.equals("倾斜加粗")){ textArea.setFont(new Font(font,3,size)); } fontframe.setVisible(false); } }); } } /** * 打开文件的方法 * @param fileName 文件的绝对路径名 */ public void openFile(String fileName){ File file=new File(fileName); if(file.exists()){ try{ //读取文件 FileInputStream in=new FileInputStream(file); //创建与文件大小相同的字节数组 byte content[]=new byte[in.available()]; //读取文件 in.read(content); //将读到的文件放在输入框中显示出来 textArea.setText(new String(content)); in.close(); }catch(Exception e){ e.printStackTrace(); } } else{ System.out.println("文件不存在"); } } /** * 保存文件的方法 * @param fileName 文件的绝对路径名 */ public void saveFile(String fileName){ String text=textArea.getText(); try{ OutputStream out=new FileOutputStream(fileName); //text.getBytes();获取文件的字节数 out.write(text.getBytes()); out.close(); }catch(Exception e){ e.printStackTrace(); } } }
监听类:
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JOptionPane; import 记事本.NotePad.fontFrame; import 记事本.NotePad.openFrame; import 记事本.NotePad.saveFrame; public class MenuListener implements ActionListener{ private openFrame open;//弹出打开文件的窗体 private fontFrame font;//弹出字体文件的窗体 private saveFrame save;//弹出保存文件的窗体 private NotePad tf; public MenuListener(openFrame open,fontFrame font,saveFrame save,NotePad tf){ this.open=open; this.font=font; this.save=save; this.tf=tf; } public void actionPerformed(ActionEvent e){ String com=e.getActionCommand(); if(com.equals("打开(O) Ctrl+O")){//打开一个记事本文件 open.showFrame(); } else if(com.equals("字体")){//设置字体的窗口 font.showFrame(); } else if(com.equals("保存(S) Ctrl+S")){//快捷保存文件 tf.saveFile("d://新建记事本.txt"); } else if(com.equals("另存为(A) Ctrl+A")){//另存为新文件 save.showFrame(); } else if(com.equals("退出(E)")){ int selection=JOptionPane.showConfirmDialog(null, "确定要退出?","",JOptionPane.YES_NO_OPTION); if(selection==0){ tf.dispose();//退出程序 }else{ } } } }
相关推荐
Java记事本制作是一个基础但实用的编程实践项目,它能帮助初学者更好地理解Java Swing库在图形用户界面(GUI)开发中的应用。这个“Java记事本小程序”是使用集成开发环境MyEclipse编写的,它展示了如何利用Java语言...
C# 、winform版个人记事本制作。适合初学者参考学习,熟练掌握菜单栏的等控件。
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库在Visual C++ 6.0中创建一个简单的记事本程序。MFC 是一个C++类库,它为Windows应用程序开发提供了抽象和封装,使开发者可以更容易地利用...
通过以上知识点,我们可以了解到制作一个简易记事本的过程,包括如何利用C#语言和Visual Studio 2008开发环境创建Windows应用程序,以及如何添加和配置各种控件以实现特定功能。这种实践有助于理解C#编程和Windows...
在本教程中,我们将深入探讨如何使用C#编程语言创建一个简单的记事本应用程序。C#是一种面向对象的、类型安全的编程语言,由微软公司开发,主要用于构建Windows应用程序。这个"WindowsApplication2"项目正是一个典型...
第一步:打开记事本 打开记事本,准备编写 HTML 代码。记事本是一个简单的文本编辑器,能够编写 HTML 代码。 第二步:编写 HTML 代码 开始编写 HTML 代码。首先编写必须的几个代码:、、、、、、、。这些代码是 ...
【C# 多功能记事本 音乐盒】是一款结合了文字编辑和音乐播放功能的应用程序,旨在为用户提供一个集记录生活、创作灵感与享受音乐于一体的平台。这款软件是用C#编程语言开发的,充分体现了C#在构建桌面应用上的强大...
Java制作记事本 Java制作记事本 Java制作记事本 Java制作记事本Java制作记事本 Java制作记事本
wpf 制作的记事本wpf 制作的记事本wpf 制作的记事本wpf 制作的记事本wpf 制作的记事本wpf 制作的记事本wpf 制作的记事本
### C# 记事本制作知识点详解 #### 一、引言 在现代软件开发领域,使用C#语言创建各种应用程序已经成为一种趋势。本篇内容详细介绍如何利用C#中的Visual Studio 2008来设计并实现一个基本的记事本程序。此记事本...
记事本制作
【VB制作简易记事本】项目是一个初学者在实习期间使用Visual Basic(VB)编程语言构建的简单文本编辑器,其设计灵感来源于Windows系统自带的记事本应用程序。这个项目旨在帮助用户理解VB的基本概念,以及如何利用VB...
本项目“c#制作的记事本”是一个基于C#开发的简单文本编辑器,它具备基本的记事本功能,并且扩展了打印和打印预览的能力,为用户提供更为便捷的文档处理体验。 首先,我们要理解C#记事本的基本结构。一个简单的...
标题中的“扫描器+记事本+系统工具启动器等等...”揭示了这个压缩包可能包含几种不同类型的实用工具。让我们逐一深入理解这些组件: 1. **扫描器**:在IT领域,扫描器通常指的是网络扫描器或安全扫描器。网络扫描器...
这个名为"C#制作记事本.rar"的压缩包文件显然包含了一个使用C#编程语言实现的简单记事本程序。这个项目对于初学者来说是很好的实践案例,因为它涉及到基础的GUI(图形用户界面)设计、文本处理以及事件处理等核心...
标题中的"C# 制作的记事本"指的是使用C#编程语言开发的一款文本编辑软件,类似于Windows系统自带的记事本程序。C#是一种面向对象的、现代的编程语言,由微软公司开发,广泛应用于桌面应用、游戏开发、Web应用以及...
在Java编程语言中,制作一个简单的记事本程序是一个经典的练习,它可以帮助初学者深入理解IO流和Swing图形用户界面(GUI)的设计。在这个项目中,我们将主要关注两个核心部分:读写文件的IO流操作和构建用户交互界面...
java jframe actionlister file java制作记事本实现文件的打开保存,关闭,复制粘贴剪切等功能
【Qt制作的记事本软件】是一个利用Qt框架编写的C++应用程序,旨在提供类似传统记事本的功能,但具有更现代的用户界面和可能的扩展功能。Qt是一个跨平台的开发框架,支持Windows、Linux、macOS等多种操作系统,使得这...