您的位置:软件 > 开发者网络 > 开发工具 > Java > 正文
用JBuilder 9 开发一个文本编辑器
[文章信息]
作者:务实
时间:2004-04-26
出处:yesky
责任编辑:方舟
[文章导读]
利用Jbuilder 9集成开发环境,用java语言实现一个具有读出、写入、编辑文本文件的编辑器
advertisement
热点推荐
· IE最新安全漏洞补救几大措施
· M牛的网络生活之下载篇
· Norton Ghost 9.0全新体验
· InstallShield简明使用教程之前言
· Linux系统的硬件驱动程序编写原理
[正文]

1 2 3 4 5 6 7  下一页

天极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();
}
.........
.........


1 2 3 4 5 6 7  下一页

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 用JBuilder9 开发Struts实例
  • Struts 框架之构建 Model组件
  • Java中Decorate的三种实现方法
  • Struts框架之构建Controller组件
  • 触摸Java中的包和文档
  • 详解11月三大硬件杀手游戏及四大凶器
  • 选硬盘 用好希捷互动存储专家
  • NDS十大最受期待游戏
  • 中国星际个人联赛第6轮综述
  • 教你破解GeForce6800变Ultra
  • 魔兽UD必胜的几大原因
  • 韩国OnGameNet职业联赛最新战况
  • 买LCD有秘诀 两绝招识别坏点
  • Advertisement

    天极无线
    待机彩图    >>更多
    多彩动画    >>更多
    美妙和弦    >>更多
    天使在唱歌
    壁虎漫步
    PrettyBoy
    LoveLoveLove
    我是你的小小狗
    单身情歌
    十面埋伏
    祝酒歌
    回心转意
    波斯猫
    太委屈
    S.H.E
    潘玮柏
    M2M
    蔡依林
    阿牛
    林志炫
    陈弈迅
    刀郎
    黑龙
    S.H.E
    陶晶莹
    情人玫瑰坊
    音乐风云
    新片速递
    神秘测试
    都市约会
    ·天极彩信天天精彩
    ·图铃梦工厂下载无限!
    ·找寻童真,卡通专题
    ·夏日激情交友社区!
    ·星座运程,预测人生

    CSEEK搜索