Java关于设计简单Windows记事本程序

package Swing;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class NoteBook {
	//设置窗口的基本属性
	public static void _JFrame(JFrame jf) {
		jf.setBounds(400,150, 500, 500);
		//x,y,表示窗口左上角出现的位置,w,h表示窗口的大小
		//可代替setSize()和setLocation()的功能
		Toolkit T=Toolkit.getDefaultToolkit();
		//粘取图片的工具
		//导入包java.awt.Toolkit	
		Image img=T.getImage("E:\\LearnJavaTest\\记事本.png");
		jf.setIconImage(img);
		//设置应用图标
		jf.setResizable(true);
		//设置是否可调节窗口大小
		jf.setVisible(true);
		//设置窗口是否可见
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//设置的X的功能,关闭窗口,或者隐藏窗口
	}
	
	//设置Ctrl+功能的方法
	public static void SetCtrl(JMenuItem JI, int key1,int key2) {
		JI.setAccelerator(KeyStroke.getKeyStroke(key1,key2));
	}
	public  static void AddFileMenu(setMenu File) {		
		JMenuItem New=new JMenuItem("新建(N)"),
				  Open=new JMenuItem("打开(O)"),
				  Save=new JMenuItem("保存(S)"),
				  OtherSave=new JMenuItem("另保存(A)"),
				  PageSetting=new JMenuItem("页面设置(U)",KeyEvent.VK_N),
				  Print=new JMenuItem("打印(P)"),
				  Close=new JMenuItem("关闭(C)",KeyEvent.VK_C);
		SetCtrl(New,KeyEvent.VK_N, InputEvent.CTRL_MASK);
		//设置Ctrl+字母功能
		SetCtrl(Open,KeyEvent.VK_O, InputEvent.CTRL_MASK);
		SetCtrl(Save,KeyEvent.VK_S, InputEvent.CTRL_MASK);
		SetCtrl(Print,KeyEvent.VK_P, InputEvent.CTRL_MASK);
		File.add(New);
		File.add(Open);
		File.add(Save);
		File.add(OtherSave);
		File.add(PageSetting);
		File.add(Print);
		File.add(Close);
		//添加子菜单到文件中
	}
	public  static void AddEditMenu(setMenu File) {		
		JMenuItem Revoke=new JMenuItem("撤销(Z)"),
				  Shear=new JMenuItem("剪切(X)"),
				  Copy=new JMenuItem("复制(C)"),
				  Paste=new JMenuItem("粘贴(P)"),
				  SearchBing=new JMenuItem("受用Bing搜索"),
				  Search=new JMenuItem("查找(T)"),
				  SearchNext=new JMenuItem("查找下一个",KeyEvent.VK_F3),
				  Replace=new JMenuItem("替换(R)"),
				  Goto=new JMenuItem("转到(G)"),
				  AllSelect=new JMenuItem("全选(A)"),
				  Date=new JMenuItem("时间/日期(D)",KeyEvent.VK_F5);
		SetCtrl(Revoke,KeyEvent.VK_Z, InputEvent.CTRL_MASK);		  	
		SetCtrl(Shear,KeyEvent.VK_X, InputEvent.CTRL_MASK);
		SetCtrl(Copy,KeyEvent.VK_C, InputEvent.CTRL_MASK);
		SetCtrl(Paste,KeyEvent.VK_V, InputEvent.CTRL_MASK);
		SetCtrl(Search,KeyEvent.VK_F, InputEvent.CTRL_MASK);
		SetCtrl(Replace,KeyEvent.VK_H, InputEvent.CTRL_MASK);
		SetCtrl(Goto,KeyEvent.VK_G, InputEvent.CTRL_MASK);
		SetCtrl(AllSelect,KeyEvent.VK_A, InputEvent.CTRL_MASK);
		File.add(Revoke);
		File.add(Shear);
		File.add(Copy);
		File.add(Paste);
		File.add(SearchBing);
		File.add(Search);
		File.add(SearchNext);
		File.add(Replace);
		File.add(Goto);
		File.add(AllSelect);
		File.add(Date);
		//添加子菜单到文件中
	}
	public  static void AddStyleMenu(setMenu File) {		
		JMenuItem NewLine=new JMenuItem("自动换行(W)",KeyEvent.VK_W),
				  _Font=new JMenuItem("字体(F)",KeyEvent.VK_F);		 				
		File.add(NewLine);
		File.add(_Font);
		//添加子菜单到文件中
	}
	public  static void AddCheckMenu(setMenu File) {		
		JMenuItem New=new JMenuItem("缩放(Z)",KeyEvent.VK_N),
				  Open=new JMenuItem("状态栏(S)",KeyEvent.VK_O);		 				
		File.add(New);
		File.add(Open);
		//添加子菜单到文件中
	}
	public  static void AddHelpMenu(setMenu File) {		
		JMenuItem New=new JMenuItem("查看(H)",KeyEvent.VK_H),
				  Open=new JMenuItem("关于记事本(A)",KeyEvent.VK_O);			 				
		File.add(New);
		File.add(Open);
		//添加子菜单到文件中
	}
	
	//设置带滚动条的文本框
	public static void setJTextArea(JFrame JF) {
		JTextArea JTA=new JTextArea();
		JTA.setEditable(true);
		//设置文本可编辑
		JScrollPane JSP=new JScrollPane(JTA);
		//设置带滚动条的文本框
		JTA.setTabSize(2);
		//设置Tab的长度,等于2个中文字符
		JTA.setFont(new Font("等线",Font.BOLD,18));
		//设置文本的字体、大小、格式
		JF.add(JSP);
		//添加组件
	}
	
	//主方法
	public static void main(String[] args) {
		JFrame JF=new JFrame("诗意记事本");
		JMenuBar JMB=new JMenuBar();//定义菜单栏
		setMenu File=new setMenu("文件(F)",KeyEvent.VK_F);
		setMenu Edit=new setMenu("编辑(E)",KeyEvent.VK_E);
		setMenu Style=new setMenu("格式(O)");
		setMenu Check=new setMenu("查看(V)",KeyEvent.VK_V);
		setMenu Help=new setMenu("帮助(H)",KeyEvent.VK_H);
		//添加子功能
		AddFileMenu(File);
		AddEditMenu(Edit);
		AddStyleMenu(Style);
		AddCheckMenu(Check);
		AddHelpMenu(Help);
		//添加文件菜单到菜单栏中
		JMB.add(File);
		JMB.add(Edit);
		JMB.add(Style);
		JMB.add(Check);
		JMB.add(Help);
		//添加菜单栏到窗口上
		JF.setJMenuBar(JMB);
		//添加文本框
		setJTextArea(JF);
		//显示窗口
		_JFrame(JF);
	}

}
//添加菜单栏一级菜单
class setMenu extends JMenu{
	public setMenu(String title) {
		super(title);
	}
	public setMenu(String title,int Key) {
		super(title);
		setMnemonic(Key);		
	}
}

