转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> JAVA开发 >> 正文
用JBuilder 9 开发一个文本编辑器         ★★★★

用JBuilder 9 开发一个文本编辑器

作者:闵涛 文章来源:闵涛的学习笔记 点击数:913 更新时间:2009/4/22 23:28:24
天极IT资讯短信服务 电脑小技巧
资费:包月5元
手机
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。
  一、概述

  文本编辑器是一种最常用的应用程序,下面我们利用Jbuilder 9集成开发环境,用java语言实现一个简单的文本编辑器。该文本编辑器具有读出、写入、编辑文本文件,可以设定文字颜色、字形和编辑区域背景颜色等基本功能。

  我们首先通过Jbuilder 9项目向导和应用向导创建项目,然后应用可视化设计工具,修改UI设计,连接事件,编辑源码以及常用控件和任务诸如菜单项、工具条、文本区域和系统事件等常用控件和任务的处理。涉及到具体技术有:

   用JFileChooser 对话框让用户选择文本文件。

   用JtextArea读、写和处理文本文件中的文字。

   设置前景色和背景色。

   用dbSwing FontChooser对话框设置字型。

   在状态栏和窗口标题栏显示信息。

   手工添加处理UI事件的代码 。

   通过将代码放在一个可被菜单项和按钮两个事件处理器调用的新的"帮助"方法中, 使得菜单项和按钮执行相同的代码。

   给JtextArea控件增加一个右击菜单。

   保持对文件的位置以及文件是否活动过的跟踪,展示对文件|新建, 文件|打开, 文件|保存, 文件|另存为,编辑和退出等逻辑的处理。

   将"Text Editor" 应用程序展开为JAR 文件。

  二、开发文本编辑器java源程序说明

  文本编辑器程序包含三个java 源程序即TextEditFrame.java、TextEditclass.java 和TextEditFrame_AboutBox.java 程序,下面将分别介绍如下:

  1、TextEditFrame.java的源程序代码(节选部分):

