Java图形界面开发之简易记事本

在学习了Java事件之后,自己写了一个极其简单的记事本。用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener。
代码如下:

package com.package3;
/*
 * 功能:简易记事本的开发,可以保存文件,打开文件,退出记事本
 * author:ywq
 */
import javax.swing.*; 

import java.awt.*;
import java.awt.event.*;
import java.io.*; 

public class MenuText { 

  //定义组件:
  JFrame f;
  MenuBar mb;  //菜单栏
  Menu mu;    //菜单
  JTextArea jta;
  MenuItem openItem, saveItem, closeItem;  //子菜单
  FileDialog openDia,saveDia;  //弹出的保存和打开框 

  File file; 

  //构造函数
  public MenuText()
  {
    //调用初始化函数
    init();
  }
  //对组件进行初始化操作
  public void init()
  {
    f=new JFrame("简易记事本");
    mb=new MenuBar();
    mu=new Menu("文件");
    openItem=new MenuItem("打开");
    saveItem=new MenuItem("保存");
    closeItem=new MenuItem("退出");
    jta=new JTextArea(); 

    f.add(jta); 

    //添加
    mu.add(openItem);
    mu.add(saveItem);
    mu.add(closeItem); 

    mb.add(mu); 

    f.setMenuBar(mb); 

    openDia=new FileDialog(f, "打开", FileDialog.LOAD);
    saveDia=new FileDialog(f, "保存", FileDialog.SAVE); 

    //设置JFrame属性
    f.setBounds(200, 300, 500, 400);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true); 

    //调用事件函数
    event(); 

  } 

  //事件函数,对事件进行处理
  public void event()
  {
    //打开选项
    openItem.addActionListener(new ActionListener()
    { 

      @Override
      public void actionPerformed(ActionEvent e) { 

      //调用打开文件的方法
        openFile(); 

      } 

    }); 

    //保存选项
    saveItem.addActionListener(new ActionListener()
    { 

      @Override
      public void actionPerformed(ActionEvent e) { 

      //调用保存文件的方法。
       saveFile();   

      } 

    });
    //添加一个文本区域的事件,即按下Ctrl+S可以保存
    //因为键盘监听事件有多种方法,而我们只需要其中的一种,所以可以使用适配器KeyAdapter,
    //从而只需要实现一种方法即可
    jta.addKeyListener(new KeyAdapter()
    {
      //键盘按下方法
      public void keyPressed(KeyEvent e){ 

        if(e.isControlDown() && e.getKeyCode() == KeyEvent.VK_S)
        {
          //调用保存文件的方法。
           saveFile();
          //JOptionPane.showMessageDialog(null, "对啦");
        }
      }
    }); 

    //关闭选项
    closeItem.addActionListener(new ActionListener()
    { 

      @Override
      public void actionPerformed(ActionEvent e) { 

        //退出系统
        System.exit(0); 

      } 

    });
  } 

  //打开文本的方法
  public void openFile()
  {
    openDia.setVisible(true); //设置其显示出来 

    //获取路径和文件名
    String dirPath=openDia.getDirectory();
    String fileName=openDia.getFile(); 

    //防止点击取消报错
    if(dirPath==null || fileName==null)
      return ; 

    jta.setText(""); //将文本区域清空 

    file=new File(dirPath,fileName); //建立文件对象 

    //按照行来读取数据,显示在文本区域
    try
    {
      BufferedReader br = new BufferedReader(new FileReader(file)); 

      String line = null; 

      while((line=br.readLine())!=null)
      {
        jta.append(line+"\r\n");
      } 

      br.close();
    }
    catch (IOException ex)
    {
      throw new RuntimeException("读取失败");
    }
  }
  //保存文本的方法。
  public void saveFile()
  {
    //先判断文件是否存在
    if(file==null)
    {
      saveDia.setVisible(true); 

      String dirPath = saveDia.getDirectory();
      String fileName = saveDia.getFile(); 

      //防止点击取消报错
      if(dirPath==null || fileName==null)
        return ;
      //因为文件不存在。所以需要建立file对象
      file = new File(dirPath,fileName);
    } 

    //将数据写入文件
    try {
      BufferedWriter bw=new BufferedWriter(new FileWriter(file)); 

      String info=jta.getText(); //得到文本区域的信息 

      bw.write(info); //写入操作
      bw.flush();
      bw.close(); 

    } catch (IOException e1) { 

      throw new RuntimeException();
    }     

  } 

  public static void main(String[] args) { 

      //创建对象
    new MenuText();
  } 

}

运行结果如图所示:

本程序实现的功能有:

(1)可以打开某个文件,并且可以编辑。

(2)可以保存编辑后的文件。

(3)可以使用Ctrl+S来保存文本

(4)可以点击closeItem来退出程序。

实现功能3时,对文本区域添加了KeyListener,利用了适配器KeyAdapter来实现监听。但是现在需要的时一种组合监听,即ctrl和S都被按下时才会触发保存操作。

关于组合监听,Java API中有提供相应方法。

找到KeyEvent类的直接父类即InputEvent类。如图所示:

查看InputEvent类中的方法,如下所示:

做为InputEvent类的子类KeyEvent类的对象e可以直接调用上边方法来进行判断。isControlDown()方法用来判断ctrl键是否被按下。如程序中的if(e.isControlDown() && e.getKeyCode() == KeyEvent.VK_S)便实现了组合判断。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java实现记事本功能

    今天给大家介绍一下关于如何用Java实现记事本功能,是学习Java swing的一个非常好的案例,下面先看一下运行结果: 下面我们来看源码: import java.awt.*; import java.awt.event.*; import java.text.*; import java.util.*; import java.io.*; import javax.swing.undo.*; import javax.swing.border.*; import javax.swing.*;

  • 使用Java制作一个简单的记事本

    通过使用Java的Swing.IO来实现一个简单记事本,实现打开指定的text文本文件,然后将text文件的内容加载到Swing组件中,然后在Swing组件中编辑记事本内容,然后同菜单的保存选项将编辑后的内容保存到text文件中.代码如下: 复制代码 代码如下: import java.io.*; import java.nio.*; import java.nio.channels.*; import java.nio.charset.*; import java.awt.*; import

  • 简单记事本java源码实例

    本文实例讲述了简单记事本java实现代码.分享给大家供大家参考.具体如下: 完整代码如下: 复制代码 代码如下: import java.awt.*; import java.io.*; import java.awt.datatransfer.*; import java.awt.event.*;   public class Main extends Frame implements ActionListener {         private static final long ser

  • 使用记事本编写java程序全过程图解

    Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称.Java 技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于个人PC.数据中心.游戏控制台.科学超级计算机.移动电话和互联网,同时拥有全球最大的开发者专业社群. 新建java第一种方法 1首先右击鼠标,新建一个文本文档. 2更改文本文档的后缀名为 .java .注意文件名必

  • Java运用SWT插件编写桌面记事本应用程序

    本文实例介绍了Java基于SWT编写记事本的详细过程,分享给大家供大家参考,具体内容如下 可实现windows系统桌面记事本基本功能,傻瓜式教学,一步一步手把手操作.小白也可自己编写出完整的应用程序. 需要工具:Eclipse(带SWT插件) 成品如下: 应用程序功能介绍: 功能分析: 1.文件(F) 2.编辑(E) 3.格式(O) 4.查看(V) 5.帮助(H) 其中文件菜单中包括 1.1.新建(N) Ctrl+N 1.2打开(O) Ctrl+O 1.3保存(S) Ctrl+S 1.4另存为(

  • 怎么运行用记事本写的java程序

    今天用记事本写了一个java程序,测试能运行,现在把它分解成几个步骤,利于大家理解: 1. 新建一个记事本,后缀名是  .java  :然后在里面写一段java的代码,如图: 2.把写好的java文件丢进D盘,就是第一步给出的那个class文件: 3. 打开dos界面 开始-〉运行-〉cmd-〉 这个是命令行模式,选择D盘,如图: 4.选择D盘之后,在命令提示符中输入"javac 文件名.java",我的文件名为java,所以输入javac java.java然后回车,等待编译.这时候

  • Java文件(io)编程之记事本开发详解

    本文实例为大家分享了Java开发简易记事本的具体代码,供大家参考,具体内容如下 public class NotePad extends JFrame implements ActionListener{ //定义需要的组件 JTextArea jta=null; //多行文本框 JMenuBar jmb=null; //菜单条 JMenu jm1=null; //菜单 JMenuItem jmi1=null,jmi2=null; //菜单项 public static void main(St

  • Java实现的简易记事本

    本文实例讲述了Java实现的简易记事本.分享给大家供大家参考.具体如下: 感觉这个没有自己以前用Windows API写的好看了... JDK Version : 1.7.0 效果如下图所示: 源代码如下: import java.io.*; import java.awt.*; import java.awt.event.*; /** * The Main Window * @author Neo Smith */ class PadFrame extends Frame { private

  • Java Web使用简单的批处理操作(记事本+Tomcat)

    之前进行Web开发的时候使用的是myeclipse,但只用过的人都知道,由于其插件太多,而且有很多插件的功能根本就接触不到.所以导致一旦工程稍微大一点就会很卡,虽然之前也对其进行优化过,但还是觉得不太好用.今天闲来无事,就决定尝试一下最原始的办法,使用记事本+Tomcat进行开发.虽然效率不是很高,但是熟悉了最基本的一些操作,也算是颇有收获.而在在篇博客中,我将分享一下我觉得今天最大的收获. 我们都知道,我们要将项目在Tomcat中部署运行,所使用的.class文件需要保存到一个特定的目录下(当

  • Java图形界面开发之简易记事本

    在学习了Java事件之后,自己写了一个极其简单的记事本.用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener. 代码如下: package com.package3; /* * 功能:简易记事本的开发,可以保存文件,打开文件,退出记事本 * author:ywq */ import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*

  • Java有趣好玩的图形界面开发八个案例实现

    目录 1.复选框和单选框按钮组 2.文本编辑组件和滚动窗格 3.多个选项卡设置 4.在框架窗口中加入面板 5.在窗口中加入标签 6.框架中加入指定大小的标签 7.在框架窗口中加入按钮 8.框架窗口的创建 总结 虽然GUI技术没有很大的市场,甚至很多初学者放弃学习GUI,但是学习GUI编程的过程对于提高编程兴趣,深入理解Java编程有很大的作用.效果图如下,加油吧!! 1.复选框和单选框按钮组 —在框架窗口中加入复选框和单选框按钮组 import javax.swing.*; public cla

  • Java GUI图形界面开发实现小型计算器流程详解

    目录 一.设计目标 二.界面设计 三.功能实现 四.全部代码 五.功能测试 六.小结 一.设计目标 (1)主要功能:实现简单的加.减.乘.除等双目运算,和开平方.百分数等单目运算 (2)辅助功能:按钮“C”实现清空文本框:按钮“←”实现退格,删除文本框中最右边的一个字符 二.界面设计 创建“面板对象”,并设置其布局管理方式为5行4列的GridLayout布局方式,以用于容纳20个按钮.文本框和容纳20个按钮组件的面板则使用边界布局方式分别将其布局到窗体BorderLayout.NORTH和中央位

  • Java图形界面Swing原理及用法解析

    这篇文章主要介绍了Java图形界面Swing原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JButton组件 布局管理器 FlowLayout 流式布局 BorderLayout 方位布局 GridLayout 表格布局 绝对布局 JLable 组件 文本框组件 JPanel轻量级容器 创建事件监听类 (更换监听类实现监听) 窗口监听适配器 都可使用匿名类实现监听 每个监听方法都可以返回一个Event对象来返回监听值 以上就是本

  • Java图形界面GUI布局方式(小结)

    流式布局 采用流式布局会将元素按从左到右的顺序排列,如果一个元素在一行中放不下,那这个元素会另起一行依然按照从左到右的顺序排列 示例: 代码 public class Test { public static void main(String[] args) { // 创建窗口 JFrame jFrame = new JFrame(); // 设置窗口名称 jFrame.setTitle("hello"); // 创建流式布局管理器 对齐方式为左对齐 LayoutManager lay

  • java图形界面AWT编写计算器

    一.前言 1)这个计算器是基于java语言下图形界面AWT编写的.其实我认为写这个计算器,实现什么功能不重要,市场也不缺这个计算器,而是在于对AWT中三大布局的及画板的使用简单控件的操作使用.通过联系熟悉掌握AWT基础为深入学习打下基础.这个计算器功能也十分简单,空有其表.不过有兴趣的话可以继续添加功能完善操作等. 2)使用平台:主要使用Myeclipse2014 3)主要知识点:java 基础; awt+swing 二.功能实现及代码展示 1)主要是layout布局的练习,对画板文本框的使用,

  • java图形界面之加法计算器

    JAVA用于开发图形界面应用的 SWING 组件包功能强大,使用方便.接下来我们就使用其写一个简单的图形界面小程序:加法计算器. 第一步: 首先得构思,我们要做什么.加法计算器的话,做出来之后大概是这个样子的. 如上图所示,这个程序的界面在我们脑海中已经成型了:程序顶部有一个标题,这里用来交代我们程序的名字:功能上用户可以在方框 1 和方框 2 中放入想要进行相加的数值,然后我们点击下方的 “计算” 按钮,结果就会显示在方框 3 中. 第二步: 分析界面,我们该怎么做.从上图可以看出,界面中包含

  • Java实现简单日历小程序 Java图形界面小日历开发

    今天给大家介绍一下如何用Java swing开发一款简单的小日历,下面我们来看代码: 首先创建一个CalendarBean类,用于基本的日期计算: package other1; import java.util.Calendar; public class CalendarBean { String day[]; int year=2005,month=0; public void setYear(int year) { this.year=year; } public int getYear

  • java图形界面编程实战代码

    关于Java图形化界面设计,基础知识网上可搜,下面简单介绍一下重点概念,然后就由浅入深代码实例. 程序是为了方便用户使用的,Java引入图形化界面编程. 1.JFrame 是容器类 2.AWT 是抽象窗口组件工具包,是 Java 最早的用于编写图形节目应用程序的开发包. 3.Swing 是为了解决 AWT 存在的问题而新开发的包,它以 AWT 为基础的. 代码实例1: package com.zhouzhou; //练习网格布局 import java.awt.*; import javax.s

  • java图形界面编程之模拟血压计

    复制代码 代码如下: package GraphicsCanvas; import java.awt.BorderLayout;import java.awt.Canvas;import java.awt.Color;import java.awt.Graphics;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JBut

随机推荐