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记事本,实现了:复制、粘贴、剪切、清空、查找、替换、改变字体样式功能。
二、主函数
三、记事本窗体
四、查找功能实现
五、查找替换
六、复制实现
七、剪切实现
八、粘贴实现
九、清空实现
十、效果图