教你用JAVA写文本编辑器(二)

目录

这是编辑器第一章 JAVA写文本编辑器(一) ,需要的同学了解一下。

这一章我们来处理一下JMenuBar里的item的事件响应,首先从最简单的item关于开始。

为什么说这个简单,因为它需要完成的功能很少,只是出来一个对话框或者窗口,然后显示一个文字。

首先,我们按照执行软件的顺序来写代码,我们点击menu,会弹出里面的子项item。然后当我们点击item的时候,会弹出新的窗口。注意:弹出item是menu自己做好的,但是当我们点击item是没有响应的,因为这里需要我们给他设置监听器来执行事件才行:

主窗口implements 接口ActionListener

    public class test5 extends JFrame implements ActionListener{}

要Override函数actionPerformed

    @Override
    public void actionPerformed(ActionEvent arg0) {
	// TODO Auto-generated method stub
	}

其实我们这里也可以用ItemListener用于捕获带有item的组件产生的事件,而ActionListener是所有监听器的父类,可以监听到所有的事件,由于担心还会有其他的事件需要监听,所以就直接用 ActionListener 了,这样用也是可以的。

接下来我们需要对item们添加监听器:

        /**
	 * 对所有btn跟item统一设置监听器
	 */
	public void initListener() {
		item_new.addActionListener(this);
		item_open.addActionListener(this);
		item_save.addActionListener(this);
		item_exit.addActionListener(this);
		item_undo.addActionListener(this);
		item_cut.addActionListener(this);
		item_copy.addActionListener(this);
		item_stick.addActionListener(this);
		item_delete.addActionListener(this);
		item_word_format.addActionListener(this);
		item_about.addActionListener(this);
	}

主窗口的构造函数:

        public test5() {
		initMenuBar();
		initEditArea();
		initListener();

		this.setJMenuBar(menuBar);
		this.setSize(800,600);

		this.add(scroll_bar);

		this.setTitle("自定义文本编辑器");
		this.setVisible(true);
		this.setLocationRelativeTo(null);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

我们对控件添加监听器之后,是可以成功捕获事件的(如点击、双击、鼠标左键下压、抬起、拖动等等),但是对于事件的处理方法,要写在哪里呢?我们需要写在接口的抽象方法里。

顺便提一下:接口是跟类很像的结构,只有变量和抽象方法。可以说跟抽象类很像,两者都不能被实例化(new)。两者都能被继承(extends、implements),但是效果不同,抽象类的最终目标是为实例化而服务的,而接口是用于将对象的共同行为抽出来使用的。

下面我们给item_about添加处理事件:

@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == item_about) {
			new about_Window();
		}
	}

OK,我们添加好了监听器和事件,事件要求弹出一个窗口(窗口有标题,有提示语,有按钮),所以我们要做一个窗口类,然后将他new出来就可以了。

我们在包里创建一个类,下面我直接贴代码了,因为这里比较简单:

public class about_Window extends JFrame{

 private JButton btn_ok;
 private JLabel about_label;

 private JPanel panel ;
 private BoxLayout boxlayout;

 /**
  * 窗口的构造函数
  */
 public about_Window() {
  panel = new JPanel();
  boxlayout = new BoxLayout(panel,BoxLayout.Y_AXIS);
  panel.setLayout(boxlayout);

  btn_ok = new JButton("OK");
  btn_ok.setAlignmentX(CENTER_ALIGNMENT);
  about_label = new JLabel("不懂用记事本?找我啊 ! ");
  about_label.setAlignmentX(CENTER_ALIGNMENT);

  panel.add(about_label);
  panel.add(btn_ok);

  this.add(panel);
  this.setSize(300,200);
  this.setTitle("关于");
  this.setVisible(true);
  this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

  btn_ok.addActionListener(e->{
   this.dispose();
  });
 }
}

可以看到,我们直接在窗口的构造函数里写好,然后再主窗口的事件监听里实例化这个窗口,这样就可以出来点击打开窗口的效果了。

总结一下这章:一、从用户的角度去分析软件的步骤,点击item然后弹出窗口,然后根据这个思路去写代码。二、通过继承接口,添加监听器,重写监听方法,来处理事件。三、重新写一个窗口,等待主窗口的实例化操作。

总结

到此这篇关于用JAVA写文本编辑器的文章就介绍到这了,更多相关JAVA写文本编辑器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 教你用JAVA写文本编辑器(三)

    大家好,接下来的部分可能有点乱,但是并不复杂,我希望我能尽量给大家捋清楚思路. 老套路,这是我的前两篇系列,需要的同学了解一下: JAVA写文本编辑器(二) JAVA写文本编辑器(一) 下面我们要实现的是一个点击选择文本格式的窗口,这里同样是要画一个窗口,跟(二)差不多.要实现的功能呢,主要是有几个ComboBox弹出list出来,选中的属性改变下面的文本.最下面两个按钮,确定则主窗口文本改变,取消则不改变. 在这里我建议大家可以先重新开一个工程,然后一步一步的测试完成后,将代码拷回来,把mai

  • 教你用JAVA写文本编辑器(一)

    目录 前言 思路分析: 具体实现 总结 前言 这里用swing ,awt写的. 我们大概要做成一个电脑的记事本那样的一个编辑器.可以调整字体,字号,颜色.能够打开.保存文件,新建窗口,点击退出,还有一个关于介绍的窗口.整体看起来功能不是很多,只要一部分一部分的去完成就很好办了. 思路分析: 一.首先我们的目标模型就是电脑的记事本,打开编辑器可以看到结构: 1.标题显示在窗口的title. 2.下面一行是一个工具栏,里面有文件.编辑.格式.查看.帮助.这里我们就选文件.格式.帮助来做,大致的情况都

  • 教你用JAVA写文本编辑器(四)

    其实写到这里,我已经差不多断气了... 常规套路,这里是前三篇的传送门,需要的同学可以看一下:JAVA写文本编辑器(三) JAVA写文本编辑器(二)JAVA写文本编辑器(一) 现在我们只差最后一部分了,断气前一定要把它搞完! 再来分析一下,最后一个Menu,里面有几个按钮,不知道大家发现没有,有两个还是特别简单,一个是新建,一个是退出.新建我们再实例化一下父窗口就可以了,但是这里有bug,关闭任一子窗口父窗口都会跟着关掉.另一个是退出,直接dispose()就好了.在监听器里处理一下: 这里就不

  • Java文本编辑器实现方法详解

    本文实例讲述了Java文本编辑器实现方法.分享给大家供大家参考,具体如下: 结构分析: 界面布局 : EditFrame main方法所在: EditText 打开功能实现:  FileReadThread 保存跟能实现:  save 实际运行效果: 附:完整代码实现 一. EditFrame 包括一个菜单Menu 底部:日期时间 代码附上: public class EditFrame extends JFrame { // TODO 自动生成的构造函数存根 boolean saveFlag

  • 教你用JAVA写文本编辑器(二)

    目录 这是编辑器第一章 JAVA写文本编辑器(一) ,需要的同学了解一下. 这一章我们来处理一下JMenuBar里的item的事件响应,首先从最简单的item关于开始. 为什么说这个简单,因为它需要完成的功能很少,只是出来一个对话框或者窗口,然后显示一个文字. 首先,我们按照执行软件的顺序来写代码,我们点击menu,会弹出里面的子项item.然后当我们点击item的时候,会弹出新的窗口.注意:弹出item是menu自己做好的,但是当我们点击item是没有响应的,因为这里需要我们给他设置监听器来执

  • Qt实现文本编辑器(二)

    目录 功能实现 功能: 功能1:动作消息 功能2:动作事件实现 功能3:文本编辑 总结 上一章节讲述了如何制作文本编辑页面,以及应该有哪些功能需要实现,只是做了展示效果,实际的点击事件并没有处理.今天来具体讲解下是如何实现菜单栏以及工具栏上对应的需求吧~ 功能实现 功能: 1.动作消息触发 2.具体功能:打开文件.新建文件.复制.剪切.粘贴 3.文本编辑功能:字体设置 今天只讲述以上三大功能,至于:旋转.缩放等功能都是针对于图片来说的,等下一章节,具体的讲解方式就不在是文本编辑器的功能了,静待后

  • python写的一个文本编辑器

    复制代码 代码如下: #!/usr/bin/env python#-*- coding: utf-8 -*-#=============================================================================#     FileName:#         Desc:#       Author: ToughGuy#      Version: 0.0.1#   LastChange: 2013-02-20 14:52:11#      H

  • 详解Linux常用命令的用法(二)————文本编辑器命令vi/vim

    vi/vim介绍 它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面. 1.vi和vim的区别: 就是在进入一般命令模式后,当按下(i.I.o.O.a.A.r.R)等任何一个字母,之后就会今入编辑模式.此时就可以进行文本编辑了. 在一般命令模式中,输入(:/ ?)三个中任何一按键就进入了指令命令模式.在这个模式中,可以进行读取.存盘.大量取代字符.离开vi.显示行号等功能. vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当

  • ASP.NET配置KindEditor文本编辑器图文教程

    1.什么是KindEditor KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框. KindEditor 使用 JavaScript 编写,可以无缝地与 Java..NET.PHP.ASP 等程序集成,比较适合在 CMS.商城.论坛.博客.Wiki.电子邮件等互联网应用上使用. 2.前期准备 到官网下载最新版的KindEditor 4.11

  • 超漂亮的Bootstrap 富文本编辑器summernote

    Summernote 是一个简单,灵活,所见即所得(WYSIWYG)的编辑器,基于 jQuery 和 Bootstrap 构建.Summernote 所有主要的操作都支持快捷键,有一个功能强大的 API,它提供了大量的自定义选项的设计(宽,高,有效的项目等等)和功能.对于主要的脚本语言或框架(PHP,Ruby,Django,NodeJS),该项目有提供了集成示例. Bootstrap summernote,用其官网上的介绍就是"Super Simple WYSIWYG editor",

随机推荐