一步一步教你----java项目之记事本

本文档逐步指导如何使用Java构建一个记事本应用,涵盖了菜单栏的搭建、编辑区域的创建、文件操作功能的实现,包括新建、打开、保存、撤销等。通过讲解关键代码和设计思路,帮助读者理解如何在Java中实现类似Windows记事本的基本功能,如使用JTextArea、MenuBar、MenuItem等组件,并添加监听器以实现撤销、剪切、复制、粘贴等操作。此外,还介绍了状态栏的创建和光标位置的实时显示。
摘要由CSDN通过智能技术生成

菜单栏的搭建

menu在控件里扮演着十分重要的角色,我们来看下官方的解释

Creating a Menu and inserting it into a MenuBar is easy, as shown below:

final Menu menu1 = new Menu(“File”);
MenuBar menuBar = new MenuBar();
menuBar.getMenus().add(menu1);

A Menu is a subclass of MenuItem which means that it can be inserted into a Menu’s items ObservableList, resulting in a submenu being created:

MenuItem menu12 = new MenuItem(“Open”);
menu1.getItems().add(menu12);

1The items ObservableList allows for any MenuItem type to be inserted, including its subclasses Menu, MenuItem, RadioMenuItem, CheckMenuItem, CustomMenuItem and SeparatorMenuItem. In order to insert an arbitrary Node to a Menu, a CustomMenuItem can be used. One exception to this general rule is that SeparatorMenuItem could be used for inserting a separator.

定义menuItem对象,将menuItem放入menu中,再将menu放入menubar中。
menu是菜单就像我们生活的菜单一样,菜单里面有很多菜
menuItem是菜单项,就像菜单里具体的哪个菜
menubar是菜单条,就像目录或者体系包含多个菜单就像中菜单和西菜单

我们在创建一个叫notebook一个类,类里先创建menu,menuItem,menubar对象,我们先简单一点,先创建一个menubar,menubar里只有一个menu,menu里面只有一个menuItem。因为多个的时候是一样的方法,大家先掌握最简单的创建菜单方法,面对复杂一点的相信大家也能够写出来。

在这里插入图片描述

我们参考一下我们Windows的记事本第一个menu是文件,然后menuItem是新建。
将menuItem加入到menu中,再将menu加入menubar中。再把menubar用setmenubar方法加入我们的界面中。

package test;

import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;

import javax.swing.JFrame;

public class notebook extends JFrame
{
	private Menu menu=null;//声明menu对象
	private MenuItem menuItem=null;//声明menuItem对象
	private MenuBar menubar=null;//声明menubar对象
	public static void main(String[] args)
	{
		// TODO Auto-generated method stub
		notebook n=new notebook();
	}
	public notebook()
	{
		menubar=new MenuBar();
		menu=new Menu("文件");
		menuItem=new MenuItem("新建");
		
		menu.add(menuItem);
		menubar.add(menu);
		this.setMenuBar(menubar);
		//界面的基本设置
		this.setSize(700,500);
		this.setLocation(100,100);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
		
	}
}

我们来看一下效果
在这里插入图片描述
接下来我们添加可编辑空白区域,在java中,这个控件叫JTextArea。利用add方法就可以将他加入进我们的界面了。我在这里顺便把menu和menuItem补齐(我们只做部分功能)。

package test;

import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;

import javax.swing.JFrame;
import javax.swing.JMenu;

public class notebook extends JFrame
{
	private String smenu[]= {"文件","编辑","格式","查看","帮助"};
	private String smenuitem[][]= {
  {"新建(N)","打开(O)","保存(S)","另存为(A)","退出(X)"},
			{"撤销(U)","剪切(T)","复制(C)","粘贴(P)"},
			{"自动换行(W)"},
			{"状态栏(S)"},
			{"关于记事本(A)"}};
	private Menu menu[]=new Menu[5];
	private MenuItem [][]menuItem=new MenuItem[5][5];
	private MenuBar menubar=new MenuBar();
	private JTextArea textarea=new JTextArea() ;
	
	public static void main(String[] args)
	{
		// TODO Auto-generated method stub
		notebook n=new notebook();
	}
	public notebook()
	{
		
		for(int i=0;i<smenu.length;i++)
		{
			menu[i]=new Menu(smenu[i]);
			menubar.add(menu[i]);
		}
		for(int i=0;i<smenuitem.length;i++)
		{
			for(int j=0;j<smenuitem[i].length;j++)
			{
				menuItem[i][j]=new MenuItem(smenuitem[i][j]);
				menu[i].add(menuItem[i][j]);
			}
		}
		
		this.setMenuBar(menubar);
		this.add(textarea);
		
		this.setSize(700,500);
		this.setLocation(100,100);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
		
	}
}

我们再来看一下效果
在这里插入图片描述
接下来我们增加控件监听,控件监听的方法是addActionListener,在这个方法里我们放入this参数即可。在notebook类记得添加ActionListener接口。加入actionPerformed接口需要重写actionPerformed方法,我们可以简单的验证各个按钮是否灵敏(按下哪个按钮就输出那个按钮的名字)。

代码如下:
package test;

import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JMenu;

public class notebook extends JFrame implements ActionListener//加入接口
{
	private String smenu[]= 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值