Swing开发好的设计模式例子

1.

  1. package mybook.book;
  2. import java.awt.*;
  3. import javax.swing.*;
  4. import java.awt.Rectangle;
  5. import javax.swing.BorderFactory;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import java.util.Calendar;
  9. import mydbc.dbc.DBC;
  10. import java.net.URL;
  11. import java.sql.ResultSet;
  12. import java.sql.SQLException;
  13. // 该类为本程序主界面
  14. public class FrMain extends JFrame {
  15.  private static final long serialVersionUID = 1L;
  16. //注意图片必须要和this class 在同一个目录下面。否则会找不到该图片。
  17.  URL url1=this.getClass().getResource("bookStore.jpg");
  18.  Image imagenewBook=Toolkit.getDefaultToolkit().createImage(url1);
  19.  ImageIcon newBook = new ImageIcon(imagenewBook);
  20.   public FrMain() {
  21.   try {
  22.    jbInit();
  23.   } catch (Exception exception) {
  24.    exception.printStackTrace();
  25.   }
  26.  }
  27.  private void jbInit() throws Exception {
  28.   getContentPane().setLayout(null);
  29.   this.setJMenuBar(jMenuBar1);
  30.   setSize(new Dimension(700600));
  31.   this.setTitle("福娃图书管理系统");
  32.   menuSysManage.setText("【系统管理】");
  33.   miExit.setText("退出");
  34.   miExit.addActionListener(new FrMain_miExit_actionAdapter(this));
  35.  btnAbout.setBounds(new Rectangle(31437570));
  36.   btnAbout.setIcon(aboutIcon);
  37.  //交给FrMain_btnAbout_actionAdapter出处理相应的事件
  38.   btnAbout.addActionListener(new FrMain_btnAbout_actionAdapter(this));
  39.   }
  40.   public void miExit_actionPerformed(ActionEvent e) {
  41.   System.exit(0);
  42.  }
  43.     public void btnAbout_actionPerformed(ActionEvent e) {
  44.         FrAbout about = new FrAbout();
  45.        //调用另一个窗体也就是另一个view
  46.        //NewFram负责判断窗体大小是否越界
  47.         NewFram(about);
  48.     }
  49.  }

2.

  1. //退出的事件监听class
  2. class FrMain_miExit_actionAdapter implements ActionListener {
  3.  private FrMain adaptee;
  4.  FrMain_miExit_actionAdapter(FrMain adaptee) {
  5.   this.adaptee = adaptee;
  6.  }
  7.  public void actionPerformed(ActionEvent e) {
  8.   adaptee.miExit_actionPerformed(e);
  9.  }
  10. }

3.

  1. //调用关于窗体的事件监听class
  2. class FrMain_btnAbout_actionAdapter implements ActionListener {
  3.     private FrMain adaptee;
  4.     FrMain_btnAbout_actionAdapter(FrMain adaptee) {
  5.         this.adaptee = adaptee;
  6.     }
  7.     public void actionPerformed(ActionEvent e) {
  8.         adaptee.btnAbout_actionPerformed(e);
  9.     }
  10. }

这样做的好处

1.防止了在Frmain中的一个actionPerformed方法处理大量不同组件的动作。使Frmain中的代码很少,容易读懂。

2.这样通过事件监听class的回调方法,可以很容易的使用FrMain中的组件并对之中的组件进行修改状态。

3.最重要的是很容易读懂程序,后期很容易维护。

注意:

程序代码不完整,但是结构原理很清晰。(不要盲目copy)
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值