ÊÕ ²Ø Ͷ ¸å ·± Ìå RSS 
Õ¾³¤°É-ÖйúÕ¾³¤Ñ§Ï°Óë½»Á÷µÄÍøÕ¾
Ê× Ò³ ÔË Óª ѧ Ôº ½¨ Õ¾ ÂÛ Ì³
Web master8.net  
 ÍøÕ¾ÔËÓª  
  »¶Ó­ÔÚ±¾Õ¾·¢²¼ÐÅÏ¢£¬ÔÚÏßͶµÝ¸å¼þÇëµãÕâÀï¡£±à¼­QQ:4908220£¬»¶Ó­ÁªÏµ½»Á÷¡£
Òµ½ç¶¯Ì¬ ´´Òµ¹ÊÊÂ ÍÆ¹ãÑо¿ ²ß»®Ó¯Àû µç×ÓÉÌÎñ Æóҵƽ̨
  Õ¾³¤¹¤¾ß
SEO²éѯ Whois²éѯ Pr²éѯ ÓòÃû²éѯ IP²éѯ ÍøÒ³±à¼­Æ÷
 ½¨Õ¾·þÎñ  
  ÈçÓн¨Õ¾ÒâÏò£¬Ç뾡¿ìÁªÏµÎÒÃÇ£¬ÒԱ㰲ÅÅʱ¼ä... ½¨Õ¾·þÎñ QQ4908220 QQ:4908220
×÷Ʒչʾ ·þÎñ·¶Î§ ·þÎñÁ÷³Ì ·þÎñ±¨¼Û ÁªÏµ·½Ê½ ¸¶¿î·½Ê½
ÎÄÕÂÕýÎÄ  » ÄúµÄµ±Ç°Î»Ö㺠Ê×Ò³ >> ѧԺ >> ³ÌÐò¿ª·¢ >> JSP
mvc-observerģʽ
  À´Ô´£º»¥ÁªÍø | ʱ¼ä£º2005-10-04 | ä¯ÀÀ£º   Ïà¹ØÆÀÂÛ | ±¨¸æ´íÎó | ·¢²¼ÎÄÕÂ
¡¾×ֺţº´ó | ÖÐ | С¡¿ ¡¾±³¾°É« ÐÓÈÊ»Æ ÇïÒ¶ºÖ ëÙÖ¬ºì ½æÄ©ÂÌ ÌìÀ¶ Ñ©Çà »Ò ÒøºÓ°×(ĬÈÏÉ«) ¡¿
package mvc_observer;

/**
 * ´Ë´¦²åÈëÀàÐÍ˵Ã÷¡£
 * ´´½¨ÈÕÆÚ£º(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.*;import java.util.*;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 {

  ArrayList data = new ArrayList();  
  Message mess1 = new Message();  
  mess1.name = "John";
  mess1.value = 20;
  data.add(mess1); 
  Message mess2 = new Message(); 
  mess2.name = "Smith";
  mess2.value = 14;
  data.add(mess2);
  
  model = new Model(data);
  viewText = new ViewText(model);
  viewGraph = new ViewGraph(model);  
  
  // ×¢ÒâÏÂÃæÁ½ÐУºÏòÄ£ÐÍÖеǼÇËüµÄ¹Û²ìÕßView1ºÍView2.
  model.addObserver(viewText);
  model.addObserver(viewGraph);

  //model.registerObserver(viewText);
  //model.registerObserver(viewGraph);
  this.getContentPane().setLayout(null);
  jScrollPane1.setBounds(new Rectangle(0, 0, 3, 3));
  
  jTextField1.setText(String.valueOf(((Message)data.get(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(((Message)data.get(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(((Message)data.get(0)).name);
  jLabel2.setBounds(new Rectangle(42, 252, 30, 33));
  jLabel3.setText(((Message)data.get(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{

   
    ArrayList data = new ArrayList();  
    Message mess1 = new Message();  
    mess1.name = jLabel2.getText();
    mess1.value = Integer.parseInt(jTextField1.getText());
    data.add(mess1);
    Message mess2 = new Message();  
    mess2.name = jLabel3.getText();
    mess2.value = Integer.parseInt(jTextField2.getText());
    data.add(mess2);    
    
    int value1 = Integer.parseInt(jTextField1.getText());
    int value2 = Integer.parseInt(jTextField2.getText());
    
    if((value1>0&&value1<100)&&(value2>0&&value2<100)){  
     model.setData(data);
     
    }
    else {
     jLabel1.setText("ÌáʾÐÅÏ¢:ÄêÁäÔÚ1µ½100Ö®¼ä!");
    }

    
  }catch(Exception ex){
   //ex.printStackTrace();
   jLabel1.setText("ÌáʾÐÅÏ¢:ÄêÁäÔÚ1µ½100Ö®¼ä!");
  }

 }}
---------------------------------------------------------------------------------------------------------------------
package mvc_observer;

/**
 * ´Ë´¦²åÈëÀàÐÍ˵Ã÷¡£
 * ´´½¨ÈÕÆÚ£º(2002-9-4 13:18:39)
 * @author£ºAdministrator
 */
public class Message {
 public int value;
 public String name;


}
------------------------------------------------------------------------------------------------------------------
package mvc_observer;

import java.util.*; 
/**
* ´Ë´¦²åÈëÀàÐÍ˵Ã÷¡£
* ´´½¨ÈÕÆÚ£º(2002-9-4 13:18:39)
* @author£ºAdministrator
*/
public class Model extends Observable{
 private ArrayList data = new ArrayList();