窗口图标图片

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现记事本的大部分功能,适合新手看。 // 文本编辑区 private JTextArea editArea = new JTextArea(); // 菜单项 private JMenu[] menus = { new JMenu("文件(F)"), new JMenu("编辑(E)"), new JMenu("格式(E)"), new JMenu("查看(V)"), new JMenu("帮助(H)") }; private JMenuItem[] fileMenu = { new JMenuItem("新建(N) "), new JMenuItem("打开(O)... "), new JMenuItem("保存(S) "), new JMenuItem("另存为(A)... "), new JMenuItem("页面设置(U)... "), new JMenuItem("打印(P)... "), new JMenuItem("退出(X) ") }; private JMenuItem[] editMenu = { new JMenuItem("撤销(U) "), new JMenuItem("剪切(T) "), new JMenuItem("复制(C) "), new JMenuItem("黏贴(P) "), new JMenuItem("删除(L) "), new JMenuItem("查找(F)... "), new JMenuItem("查找下一个(N) "), new JMenuItem("替换(R)... "), new JMenuItem("转到(G)... "), new JMenuItem("全选(A) "), new JMenuItem("时间/日期(D) ") }; private JCheckBoxMenuItem formatMenu1 = new JCheckBoxMenuItem( "自动换行(W) "); private JMenuItem formatMenu2 = new JMenuItem("字体(F)... "); private JMenuItem checkMenu = new JMenuItem("状态栏(S) "); private JMenuItem[] helpMenu = { new JMenuItem("查看帮助(H) "), new JMenuItem("关于记事本(A) ") }; private JPopupMenu pmenus = new JPopupMenu(); private JMenuItem[] popupMenu = { new JMenuItem("撤销(U) "), new JMenuItem("剪切(T) "), new JMenuItem("复制(C) "), new JMenuItem("黏贴(P) "), new JMenuItem("删除(L) "), new JMenuItem("全选(A) "), }; // 剪切板引用 private Toolkit toolKit = Toolkit.getDefaultToolkit(); private Clipboard clipBoard = toolKit.getSystemClipboard(); // 其他变量 private boolean isNewFile = true; private File currentFile; private String oldTxt; // 撤销管理器 private UndoManager undo = new UndoManager(); private UndoableEditListener undoHandler = new UndoHandler();

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值