您的位置是: 软件 > 开发者网络 > 开发工具 > Java > 正文 查cseek报价

使用Java Swing创建一个XML编辑器之三
2001-09-24作者: wayne出处: yesky
我对此感兴趣
订阅电子杂志
发表评论
advertisement
热点推荐
· 群雄逐鹿 十四种Java开发工具点评
· 网文快捕,将网络资源搬回家
· Windows系统瘦身计划
· PS多媒体教程带你享受快乐学习
· 网络游戏外挂设计深度探索
· 武装你的桌面,桌面工具大阅兵
天极搜索引擎服务
资讯  产品  经销商  下载  社区

1 2 3  下一页



  如果你现在正在寻找一个跨平台、资源开放的XML编辑器的话,您可能很快就能够实现这个愿望了。在这个三部分系列文章中,我将带您利用一些最通常的Java 2 Swing组件开发一个简单的 XML编辑器。本系列将有益于那些想编写他们的自己的XML编辑器的朋友或者帮助您学习或温习Swing。

  这是本系列的第三篇文章。在第一个篇文章中,我们简要地讨论了XML和为什么树形结构适合显示XML、如何处理XML 数据、如何使用JTree Swing组件,并且我们还构建一个可重用组件用来解析XML文件并在JTree中显示数据。

  在第二篇文章中,我们创建了用于我们XML编辑器的框架结构。为了做到这个目的,我们谈到了许多Swing组件(包括 JSplitPane、JScrollPane、 JButton和JTextArea )。 JSplitPane对象又包含了两个JScrollPane对象,一个用于XML的图形化浏览,另外一个用于文本浏览。

  在这最后一篇文章中,我们将把最后的界面添加到 XML编辑器中,使它能够更加用户友好化。我们将先构建一个菜单系统,然后继续构造访问基层文件系统的JFileChooser组件来允许保存XML文件并打开新建文档。最后,我们将构建一个JDialog框,使用户能够取消一个命令并退出应用程序。

  那么如何增强我们的Swing应用程序的性能,以使它们利用菜单,访问文件系统并允许用户取消操作呢?我们需要创建JMenu组件来处理应用程序的菜单,创建JFileChooser组件来访问基层文件系统,使用JDialog框来允许用户取消操作。

  在以前的文章中,我们开发了XTree类——一个衍生于 JTree类的可重用组件,能够把 XML数据以图形化树来显示。因为我们喜欢使用面向对象原则,我们今天所做的修改不会接触那个类。因为我们喜欢使用面向对象原则,我们今天所做的修改不会接触那个类。它是一个自包含可重复使用的类,被我们的JFrame容器使用而不是被结合。

  第一节 构建菜单组件

  一个JMenu组件包括几个对象:一个菜单栏、一个或更多菜单和一个或更多菜单项。菜单栏包含菜单,而菜单又包含菜单项。这些Swing组件的名称都相当直观的(分别为 JMenuBar、JMenu和 JMenuItem)。

  下面是创建一个包含单一菜单项的最小的" File "菜单的全部的代码:

JMenu fileMenu = new JMenu( "File" );
JmenuItem exitItem = new JMenuItem( "Exit" );

fileMenu.add( exitItem );

JmenuBar menuBar = new JMenuBar();
 
menuBar.add( fileMenu );

setJMenuBar( menuBar );


  这个过程我们应该非常熟悉,JMenu组件使在任何其他 Java GUI组件构建时创建的。最内部的元素被加到它们的直接父元素中,直到所有的元素都已定义了一个适当的容器。

  返回XmlEditor个案研究中,我们实际上已经创建了一个完整的文件菜单,有创建新的 XML文件、打开一个现有的文件、保存文件和退出的功能。我们将在下一小节中详细谈谈它。

  第二节 处理菜单事件

  我们想要创建一个典型的文件菜单,能让我们的用户创建一个新文档,打开一个现有的文件,保存当前的文件并退出应用程序。既然我们知道如何构建这个菜单,那么我们如何响应用户的菜单选择呢?和其他Swing组件一样,答案就在于事件模型和可用的监听者组件。

  处理一个菜单选择最基本的方法就是把一个作用监听者添加到菜单项中: exitItem.addActionListener(new exitMenuHandler());当处理复杂的事件处理时(因为菜单系统有可能变得很复杂),应当把事件处理程序定义成单独的类。上面给出的那个例子添加一个exitMenuHandler类型的行动监听者。这个类型稍后将在这个应用程序中定义。下面是一个定义exitMenuHandler类所需要最少的代码:

class exitMenuHandler implements ActionListener {
public void actionPerformed( ActionEvent ae ) {
System.exit(0);
}
}

  虽然这个实现用来证明一个单独类的定义可能似乎太过简单了,但是当我们定义用于打开并保存文件的事件处理代码时,你将认识到把单独的功能性放入单独的类文件的重要性。此外,这个方法将允许你在不同的应用程序之间重复使用公共菜单功能。

1 2 3  下一页


【责任编辑:方舟】
推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志发表评论

天极商业街
·激情美女让你想入非非
·图铃梦工厂下载无限!
·找寻童真,卡通专题
·夏日激情交友社区!
·星座运程,预测人生
CSEEK搜索
相关内容阅读排行榜
  • 等待是一种美丽
  • 半兽人的神话
  • 微软认为XBOX2没必要兼容XBOX
  • 日本发行新型限定版GameCube
  • 图谋低端市场 Sempron一门三杰再续辉煌
  • 密蜂大盗木马 开MM摄像头偷窥隐私
  • Win2000注册表的备份与恢复
  • 制作无人值守的Win XP安装光盘

  • advertisement

     短信乐园
    好名好运 每日运程 姓名配对 情侣缘分 生命曲线 三生三世 自我认知 前世今生
    游戏嘉年华 爱情宝石 魔法水晶 麻辣竞猜 魔法占卜 暗恋表白 星座运程 浮生记


    · 至少还有你-林忆莲
    · 东风破-周杰伦
    · 什么都不怕-杨千桦
    · 下一站天后-Twins
    · 不羁的风-张国荣
    · 帅哥接电话
    · 严守一标准铃声
    · 0.01公分
    · 下雨收衣服啦
    · 快点接我电话吧

    欲望都市 成人笑话 图铃包月 天气预报 麻辣生活 都市报
    体育新闻 娱乐新闻 点歌祝福 情人悄悄话