您现在的位置: 天极网 > 开发频道 > 爪哇语言结构性模式之变压器模式介绍
全文

爪哇语言结构性模式之变压器模式介绍

2001-12-25 16:19作者:阎宏出处:yesky责任编辑:方舟

  抽象类WindowAdapter是变压器模式的一个例子

  抽象类WindowAdapter是为接受视窗的事件而准备的。此抽象类内所有的方法都是空的。 使用此类可以很方便地创立listener对象。置换(Override)你所感兴趣的那个事件所对应的方法。 如果你不使用此抽象类,那么你必然规律要实现WindowsListener接口,而那样你就不得不实现所有接口中的方法, 即便是你不需要的事件所对应的方法,你也要给出一个空的方法,而这显然不方便。

  显然,抽象类WindowAdapter的目标接口可以选得与源接口一样,而不影响效果。 这就解释了为什么目标接口不出现在WindowAdapter类图(见下面)里。


图3. 本例子SwingUI类与WindowAdapter实例变压器模式的类图定义

  SwingUI类的代码如下。

import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;
class SwingUI extends JFrame implements ActionListener
{
   JLabel text, clicked;
   JButton button, clickButton;
   JPanel panel;
   private boolean m_clickMeMode = true;
   Public SwingUI()
   {
     text = new JLabel("我很高兴!");
     button = new JButton("理我");
     button.addActionListener(this);
     panel = new JPanel();
     panel.setLayout(new BorderLayout());
     panel.setBackground(Color.white);
     getContentPane().add(panel);
     panel.add(BorderLayout.CENTER, text);
     panel.add(BorderLayout.SOUTH, button);
   }
   public void actionPerformed(ActionEvent event)
   {
        Object source = event.getSource();
        if (m_clickMeMode)
        {
          text.setText("我很烦!");
          button.setText("别理我");
          m_clickMeMode = false;
        }
        else
        {
          text.setText("我很高兴!");
          button.setText("理我");
          m_clickMeMode = true;
        }
   }
   public static void main(String[] args)
   {
     SwingUI frame = new SwingUI();
     frame.setTitle("我");
     
     WindowListener listener = new WindowAdapter()
     {
       public void windowClosing(WindowEvent e)
       {
         System.exit(0);
       }
     };
     frame.addWindowListener(listener);
     frame.pack();
     frame.setVisible(true);
  }
}
代码清单7. SwingUI类的源代码。红色的代码就是使用WindowAdapter的无名内部类。

  显然,由于无名内部类是继承自WindowAdapter抽象类,因此只需置换(override)掉我们需要的方法, 即windowClosing()而不必操心WindowListener的其它方法。

  本例子在运行时的样子:


图4. SwingUI类在运行时的样子。单击命令键“理我”就变成下图的样子。


图5. 再单击命令键“别理我”就会回到前图的样子。
共8页。 9 7 1 2 3 4 5 6 7 8 8 :

软件资讯·软件下载尽在天极软件

相关搜索:
相关文章及软件
关注此文读者还看过
热门关注
特别推荐
网友关注
软件下载
娱乐下载
驱动下载
文章排行
本周
本月
最近更新
关于我们|About us|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2009 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868
版权声明 在线提交意见反馈 渝ICP证B2-20030003号
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|IT商网|52PK游戏网|IT分众