package texteditor;
//TextEditFrame.java
import java.awt.*;//导入类
import java.awt.event.*;
import javax.swing.*;
import com.borland.dbswing.*;
import java.io.*;
import javax.swing.text.*;
import javax.swing.event.*;
public class TextEditFrame extends JFrame {
IntlSwingSupport intlSwingSupport1 = new IntlSwingSupport();
//Swing 控件互联网化:即本地化应用程序,需要添加一行代码以便Swing 控件JfileChooser //和JcolorChooser出现在程序运行的语言中
JPanel contentPane; //设置内容窗(contentPane)的JPanel控件
JMenuBar menuBar1 = new JMenuBar();//创建菜单条并加入到框架窗体中
JMenu menuFile = new JMenu();//创建File菜单和相应的菜单项
JMenuItem menuFileExit = new JMenuItem();
JMenu menuHelp = new JMenu();//创建Help菜单和相应的菜单项
JMenuItem menuHelpAbout = new JMenuItem();
JToolBar toolBar = new JToolBar();//创建工具条组件
JButton jButton1 = new JButton();//创建按钮组件
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
ImageIcon image1;//定义图标
ImageIcon image2;
ImageIcon image3;
JLabel statusBar = new JLabel();//创建标签组件
BorderLayout borderLayout1 = new BorderLayout();//创建BorderLayout 布局器
JScrollPane jScrollPane1 = new JScrollPane();//创建滚动窗控件
JTextArea jTextArea1 = new JTextArea();//创建多行文本域组件
JMenuItem jMenuItem1 = new JMenuItem();//创建菜单项
JMenuItem jMenuItem2 = new JMenuItem();
JMenuItem jMenuItem3 = new JMenuItem();
JMenuItem jMenuItem4 = new JMenuItem();
FontChooser fontChooser1 = new FontChooser();//创建字型选择对话框
JMenu jMenu1 = new JMenu();
JMenuItem jMenuItem5 = new JMenuItem();
JMenuItem jMenuItem6 = new JMenuItem();
JMenuItem jMenuItem7 = new JMenuItem();
JFileChooser jFileChooser1 = new JFileChooser();//创建文本选择对话框
String currFileName = null; // Full path with filename. null means new/untitled.
boolean dirty = false;
Document document1; //文本
DBTextDataBinder dBTextDataBinder1 = new DBTextDataBinder();
// True means modified text.
//构造架框
public TextEditFrame() {
 enableEvents(AWTEvent.WINDOW_EVENT_MASK);
 try {
  jbInit();
  updateCaption();
 }
 catch(Exception e) {
  e.printStackTrace();
 }
}
//组件初始化
private void jbInit() throws Exception {
 //三个工具栏按钮图标
 image1 = new ImageIcon(TextEditFrame.class.getResource("openFile.gif"));
 image2 = new ImageIcon(TextEditFrame.class.getResource("closeFile.gif"));
 image3 = new ImageIcon(TextEditFrame.class.getResource("help.gif"));
 contentPane = (JPanel) this.getContentPane();//内容创格
 document1 = jTextArea1.getDocument();//多行文本域文档
 contentPane.setLayout(borderLayout1);//borderLayout布局器
 this.setSize(new Dimension(400, 300));//窗口大小
 this.setTitle("Text Editor");//窗口标题
 statusBar.setText(" ");
 menuFile.setText("File");
 menuFileExit.setText("Exit");
 menuFileExit.addActionListener(new TextEditFrame_menuFileExit_ActionAdapter (this));
 //添加事件监听器
 menuHelp.setText("Help");
 menuHelpAbout.setText("About");
 menuHelpAbout.addActionListener(new TextEditFrame_menuHelpAbout_ActionAdapter (this));
 jButton1.setIcon(image1);//设置三个工具栏按钮图标,添加事件监听器
 jButton1.addActionListener(new TextEditFrame_jButton1_actionAdapter(this));
 jButton1.setToolTipText("Open File");
 jButton2.setIcon(image2);
 jButton2.addActionListener(new TextEditFrame_jButton2_actionAdapter(this));
 jButton2.setToolTipText("Close File");
 jButton3.setIcon(image3);
 jButton3.addActionListener(new TextEditFrame_jButton3_actionAdapter(this));
 jButton3.setToolTipText("About");
 jTextArea1.setLineWrap(true);
 jTextArea1.setWrapStyleWord(true);
 jTextArea1.setBackground(Color.white);
 jMenuItem1.setText("New");//设置菜单,添加事件监听器
 jMenuItem1.addActionListener(new TextEditFrame_jMenuItem1_actionAdapter(this));
 jMenuItem2.setText("Open");
 jMenuItem2.addActionListener(new TextEditFrame_jMenuItem2_actionAdapter(this));
 jMenuItem3.setText("Save");
 jMenuItem3.addActionListener(new TextEditFrame_jMenuItem3_actionAdapter(this));
 jMenuItem4.setText("Save As");
 jMenuItem4.addActionListener(new TextEditFrame_jMenuItem4_actionAdapter(this));
 fontChooser1.setFrame(this);
 fontChooser1.setTitle("Font");
 jMenu1.setText("Edit");
 jMenuItem5.setText("Font");
 jMenuItem5.addActionListener(new TextEditFrame_jMenuItem5_actionAdapter(this));
 jMenuItem6.setText("Foreground Color");
 jMenuItem6.addActionListener(new TextEditFrame_jMenuItem6_actionAdapter(this));
 jMenuItem7.setText("Background Color");
 jMenuItem7.addActionListener(new TextEditFrame_jMenuItem7_actionAdapter(this));
 document1.addDocumentListener(new TextEditFrame_document1_documentAdapter(this));
 dBTextDataBinder1.setJTextComponent(jTextArea1);
 //Turn off right-click file Open... menu item.
 dBTextDataBinder1.setEnableFileLoading(false);
 //Turn off right-click file Save... menu item.
 dBTextDataBinder1.setEnableFileSaving(false);
 toolBar.add(jButton1);//工具组件添加按钮
 toolBar.add(jButton2);
 toolBar.add(jButton3);
 menuFile.add(jMenuItem1);//菜单组件添加菜单项
 menuFile.add(jMenuItem2);
 menuFile.add(jMenuItem3);
 menuFile.add(jMenuItem4);
 menuFile.addSeparator();//采单组件添加分隔线
 menuFile.add(menuFileExit);
 menuHelp.add(menuHelpAbout);
 menuBar1.add(menuFile);
 menuBar1.add(jMenu1);
 menuBar1.add(menuHelp);
 this.setJMenuBar(menuBar1);
 contentPane.add(toolBar, BorderLayout.NORTH);
 //内容窗设置borderLayout布局器
 contentPane.add(statusBar, BorderLayout.SOUTH);
 contentPane.add(jScrollPane1, BorderLayout.CENTER);
 jScrollPane1.getViewport().add(jTextArea1, null);
 jMenu1.add(jMenuItem5);
 jMenu1.add(jMenuItem6);
 jMenu1.add(jMenuItem7);
}
// Display the About box.
void helpAbout() {
 TextEditFrame_AboutBox dlg = new TextEditFrame_AboutBox(this);
 Dimension dlgSize = dlg.getPreferredSize();
 Dimension frmSize = getSize();
 Point loc = getLocation();
 dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
 dlg.setModal(true);
 dlg.show();
}
.........
.........


[常用软件]用Windows Media 9 创建实况广播2  [常用软件]用Windows Media 9 Series创建实况广播1
[常用软件]接触Real 9 初步应用指南  [VB.NET程序]VB.NET实现DirectSound9 (8) 音效控制器
[VB.NET程序]VB.NET实现DirectSound9 (7) 录音  [VB.NET程序]VB.NET实现DirectSound9 (6) 声音特效
[VB.NET程序]VB.NET实现DirectDraw9 (2) 动画  [VB.NET程序]VB.NET实现DirectDraw9 (1) 托管的DDraw
[VB.NET程序]VB.NET 实现DirectSound9 (5) DS3D2  [VB.NET程序]用VB.Net实现DirectSound9 (4) DS3D
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台