你是什么意思?是不是说只要Class1中的某个值一变,就去做你想做的事?你这个值是存放在什么地方的?

解决方案 »

  1.   

    记得Vb里面有Event这个关键字吗
    我在一个类中定义一个函数myEvent
    然后声明 Event myEvent这样myEvent就成了一个事件了当我产生一个类的实例时,他就有myEvent这个事件.我的意思就是想在java造这样一个时间
      

  2.   

    你可以这样试试
    public class A{
        private Vector aListeners = new Vector();
        private int value;
        public int getValue(){
            return value;
        }
        public void setValue(int newValue){
            if(value!=newValue){
                value = newValue;
                AEvent evt= new AEvent(this,value);
                //如果值改变的话,就触发事件
                fireAEvent(evt);
            }
        }
        public synchronized void addAListener(AListener a){
            aListeners.addElement(a);
        }
        public synchronized void removeAListener(Alistener a){
            aListeners.removeElement(a);
        }
        public void fireAEvent(AEvent evt){
            Vector currentListeners = null;
            synchronized(this){
                currentListeners = (Vector)aListeners.clone();
            }
            for(int i =0;i<currentListeners.size();i++){
                AListener listener = (AListener)currentListeners.elementAt(i);
                listener.performed(evt);
            }
        }
    }
    //定义接口,当事件触发时调用
    public interface AListener extends java.util.EventListener{
        public abstract void performed(AEvent e);
    }
    //定义事件
    public class AEvent extends EventObject{
        private int value;
        public AEvent(Object source){
            this(source,null);
        }
        public AEvent(Object source,int newValue){
            super(source);
            value = newValue;
        }
    }
    class B{
        public B(){
            A a = new A();
            a.addAListener(new AListener(){
                public performed(AEvent e){
                    //要处理的
                }
            });
        }
        
    }
    你可以试试了
    我只是大概的写了一下,你再完善一下就可以了
    大体思想应该没什么错误
    就是继承EventObject,和EventListener,然后定义事件触发条件就可以了
      

  3.   

    那我看你没有必要要写着个什么event了,你不如直接在构造函数中写你想做的事的代码了,你看呢?只要一生成一个新的实例就一定会运行!呵呵!
      

  4.   

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    public class keytest extends JFrame implements KeyListener
    {
    private JTextField jt=new JTextField();
    public keytest()
    {
    Container ctp=getContentPane();
    ctp.setLayout(null);
    ctp.add(jt);
    jt.setBounds(20,20,100,30);
    setTitle("keytest");
    setSize(300,300);
    jt.addKeyListener(this);
    addWindowListener(new WindowAdapter()
    {
    public void windowClosing(WindowEvent e)
    {
    System.exit(0);
    }
    });
    }
    public void keyPressed(KeyEvent evt)
    {
    int keyCode =evt.getKeyCode();
    //jt.setText("");
    if (keyCode==KeyEvent.VK_RIGHT && evt.isShiftDown())
        {jt.setText("Shit+->");}
    if (keyCode==KeyEvent.VK_ENTER)  jt.setText(""); 
       //else {jt.setText(""); }
    }
    public void keyTyped(KeyEvent evt){}
    public void keyReleased(KeyEvent evt)
    {
    int keyCode =evt.getKeyCode();
    jt.setText("");
    if (keyCode==KeyEvent.VK_RIGHT && evt.isShiftDown())
        jt.setText("Shit+->");
       //else 
       
    }
    public static void main (String args[])
    {
    JFrame test =new keytest();
    test.setVisible(true);
    }
    }