⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 infoview.java

📁 面向对象的mfc的例子
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;

public class InfoView{
  private InfoModel model;
  private static int viewNo=0;
  private int viewId;
  // GUI Components
  private JFrame frame;
  private Container contentPane;
  private JPanel msgPan = new JPanel();
  private JPanel wthPan = new JPanel();
  private JTextField msgText = new JTextField(30);
  private JTextField wthText = new JTextField(30);
  private JLabel msgLabel = new JLabel("Message Display Page");
  private JLabel wthLabel = new JLabel("Weather Display Page");
  private JButton msgUpdate = new JButton("Update Message");
  private JButton wthGet = new JButton("Get Weather");
  private JButton wthUpdate = new JButton("Update Weather");
  private JButton msgGet = new JButton("Get Message");
  private CardLayout card = new CardLayout();

  // user gesture listener management data structure
  private ArrayList listeners = new ArrayList(10);

  public InfoView(InfoModel model) {
    this.model = model;
    viewId = ++viewNo;
    System.out.println("View " + viewId +
      ": InfoDisplay(model) ");
    buildDisplay();
    model.addModelChangeListener(this); //subscribe
  }
  
  public void processModelChange(Object event){
    System.out.println("View " + viewId +
      ": processModelChange() ");
    refresh();
  }
  
  public void addUserGestureListener(InfoController con){
    System.out.println("View " + viewId +
      ": addUserGestureListener(controller) ");
    listeners.add(con);
  }

  
  public void showDisplay(String display){
    System.out.println("View " + viewId +
      ": showDisplay() ");
    card.show(contentPane, display);
  }
  
  //private methods

  private void refresh() {
    System.out.println("View " + viewId +
      ": refresh() ");
    msgText.setText(model.getMessage());
    wthText.setText(model.getWeather());
  }
  private void buildDisplay(){
    frame = new JFrame("Info Client " + viewId);
    contentPane = frame.getContentPane();
    // build message panel msgPan
    msgPan.setLayout(new BorderLayout());
    msgPan.add(msgLabel, BorderLayout.NORTH);
    msgPan.add(msgText, BorderLayout.CENTER);
    msgPan.add(msgUpdate, BorderLayout.EAST);
    msgPan.add(wthGet, BorderLayout.WEST);
    // build weather panel wthPan
    wthPan.setLayout(new BorderLayout());
    wthPan.add(wthLabel, BorderLayout.NORTH);
    wthPan.add(wthText, BorderLayout.CENTER);
    wthPan.add(wthUpdate, BorderLayout.EAST);
    wthPan.add(msgGet, BorderLayout.WEST);
    // add panels to frame and show frame
    contentPane.setLayout(card);
    contentPane.add(msgPan, "message");
    contentPane.add(wthPan, "weather");
    frame.pack();
    frame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
    frame.setVisible( true );
    frame.setLocation(0, (viewId-1)*100);
    refresh();
    // register event listeners with the GUI controls
    msgUpdate.addActionListener(msgUpdateHandler);
    wthGet.addActionListener(wthGetHandler);
    wthUpdate.addActionListener(wthUpdateHandler);
    msgGet.addActionListener(msgGetHandler);
  }
  
  //event handler methods
  ActionListener msgUpdateHandler =
    new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        // fire event -- inform registered controllers
        InfoController con;
        for (int i=0; i<listeners.size(); i++){
          System.out.println("View " + viewId +
            ": fire msgUpdate event");
          con = (InfoController) listeners.get(i);
          con.processMsgUpdate(msgText.getText()); 
        }
      }
    };

  ActionListener msgGetHandler =
    new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        // code to process add new customer request
        // fire event -- inform registered controllers
        InfoController con;
        for (int i=0; i<listeners.size(); i++){
          System.out.println("View " + viewId +
            ": fire getMessage event");
          con = (InfoController) listeners.get(i);
          con.processGetMessage(); 
        }
      }
    };

  ActionListener wthUpdateHandler =
    new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        // code to process add new customer request
        // fire event -- inform registered controllers
        InfoController con;
        for (int i=0; i<listeners.size(); i++){
          System.out.println("View " + viewId +
            ": fire wthUpdate event");
          con = (InfoController) listeners.get(i);
          con.processWthUpdate(wthText.getText()); 
        }
      }
    };

  ActionListener wthGetHandler =
    new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        // code to process add new customer request
        // fire event -- inform registered controllers
        InfoController con;
        for (int i=0; i<listeners.size(); i++){
          System.out.println("View " + viewId +
            ": fire getWeather event");
          con = (InfoController) listeners.get(i);
          con.processGetWeather(); 
        }
      }
    };

  public static void main(String args[]){
    InfoView view = new InfoView(new InfoModel());
  }
  
  
}
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -