`
rongyandong
  • 浏览: 31504 次
  • 性别: Icon_minigender_1
  • 来自: 内蒙古
社区版块
存档分类
最新评论

原创:记事本GUI制作

    博客分类:
  • Java
阅读更多

1、记事本文本面板

import java.awt.BorderLayout;
import java.awt.Rectangle;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;


public class NotepadFrame extends JFrame{
	private static final long serialVersionUID = -6328781535000523502L;
	private JScrollPane jsp;
	private JTextArea jta;
	private JMenuBar jmb;
	
	public NotepadFrame(String title) {
		super(title);
		int x, y;
		int width=800,height=600;
		
		x=(Toolkit.getDefaultToolkit().getScreenSize().width-width)/2;
		y=(Toolkit.getDefaultToolkit().getScreenSize().height-height)/2-50;
		
		this.setLayout(new BorderLayout());
		this.setBounds(new Rectangle(x, y, width, height));
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		this.addComponent();
		this.addMenuBar();
	}
	/**
	 * 添加组件
	 */
	public void addComponent() {
		jta=new JTextArea();
		jsp=new JScrollPane(jta);
		this.add(jsp,BorderLayout.CENTER);
	}
	/**
	 * 添加菜单
	 */
	public void addMenuBar() {
		this.jmb=new MenuBar();
		this.setJMenuBar(jmb);
	}
}

 2、记事本菜单设计

import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;

import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;


public class MenuBar extends JMenuBar{

	private static final long serialVersionUID = -1822798226977402168L;
	
	public JMenu[] mainMenu;
	public JMenuItem[][] subMenu;
	public MenuBar() {
		//main menu label
		String[] mainMenuLabel={"文件(F)","编辑(E)","格式(O)","查看(V)","帮助(H)"};
		//二级菜单标签
		String[][] subMenuLabel={{"新建(N)","打开(O)...","保存(S)","另存为(A)...","页面设置(U)","打印(P)","退出(X)"},
				{"撤销(U)","剪切(T)","复制(C)","粘贴(P)","删除(L)","查找(F)...","替换(R)...","全选(A)","日期(D)"},
				{"自动换行(W)","字体(F)","颜色(C)"},
				{"状态栏(S)"},{"帮助主题(H)","关于记事本(A)..."}};
		//主菜单助记符
		char[] mainMenuMnem={'F','E','O','V','H'};
		//二级菜单助记符
		char[][] subMenuMnem={{'N','O','S','A','U','P','X'},
				{'U','T','C','P','L','F','R','A','D'},
				{'W','F','C'},{'S'},{'H','A'}};
		//二级菜单分割线,那个二级菜单下有分隔线,则为true
		boolean[][] subMenuSep={{false,false,false,true,false,true,false},
				{true,false,false,false,true,false,true,false,false},
				{false,false,false},{false},{true,false}};
		//快捷键
		KeyStroke[][] subMenuKey={{KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK),
			KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK),
			KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK),
			null,null,KeyStroke.getKeyStroke(KeyEvent.VK_P, InputEvent.CTRL_MASK),null},
			
				{KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK),
				KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK),
				KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK),
				KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK),
				KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0),
				KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK),
				KeyStroke.getKeyStroke(KeyEvent.VK_R, InputEvent.CTRL_MASK),
				KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK),
				KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0)},
				{null,null,null},
				{null},{null,null}};
		
		
		mainMenu=new JMenu[5];
		subMenu=new JMenuItem[5][];
		
		for(int i=0;i<mainMenu.length;i++) {
			mainMenu[i]=new JMenu(mainMenuLabel[i]);
			mainMenu[i].setMnemonic(mainMenuMnem[i]);
			subMenu[i]=new JMenuItem[subMenuLabel[i].length];
			
			for(int j=0;j<subMenu[i].length;j++) {
				subMenu[i][j]=new JMenuItem(subMenuLabel[i][j]);
				subMenu[i][j].setMnemonic(subMenuMnem[i][j]);
				mainMenu[i].add(subMenu[i][j]);
				if(subMenuSep[i][j]) mainMenu[i].addSeparator();
				if(subMenuKey[i][j]!=null) subMenu[i][j].setAccelerator(subMenuKey[i][j]);
			}
			
			this.add(mainMenu[i]);
		}
	}
	
}

 3、窗体及启动

public class Demo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		NotepadFrame notepad=new NotepadFrame("Java版 记事本-Mr.Rong");
		notepad.setVisible(true);
	}

}

 

 

分享到:
评论

相关推荐

    安卓开发安卓实战:记事本应用开发 Android平台开发

    【安卓开发】安卓实战:记事本应用开发 Android平台开发 【安卓开发】安卓实战:记事本应用开发 Android平台开发 【安卓开发】安卓实战:记事本应用开发 Android平台开发

    Java课程设计实训大作业:记事本+简易计算器+聊天系统+日历+中英查询(含源代码+运行截图+实训报告)

    Java课程设计实训大作业:记事本+简易计算器+聊天系统+日历+中英查询 基础任务一:设计日历软件 根据如下图,综合运用GUI编程、事件处理、Calendar类应用等知识设计一款月历,要求能通过输入(或选择)年月的方式...

    Android项目实例:记事本

    Android项目实例:记事本 列表展示添加的笔记(包括笔记的题目,内容,创建时间) 右下角添加笔记,点击笔记可以进入编辑页面,长按笔记可以删除和编辑笔记 右上角的搜索图标点击,可以进行模糊查询,右上角按钮可以...

    JAVA : 记事本程序源代码

    **JAVA 记事本程序源代码详解** 在Java编程领域,开发一个类似于Windows操作系统自带的记事本程序是一项基础但全面的任务。这个程序能够帮助初学者深入理解Java的基础语法、IO流操作、事件处理和GUI设计等多个核心...

    更新:记事本第五版.exe

    记事本

    记事本的详细设计以及源代码程序

    学习记事本的源代码可以帮助开发者更好地理解和掌握Windows编程基础,包括GUI设计、文件操作、事件驱动编程等。同时,也能提升对文本处理和内存管理的理解,这对于任何需要进行文本操作的软件开发都是非常有价值的。...

    java GUI 编写的记事本

    在这个特定的案例中,"java GUI notepad" 是一个使用Java GUI编写的简单记事本程序。这个程序可能实现了基本的文本编辑功能,如打开、保存、复制、粘贴、查找和替换等,这些都是一个标准记事本应用通常会提供的。 ...

    基于Java的GUI界面的日历记事本

    【基于Java的GUI界面的日历记事本】是一款集成了日历和记事功能的桌面应用程序,它利用Java的图形用户界面(GUI)技术来提供一个直观易用的平台,让用户能够轻松地管理日常生活中的事件和提醒。在这个系统中,用户...

    日历记事本实现

    这个项目,名为“日历记事本实现”,是基于Java编程语言设计的,旨在提供一个GUI(图形用户界面)来展示日历,并且能够支持在日历上添加事件的功能。这是一个典型的课程设计项目,有助于学生理解和掌握Java GUI编程...

    java GUI类制作的记事本小程序

    java GUI类制作的记事本小程序 ,内容解释的很详细

    Java制作记事本记事本.Java

    Java制作记事本 Java制作记事本 Java制作记事本 Java制作记事本Java制作记事本 Java制作记事本

    利用JAVA做的一个GUI记事本

    一个简单的JAVA记事本,拥有记事本基本功能,并有显示当前时间,更改背景颜色和字体颜色功能

    C#制作记事本.rar

    这个名为"C#制作记事本.rar"的压缩包文件显然包含了一个使用C#编程语言实现的简单记事本程序。这个项目对于初学者来说是很好的实践案例,因为它涉及到基础的GUI(图形用户界面)设计、文本处理以及事件处理等核心...

    wpf 制作的记事本

    wpf 制作的记事本wpf 制作的记事本wpf 制作的记事本wpf 制作的记事本wpf 制作的记事本wpf 制作的记事本wpf 制作的记事本

    Java 写的记事本

    Java 编程语言在开发桌面应用方面...总的来说,这个Java记事本项目涵盖了GUI编程的基础,事件处理,文件操作以及一些进阶特性。通过这个项目,开发者可以深入了解Java Swing 库,并增强其在桌面应用开发方面的技能。

    java记事本(与windows的记事本一样的功能)

    2. **图形用户界面(GUI)编程**:Java记事本项目涉及到GUI编程,使用Java的Swing或JavaFX库来创建用户界面。Swing是Java AWT(Abstract Window Toolkit)的扩展,提供了丰富的组件库,如JFrame(窗口)、JButton...

    pictures:记事本的Pic Bed

    标题中的“pictures:记事本的Pic Bed”可能是指一个项目或者工具,它与记事本应用程序相关,并且专门用于图片处理或管理。虽然没有提供详细的标签,我们可以根据标题推测这个“Pic Bed”可能是记事本的一个扩展或者...

    JAVA大作业文本编辑器(记事本)txt(含代码)

    【标题】"JAVA大作业文本编辑器(记事本)txt(含代码)"涉及的核心知识点主要围绕Java编程语言,特别是GUI(图形用户界面)设计,文件操作和文本处理。这个项目是一个基于Java实现的文本编辑器,类似于Windows系统的...

    记事本:记事本criado com a biblioteca tkinter

    标题中的“记事本:记事本criado com a biblioteca tkinter”表明这是一个使用Python的Tkinter库创建的简易文本编辑器,通常被称为记事本程序。Tkinter是Python的标准图形用户界面(GUI)库,它允许开发者创建交互式...

    VB制作简易记事本

    【VB制作简易记事本】项目是一个初学者在实习期间使用Visual Basic(VB)编程语言构建的简单文本编辑器,其设计灵感来源于Windows系统自带的记事本应用程序。这个项目旨在帮助用户理解VB的基本概念,以及如何利用VB...

Global site tag (gtag.js) - Google Analytics