marți, 5 iunie 2012

Student observer

package pack;



import javax.swing.*;
import java.awt.event.*;
import java.util.*;

public class DisplayFrom extends JFrame{
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    InputForm inputForm;
    Observable obsInput;
    JTextField display;

    public DisplayFrom() {
       
          addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                      System.exit(0);
                }
          });
          inputForm = new InputForm();
          obsInput = inputForm.getInputInfo();
          obsInput.addObserver(new InputFormObserver());
          display = new JTextField(10);
          add(display);
          setTitle("Observer form");
          setSize(200, 100);
          setLocation(200, 100);
          setVisible(true);
    }

    private class InputFormObserver implements Observer {
          public void update(Observable ob, Object o) {
                doSomeUpdate();
          }
    }

    public void doSomeUpdate() {
          display.setText(inputForm.getText());
          JOptionPane.showMessageDialog(DisplayFrom.this,
                      "This form has been updated");
    }

    public static void main(String args[]) {
          new DisplayFrom();
    }
}
.........................................
package pack;


import java.awt.event.*;
import java.util.Observable;
import javax.swing.*;


public class InputForm extends JFrame{
   
     /**
     *
     */
    private static final long serialVersionUID = 1L;
    public InformDisplay inform = new InformDisplay();
     JTextField input = new JTextField(10);

     public InputForm() {
           JPanel panel = new JPanel();
           input.addActionListener(new ActionListener() {
                 public void actionPerformed(ActionEvent e) {
                       inform.notifyObservers();
                 }
           });
           panel.add(new JLabel("Enter: "));
           panel.add(input);
           addWindowListener(new WindowAdapter() {
                 public void windowClosing(WindowEvent e) {
                       System.exit(0);
                 }
           });
           getContentPane().add(panel);
           setTitle("Observable form");
           setSize(200, 100);
           setVisible(true);
     }

     public Observable getInputInfo() {
           return inform;
     }

     public String getText() {
           return input.getText();
     }

     private class InformDisplay extends Observable {
           public void notifyObservers() {
                 setChanged();
                 super.notifyObservers();
           }
     }
}

...................................
package pack;



import java.util.Observable;

public class MessageBoard extends Observable {
     private String message;

     public String getMessage() {
           return message;
     }

     public void changeMessage(String message) {
           this.message = message;
           setChanged();
           notifyObservers(message);
     }

     public static void main(String[] args) {
           MessageBoard board = new MessageBoard();
           Student bob = new Student();
           Student joe = new Student();
           board.addObserver(bob);
           board.addObserver(joe);
           board.changeMessage("More Homework!");
     }
}

...................................
package pack;


import java.util.Observable;
import java.util.Observer;

public class Student implements Observer{
   
     public void update(Observable o, Object arg) {
         System.out.println("Message board changed: " + arg);
   }
}

Niciun comentariu:

Trimiteți un comentariu