📄 infoview.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 + -