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

📄 infoview.java

📁 MVC设计模式的经典案例
💻 JAVA
字号:
package infotoolsolutions;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2006</p> * <p>Company: </p> * @author not attributable * @version 1.0 */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 + -