一、java记事本,实现了:复制、粘贴、剪切、清空、查找、替换、改变字体样式功能。

二、主函数

package a;
import a.notepad;//记事本

import java.awt.EventQueue;

public class main {
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					notepad frame = new notepad();//创建窗体对象
					frame.setVisible(true);//设置窗体可见
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
}

三、记事本窗体

package a;

import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JDialog;
import a.DialogBox;
import a.Seek;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.TextArea;
import java.awt.Toolkit;
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 javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.security.auth.x500.X500Principal;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;

import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.IOException;
import java.security.PublicKey;

import javax.swing.JMenu;
import javax.swing.JMenuBar;
import java.awt.Color;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

public class notepad extends JFrame {
	
	/**
	 * Launch the application.
	 */
//	public static void main(String[] args) {
//		EventQueue.invokeLater(new Runnable() {
//			public void run() {
//				try {
//					notepad frame = new notepad();//创建窗体对象
//					frame.setVisible(true);//设置窗体可见
//				} catch (Exception e) {
//					e.printStackTrace();
//				}
//			}
//		});
//	}
	/**
	 * Create the frame.
	 */
	public notepad() {
		super("记事本");//添加窗体标题
		Container container = getContentPane();
		getContentPane().setBackground(new Color(255, 255, 255));
		getContentPane().setForeground(new Color(255, 255, 255));
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体关闭方式
		
		//获取屏幕大小
		Toolkit kit = Toolkit.getDefaultToolkit();
		//获取屏幕大小(int类型)
		Dimension screenSize = kit.getScreenSize();
				
		//通过屏幕大小获取宽度和长度
		int screenw = screenSize.width;
		int screenh = screenSize.height;
		//设置主窗体的大小
		int windoww = 450;//宽
		int windowh = 300;//高
		//坐标x
		int x = (screenw - windoww)/2;
		//坐标y
		int y = (screenh - windowh)/2;

		setBounds(x, y, windoww, windowh);
		
		//实现菜单栏、菜单及菜单项
		/***************菜单栏**************/
		JMenuBar menuBar = new JMenuBar();//创建菜单条对象
		menuBar.setBackground(new Color(128, 255, 255));
		menuBar.setForeground(new Color(0, 255, 0));
		setJMenuBar(menuBar);
		
		JMenu mnNewMenu = new JMenu("文件");//为菜单栏添加菜单
		menuBar.add(mnNewMenu);
		
		JMenuItem mntmNewMenuItem = new JMenuItem("新建");//添加菜单项
		mnNewMenu.add(mntmNewMenuItem);
		
		JMenuItem mntmNewMenuItem_1 = new JMenuItem("打开");
		mnNewMenu.add(mntmNewMenuItem_1);
		
		JMenuItem mntmNewMenuItem_2 = new JMenuItem("保存");
		mnNewMenu.add(mntmNewMenuItem_2);
		
		JMenuItem mntmNewMenuItem_3 = new JMenuItem("另存为");
		mnNewMenu.add(mntmNewMenuItem_3);
		
		/*******实现退出功能***********/
		JMenuItem mntmNewMenuItem_4 = new JMenuItem("退出");
		mntmNewMenuItem_4.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});
		mnNewMenu.add(mntmNewMenuItem_4);
		
		JMenu mnNewMenu_1 = new JMenu("编辑");
		menuBar.add(mnNewMenu_1);
		
		JMenuItem mntmNewMenuItem_6 = new JMenuItem(" 复制  Ctrl + C");
	
		mnNewMenu_1.add(mntmNewMenuItem_6);
		
		JMenuItem mntmNewMenuItem_7 = new JMenuItem("粘贴 Ctrl + V");
		
		mnNewMenu_1.add(mntmNewMenuItem_7);
		
		JMenuItem mntmNewMenuItem_8 = new JMenuItem(" 剪切 Ctrl + X");
		
		mnNewMenu_1.add(mntmNewMenuItem_8);
		
		JMenuItem mntmNewMenuItem_9 = new JMenuItem("删除 Delete");
		mnNewMenu_1.add(mntmNewMenuItem_9);
		
		JMenuItem mntmNewMenuItem_10 = new JMenuItem("修改");
		mnNewMenu_1.add(mntmNewMenuItem_10);
		
		JMenuItem mntmNewMenuItem_11 = new JMenuItem("查找");
	
		mnNewMenu_1.add(mntmNewMenuItem_11);
		
		JMenuItem mntmNewMenuItem_12 = new JMenuItem("替换");
		
		mnNewMenu_1.add(mntmNewMenuItem_12);
		
		JMenuItem mntmNewMenuItem_23 = new JMenuItem("清空");
		
		mnNewMenu_1.add(mntmNewMenuItem_23);
		
		JMenu mnNewMenu_2 = new JMenu("文字");
		menuBar.add(mnNewMenu_2);
		
		JMenu mnNewMenu_5 = new JMenu("字体");
		mnNewMenu_2.add(mnNewMenu_5);
		
		JMenuItem mntmNewMenuItem_15 = new JMenuItem("黑体");
		
		
		mnNewMenu_5.add(mntmNewMenuItem_15);
		
		JMenuItem mntmNewMenuItem_16 = new JMenuItem("楷体");
		
		mnNewMenu_5.add(mntmNewMenuItem_16);
		
		JMenu mnNewMenu_6 = new JMenu("字号");
		mnNewMenu_2.add(mnNewMenu_6);
		
		JMenuItem mntmNewMenuItem_13 = new JMenuItem("一号字体");
		
		mnNewMenu_6.add(mntmNewMenuItem_13);
		
		JMenuItem mntmNewMenuItem_14 = new JMenuItem("小一");
		
		mnNewMenu_6.add(mntmNewMenuItem_14);
		
		JMenuItem mntmNewMenuItem_17 = new JMenuItem("二号字体");
		
		mnNewMenu_6.add(mntmNewMenuItem_17);
		
		JMenuItem mntmNewMenuItem_18 = new JMenuItem("小二");
		mntmNewMenuItem_18.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			}
		});
		mnNewMenu_6.add(mntmNewMenuItem_18);
		
		JMenuItem mntmNewMenuItem_19 = new JMenuItem("三号字体");
		
		mnNewMenu_6.add(mntmNewMenuItem_19);
		
		JMenuItem mntmNewMenuItem_20 = new JMenuItem("小三");
	
		mnNewMenu_6.add(mntmNewMenuItem_20);
		
		JMenuItem mntmNewMenuItem_21 = new JMenuItem("四号字体");
	
		mnNewMenu_6.add(mntmNewMenuItem_21);
		
		JMenuItem mntmNewMenuItem_22 = new JMenuItem("小四");
		
		mnNewMenu_6.add(mntmNewMenuItem_22);
		mnNewMenu_2.getSelectedIcon();
		
		JMenu mnNewMenu_3 = new JMenu("查看");
		menuBar.add(mnNewMenu_3);
		
		JMenu mnNewMenu_4 = new JMenu("关于我们");
		menuBar.add(mnNewMenu_4);
		
		/*****为关于我们菜单添加一个小组介绍的文本域*******/
		String strnameString = 
				"杨建	项目策划\n"
				+ "谢彩云	代码编写\n"
				+ "杨胜文	文档编写\n";
		JTextArea textArea_1 = new JTextArea(strnameString);
		textArea_1.setEditable(false);//设置文本域只读
		mnNewMenu_4.add(textArea_1);
		
		/***********添加文本域**************/
		JTextArea textArea = new JTextArea();
		textArea.setBackground(new Color(226, 254, 253));//设置文本域的背景颜色
		JScrollPane js = new JScrollPane(textArea);//为文本域添加滚动条
		getContentPane().add(js, BorderLayout.CENTER);
		
		//菜单项功能的实现
		/***********复制***************/
		mntmNewMenuItem_6.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String str_2 = textArea.getText();
				//获取系统剪贴板
				Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
				//封装文本内容
				Transferable trans = new StringSelection(str_2);
				//将文本内容设置到剪贴板
				clipboard.setContents(trans, null);
			}
		});
		
		/********************剪切*************/
		mntmNewMenuItem_8.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String str_2 = textArea.getText();
				//获取系统剪贴板
				Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
				//封装文本内容
				Transferable trans = new StringSelection(str_2);
				//将文本内容设置到剪贴板
				clipboard.setContents(trans, null);
				textArea.setText("");//清空文本域
//				System.out.println(str_2);
			}
		});
		
		/*********粘贴******/
		mntmNewMenuItem_7.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			// 获取系统剪贴板
		       Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();	
		       Transferable trans = clipboard.getContents(null);
		       if(trans != null) {
		    	   // 判断剪贴板中的内容是否支持文本
		    	   if (trans.isDataFlavorSupported(DataFlavor.stringFlavor)) {
		    		   try {
						String text = (String) trans.getTransferData(DataFlavor.stringFlavor);//获取剪切板上的文本内容
//						System.out.println(text);
						text = text + textArea.getText();
						textArea.setText(text);
					} catch (UnsupportedFlavorException e1) {
						// TODO 自动生成的 catch 块
						e1.printStackTrace();
					} catch (IOException e1) {
						// TODO 自动生成的 catch 块
						e1.printStackTrace();
					}
		    	   } 
		       }
			}
		});
		
		
		/***************查找*********************/
		mntmNewMenuItem_11.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				DialogBox dialogBox = new DialogBox();
			}
		});
		/************替换************/
		mntmNewMenuItem_12.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				DialogBox01 dialogBox01 = new DialogBox01();
			}
		});
		/*****************清空*************************/
		mntmNewMenuItem_23.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textArea.setText("");
			}
		});
		
		/*********设置字体样式**********/
		//字体
		mntmNewMenuItem_15.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textArea.setFont(new Font("黑体",Font.BOLD,30));
			}
		});
		mntmNewMenuItem_16.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textArea.setFont(new Font("楷体",Font.BOLD,30));
			}
		});
		//字号
		mntmNewMenuItem_13.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textArea.setFont(new Font("黑体",Font.BOLD,60));
			}
		});
		mntmNewMenuItem_14.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textArea.setFont(new Font("黑体",Font.BOLD,55));
			}
		});
		
		mntmNewMenuItem_17.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textArea.setFont(new Font("黑体",Font.BOLD,50));
			}
		});
		mntmNewMenuItem_18.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textArea.setFont(new Font("黑体",Font.BOLD,45));
			}
		});
		mntmNewMenuItem_19.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textArea.setFont(new Font("黑体",Font.BOLD,40));
			}
		});
		mntmNewMenuItem_20.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textArea.setFont(new Font("黑体",Font.BOLD,35));
			}
		});
		mntmNewMenuItem_21.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textArea.setFont(new Font("黑体",Font.BOLD,30));
			}
		});
		mntmNewMenuItem_22.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textArea.setFont(new Font("黑体",Font.BOLD,25));
			}
		});
	}
	
	

	private StringSelection newStringSelection(String str) {
		// TODO 自动生成的方法存根
		return null;
	}
}

四、查找功能实现

package a;
import a.notepad;

import java.awt.Container;
import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.TextArea;
import java.awt.TextComponent;
import java.awt.Toolkit;
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.io.IOException;

import a.notepad;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import a.notepad;

public class DialogBox extends JDialog{
	private static final Frame JFrame = null;
	
//	public void DialogBox(TextComponent textArea) {
//		String str_2 = textArea.getText();
//		//获取系统剪贴板
//		Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
//		//封装文本内容
//		Transferable tr = new StringSelection(str_2);
//		//将文本内容设置到剪贴板
//		clipboard.setContents(tr, null);
//		// 获取系统剪贴板
//	    Clipboard cl = Toolkit.getDefaultToolkit().getSystemClipboard();	
//	    System.out.println(cl);
//	    Transferable tr1 = clipboard.getContents(null);
//	    if(tr1 != null) {
//	    // 判断剪贴板中的内容是否支持文本
//	    	if (tr1.isDataFlavorSupported(DataFlavor.stringFlavor)) {
//	    		   try {
//					String text = (String) tr1.getTransferData(DataFlavor.stringFlavor);//获取剪切板上的文本内容
//					System.out.println(text);
//					text = text + textArea.getText();
//					textArea.setText(text);
//				} catch (UnsupportedFlavorException e1) {
//					// TODO 自动生成的 catch 块
//					e1.printStackTrace();
//				} catch (IOException e1) {
//					// TODO 自动生成的 catch 块
//					e1.printStackTrace();
//				}
//	    	   } 
//	       }
//	}
	public DialogBox() {//无参构造函数
		
		/*
		 * 第一个参数:父窗体
		 *第二个参数:对话框标题
		 *第三个参数:是否阻塞父窗体
		 * 
		 */
		super(JFrame,"查找",true);

		// TODO 自动生成的构造函数存根
		//获取屏幕大小
		Toolkit kit = Toolkit.getDefaultToolkit();
		//获取屏幕大小(int类型)
		Dimension screenSize = kit.getScreenSize();
								
		//通过屏幕大小获取宽度和长度
		int screenw = screenSize.width;
		int screenh = screenSize.height;
				
		//设置屏幕的宽和高
		int windowsWedth = 300;
		int windowsHeight =90;
		//坐标x
		int x = (screenw - windowsWedth)/2;
		//坐标y
		int y = (screenh -  windowsHeight)/2;

		setBounds(x, y, windowsWedth, windowsHeight);//设置窗体的坐标,大小(x,y,长,宽)

		
		Container container2 = getContentPane();//获取窗体容器
//		container2.setLayout(new FlowLayout());//为容器添加流布局
		JPanel jp = new JPanel(new FlowLayout());//为容器添加流布局
		JLabel jl1 = new JLabel("查找对象:");
//		JLabel jl2 = new JLabel("替换值:");
		JTextField jt1 = new JTextField(11);
//		JTextField jt2 = new JTextField(16);
		
		jp.add(jl1);
//		container2.add(jp);
		//添加文本框
		jp.add(jt1);
		container2.add(jp);

//		jp.add(jl2);
//		container2.add(jp);
//		//添加文本框
//		jp.add(jt2);
//		container2.add(jp);
		
		JButton jButton = new JButton("确认查找");
		jp.add(jButton);
		container2.add(jp);
		
		setVisible(true);//设置窗体可见
		
	}


}

五、查找替换

package a;

import javax.swing.JFrame;


import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.TextArea;
import java.awt.Toolkit;
import java.nio.channels.NoConnectionPendingException;

import a.notepad;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import a.notepad;

public class DialogBox01 extends JDialog{
	private static final Frame JFrame = null;

//	notepad np = new notepad();
	public DialogBox01() {
		
		/*
		 * 第一个参数:父窗体
		 *第二个参数:对话框标题
		 *第三个参数:是否阻塞父窗体
		 * 
		 */
		super(JFrame,"替换",true);
//		Container container = new Container();
		// TODO 自动生成的构造函数存根
		//获取屏幕大小
		Toolkit kit = Toolkit.getDefaultToolkit();
		//获取屏幕大小(int类型)
		Dimension screenSize = kit.getScreenSize();
								
		//通过屏幕大小获取宽度和长度
		int screenw = screenSize.width;
		int screenh = screenSize.height;
				
		//设置屏幕的宽和高
		int windowsWedth = 300;
		int windowsHeight = 130;
		//坐标x
		int x = (screenw - windowsWedth)/2;
		//坐标y
		int y = (screenh -  windowsHeight)/2;
		
		setBounds(x, y, windowsWedth, windowsHeight);//设置窗体的坐标,大小(x,y,长,宽)

		
		Container container2 = getContentPane();//获取窗体容器
//		container2.setLayout(new FlowLayout());//为容器添加流布局
		JPanel jp = new JPanel(new FlowLayout());//为容器添加流布局
		JLabel jl1 = new JLabel("替换对象:");
		JLabel jl2 = new JLabel("    替换值:");
		JTextField jt1 = new JTextField(16);
		JTextField jt2 = new JTextField(16);
		
		jp.add(jl1);
//		container2.add(jp);
		//添加文本框
		jp.add(jt1);
		container2.add(jp);

		jp.add(jl2);
//		container2.add(jp);
		//添加文本框
		jp.add(jt2);
		container2.add(jp);
		JButton btn01 = new JButton("确认替换");
		jp.add(btn01);
		container2.add(jp);
		
		
		
		setVisible(true);//设置窗体可见
	}

}

六、复制实现

/***********复制***************/
		mntmNewMenuItem_6.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String str_2 = textArea.getText();
				//获取系统剪贴板
				Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
				//封装文本内容
				Transferable trans = new StringSelection(str_2);
				//将文本内容设置到剪贴板
				clipboard.setContents(trans, null);
			}
		});

七、剪切实现

/********************剪切*************/
		mntmNewMenuItem_8.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String str_2 = textArea.getText();
				//获取系统剪贴板
				Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
				//封装文本内容
				Transferable trans = new StringSelection(str_2);
				//将文本内容设置到剪贴板
				clipboard.setContents(trans, null);
				textArea.setText("");//清空文本域
//				System.out.println(str_2);
			}
		});

八、粘贴实现

/*********粘贴******/
		mntmNewMenuItem_7.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			// 获取系统剪贴板
		       Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();	
		       Transferable trans = clipboard.getContents(null);
		       if(trans != null) {
		    	   // 判断剪贴板中的内容是否支持文本
		    	   if (trans.isDataFlavorSupported(DataFlavor.stringFlavor)) {
		    		   try {
						String text = (String) trans.getTransferData(DataFlavor.stringFlavor);//获取剪切板上的文本内容
//						System.out.println(text);
						text = text + textArea.getText();
						textArea.setText(text);
					} catch (UnsupportedFlavorException e1) {
						// TODO 自动生成的 catch 块
						e1.printStackTrace();
					} catch (IOException e1) {
						// TODO 自动生成的 catch 块
						e1.printStackTrace();
					}
		    	   } 
		       }
			}
		});

九、清空实现

/*****************清空*************************/
		mntmNewMenuItem_23.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textArea.setText("");
			}
		});

十、效果图

java记事本技术路线 java 记事本_文本域

目录

一、java记事本,实现了:复制、粘贴、剪切、清空、查找、替换、改变字体样式功能。

二、主函数

三、记事本窗体

四、查找功能实现

五、查找替换

六、复制实现

七、剪切实现

八、粘贴实现

九、清空实现

十、效果图