网站首页 新闻首页 网页设计图形动画软件编程网站开发办公软件操作系统数据库网络技术认证考试范文资料黑客攻防 书籍教程 进入论坛

mvc模式

http://www.diybl.com/ 2007-2-6  网络 点击:  [ 评论 ]
文章搜索:    【点击打包该文章】

package mvc;

/**
 * 此处插入类型说明。
 * 创建日期:(2002-9-4 13:18:39)
 * @author:Administrator
 */
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;

import javax.swing.event.*;public class Controller extends JFrame {
 Model model = null;


 JScrollPane jScrollPane1 = new JScrollPane();

 JTextField jTextField1 = new JTextField();
 JTextField jTextField2 = new JTextField();
 JLabel jLabel1 = new JLabel();
 JLabel jLabel2 = new JLabel();
 JLabel jLabel3 = new JLabel();
 public Controller() {
  try {
   jbInit();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 private void jbInit() throws Exception {
  
  Data[] data = new Data[2];
  data[0] = new Data();
  data[1] = new Data();
  data[0].name = "John";
  data[0].value = 20;
  data[1].name = "Smith";
  data[1].value = 14;
  model = new Model(data);
  viewText = new ViewText(model);
  viewGraph = new ViewGraph(model);  
  
  // 注意下面两行:向模型中登记它的观察者View1和View2. 

  model.registerObserver(viewText);
  model.registerObserver(viewGraph);
  this.getContentPane().setLayout(null);
  jScrollPane1.setBounds(new Rectangle(0, 0, 3, 3));
  
  jTextField1.setText(String.valueOf(data[0].value));
  jTextField1.addCaretListener(new CaretListener() {
   public void caretUpdate(CaretEvent e) {
    // 如果改变了内容,就可以即时更新 label 显示的内容
    textChangeEvent(e);
   }
  });

  jTextField1.setBounds(new Rectangle(80, 254, 52, 30));
  jTextField2.setText(String.valueOf(data[1].value));
  jTextField2.addCaretListener(new CaretListener() {
   public void caretUpdate(CaretEvent e) {
    // 如果改变了内容,就可以即时更新 label 显示的内容
    textChangeEvent(e);
   }
  });
  jTextField2.setBounds(new Rectangle(178, 255, 50, 31));
  jLabel1.setText("提示信息:");
  jLabel1.setBounds(new Rectangle(41, 226, 200, 23));
  jLabel2.setText(data[0].name);
  jLabel2.setBounds(new Rectangle(42, 252, 30, 33));
  jLabel3.setText(data[1].name);
  jLabel3.setBounds(new Rectangle(140, 252, 90, 33));
  
  viewText.setBounds(new Rectangle(7, 5, 225, 208));
  viewGraph.setBounds(new Rectangle(234, 5, 219, 208));
  
  this.getContentPane().add(jScrollPane1, null);
  this.getContentPane().add(jTextField2, null);
  this.getContentPane().add(jTextField1, null);
  this.getContentPane().add(jLabel2, null);
  this.getContentPane().add(jLabel3, null);
  this.getContentPane().add(jLabel1, null);  
  this.getContentPane().add(viewText, null);
  this.getContentPane().add(viewGraph, null);

 }


 public static void main(String[] args) {

  Controller c = new Controller();
  c.setSize(475, 330);
  c.setVisible(true);
 }

 ViewGraph viewGraph = null; ViewText viewText = null; void textChangeEvent(CaretEvent e) {
  try{

    Data[] data = new Data[2];
    data[0] = new Data();
    data[1] = new Data();
    data[0].name = jLabel2.getText();
    int value1 = Integer.parseInt(jTextField1.getText());  
    data[0].value = Integer.parseInt(jTextField1.getText());
    data[1].name = jLabel3.getText();
    data[1].value = Integer.parseInt(jTextField2.getText());
    int value2 = Integer.parseInt(jTextField2.getText());
    if((value1>0&&value1<100)&&(value2>0&&value2<100)){  
     Model m = new Model(data);
     this.model.changeModel(m);
    }
    else {
     jLabel1.setText("提示信息:年龄在1到100之间!");
    }

    
  }catch(Exception ex){
   //ex.printStackTrace();
   jLabel1.setText("提示信息:年龄在1到100之间!");
  }

 }}

欢迎光临DIY部落,点击这里查看更多文章教程   【点击打包该文章】
如果图片或页面不能正常显示请点击这里 站内搜索:   
上一篇文章:ASP下载系统防盗链方法
下一篇文章:mvc-observer模式

文章评论

请您留言