 public Model(ArrayList data) {
  for (int i = 0; i < data.size(); i++) {
   this.data.add(data.get(i));
  }
 } public ArrayList getData() {
  return data;
 } public void setData(ArrayList data) {
  this.data.clear(); 
  for (int i = 0; i < data.size(); i++) {
   this.data.add(data.get(i));
  }
  setChanged();
  notifyObservers("name");
 }
}
-------------------------------------------------------------------------------------------------------------
package mvc_observer;

/**
 * ´Ë´¦²åÈëÀàÐÍ˵Ã÷¡£
 * ´´½¨ÈÕÆÚ£º(2002-9-4 13:18:39)
 * @author£ºAdministrator
 */
import javax.swing.*;

import java.awt.*;

import javax.swing.border.*;


import java.util.*;public class ViewGraph extends JPanel implements Observer {
 private Model model;


 public ViewGraph(Model model) {
  try {
   this.model = model;
   jbInit();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 private void jbInit() throws Exception {
  this.setBackground(Color.white);
  this.setBorder(new TitledBorder(BorderFactory.createLineBorder(Color.black, 1),"View1")); 

 }

 public void paintComponent(Graphics g) {

  super.paintComponent(g);
  if (model == null){
   return;
  }

  int x = 20, y = 50;
  int h = g.getFontMetrics().getHeight();
  int width = this.getWidth();
  int height = this.getHeight();
  int sy = height / model.getData().size();
  int sx = width / 2;
  for (int i = 0; i < model.getData().size(); i++) {
   Message data = (Message)model.getData().get(i);
   int value = data.value;
   int dx = 3;
   int r = 3;
   Color c =  new Color((int) (255 * Math.random()), (int)(255 * Math.random()),(int)(255 * Math.random())); 
   int cx = sx;
   int cy = y + i * sy;
   for (int j = 0; j < value; j++) {
    g.setColor(c);
    g.drawOval(cx, cy, r, r);
    r += dx;
   }
   g.drawString(data.name, 25, cy);
  }
 }


 // µ±Ä£ÐÍÊý¾Ý·¢Éú¸Ä±äʱ£¬»á×Ô¶¯µ÷Óô˷½·¨À´Ë¢ÐÂͼÐΠ

 public void update(Observable obj,Object args) {
  /**@todo: Implement this Observer method*/
  this.model = model;
  repaint();
 }}
-------------------------------------------------------------------------------------------------------------
package mvc_observer;

/**
 * ´Ë´¦²åÈëÀàÐÍ˵Ã÷¡£
 * ´´½¨ÈÕÆÚ£º(2002-9-4 13:18:39)
 * @author£ºAdministrator
 */
import javax.swing.*;

import java.awt.*;

import javax.swing.border.*;

import java.util.*;public class ViewText extends JPanel implements Observer {
 private Model model;


 public ViewText(Model model) {
  try {   
   this.model = model;
   jbInit();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 private void jbInit() throws Exception {
  this.setBackground(Color.white);
  this.setBorder(new TitledBorder(BorderFactory.createLineBorder(Color.black, 1), "View1")); 
 }

 public void paintComponent(Graphics g) {
  super.paintComponent(g);
  if (model == null){
   return;
  }
  int x = 20, y = 50;
  int h = g.getFontMetrics().getHeight();
  for (int i = 0; i < model.getData().size(); i++) {
   Message data = (Message)model.getData().get(i);
   g.drawString(data.name, x, y);
   y += h;
   g.drawString(String.valueOf(data.value), x, y);
   y += h;
  }
 }


 public void update(Observable obj,Object args) {
  /**@todo: Implement this Observer method*/
  this.model = model;
  repaint();
 }
}
master8
  • ÉÏһƪ£ºFactoryģʽ
  • ÏÂһƪ£ºÍòÎ¬Íø´´Ê¼È˲©¿Í´¦Å®Ðã

  • ÎÒҪͶ¸å¡¡ ´òÓ¡±¾ÎÄ¡¡ ÍÆ¼ö±¾ÎÄ¡¡ ¼ÓÈëÊղء¡ ·µ»Ø¶¥²¿¡¡ ¹Ø±Õ´°¿Ú
    ËÑÄ£°å(www.somoban.com) Ô­´´ÍøÕ¾Ä£°å½»Òׯ½Ì¨
    °¢ÀïÂèÂèÔÙÏÆ·è¿ñ²É¹º·ç£¬ÍøÕ¾¹ã¸æÎ»ÑÏÖØ¸æ¼±£¬¼±ÕÙÌìÏÂÕ¾³¤
    »ùÓÚPHP+MySQLµÄÕûÕ¾¡¢Ä£¿é¡¢²å¼þ¿ª·¢µÈ»òÕß°´ÐèÇóʵÏÖÏàÓ¦¹¦ÄÜ;
»ùÓÚ¸÷PHPÖ÷Á÷½¨Õ¾ÏµÍ³CMS,BBS,BLOGµÈµÄÄ£°å¶¨ÖÆ,ÍêÈ«ÊÖд´úÂë;
ÕûÕ¾Êý¾ÝÇ¨ÒÆ»ò±¸·Ý»Ö¸´;ÍøÒ³´úÂëÓÅ»¯¡¢Öع¹;ÕûÕ¾³£¹æSEOÓÅ»¯;ÍøÕ¾¼¼ÊõÖ§³Ö;
µã»÷Á˽âÏêÇé...
    Õ¾³¤ÂÛ̳
    • ÑéÖ¤Âë: