快速业务通道

用IFrame跟上潮流 - 将IFrame窗口转换为炫目的应用程序窗口 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
   setTitle("Window");   }

这样就行了。改变框架的外观所要做的就是这些。尽管这只是 IFrame 的一个 基本的例子,只使用了六行代码,但是我们完成了一些 UI 开发人员多年来一直 想要做的事情。这个基本的例子已经比当前使用的应用程序窗口中的 99% 都更先 进。

建议用法: 如果希望迅速改变框架的外观,同时又不想使它与特定于操作系 统的框架有大的改变时使用。

用IFrame跟上潮流 - 将IFrame窗口转换为炫目的应用程序窗口(6)

时间:2011-05-20 IBM Michael Abernethy

例 3: 利用 IWindowTitleBar 的子类

如果希望做比颜色、大小和标题栏中的按钮这样的基本改变更多的事情,就必 须继承 IWindowTitleBar 类以充分利用它提供的各种可能性。创建了子类后,就 可以对标题栏做很多新的操作了,包括更高级的绘制选项以及更强大的、在标题 栏中加入任何组件的能力。为什么让标题栏中的按钮和标签把自己限制住呢?加 上一直想要的 JTable 吧。只要调用 IFrame 中的 setTitleBar() ,就可以创建 一个应用程序开发史上最先进的标题栏子类,并在任何 IFrame 上使用它。图 7 描绘了创建自定义窗口组件所可能产生的外观:

图 7. 创建自定义窗口组件

用IFrame跟上潮流 - 将IFrame窗口转换为炫目的应用程序窗口 - 编程入门网

在这个例子中,通过建立 清单 2 中的框架,并用一个新的、动态的边框取代 单调的、静态的红色标题栏,充分利用了所有这些新的可能性。可以从图中看到 ,标题已经从左边移到了中间,并使用了更有可读性的字体。我用一个在左边的 “关闭”按钮取代右边三个标准按钮。最后,也许是最有创造性的,我在标题栏 的右边增加了一个 JSlider,可以让这个 IFrame 的用户动态改变标题栏背景的 渐变色。清单 3 中的代码片段显示了将例 2 转变为例 3 所需要的额外代码。这 些对于 JFrame 来说是不可能的。

清单 3. IFrame 例 3 public TestApp3()   {    IWTUtilities.setBorderSize(new Insets(3,3,3,3));    getIContentPane().setBorder(new LineBorder(Color.red, 3));    setTitleBar(new TitleBar());   }   private class TitleBar extends IWindowTitleBar implements ChangeListener   {    private Color c = new Color(0,0,0);    private JSlider slider;    public TitleBar()    {     setPreferredSize(new Dimension(0, 26));     removeWindowDecorations();     addWindowButton(IWindowButton.CLOSE, SwingConstants.LEFT);     setWindowButtonColors(Color.RED, Color.WHITE);     addTitle(getTitle(), SwingConstants.CENTER, new Font ("Verdana", Font.BOLD, 14), Color.WHITE);     slider = new JSlider();     add(slider, new GroupFlowLayoutConstraints (SwingConstants.RIGHT, new Insets(3,3,3,3)));     slider.addChangeListener(this);     slider.setMaximum(255);     slider.setMinimum(0);     slider.setOpaque(false);    }    public void paintComponent(Graphics g)    {     super.paintComponent(g);     PaintUtilities.paintGradient(g, 0, 0, getWidth(), getHeight(), c, Color.WHITE,     SwingConstants.HORIZONTAL);    }    public void stateChanged(ChangeEvent e)    {     c = new Color(slider.getValue(), 0, 0);     repaint();    }   }

用IFrame跟上潮流 - 将IFrame窗口转换为炫目的应用程序窗口(7)

时间:2011-05-20 IBM Michael Abernethy

分析创建这个 IFrame 的代码,可以看到它不比 清单 2 中的代码更复杂。不 过,出于下面两个理由,我将所有代码移到了 IWindowTitleBar 的子类

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号