这样的方法可以吗?当textfield内容变化时触发。
void jTextField1_inputMethodTextChanged(InputMethodEvent e) {
    .....
  }

解决方案 »

  1.   

    可以,
    .....................
      if(e.getResouce==jTextField[1])
    ...................
      

  2.   

    我以前做过实验,如果JPanel和里面包含的JButton,JLable都设置了
    ActionListener,那么鼠标移动到JLabel上操作时,鼠标事件全被JLabel
    捕获,不能被JPanel所捕获,只有在JPanel的无组件区操作鼠标时,才
    会被JPanel捕获,也就是说JPanel捕获不到它包含的组件上的动作也许有方法可以把JPanel里的组件事件全部转移给JPanel,至少现在我还不会你想那样做的原因是什么呢?如果你的JTextField用数组,那么设置监听只
    需要个循环,监听处理可以通过 instanceof 判断是哪一种组件产生了键盘
    事件
      

  3.   

    使jpanel和它的组件公用一个监听器不行吗??
      

  4.   

    What's your purpose?
    EventQueue can dispatch events. But why you should use it?
      

  5.   

    今天参考了下事件处理的资料,原来JAVA的事件处理模型有两种,我们一般
    所用的是JDK1.1以后引入的委托(delegation)处理模型
    (比如addKeyListener),每个组件注册自己的监听程序,在委托模型下
    各个组件有自己的监听程序,即使把组件和其父容器注册到同个监听程序,
    那么组件监听会优先于父容器监听,所以委托模型是无法完成楼主的要求的在JDK1.0的时候,JAVA的事件处理是使用层次(hierarchal)模型,这种模型
    主要基于容器和组件的包含关系:一个事件对象产生后,首先被传给直接
    相关的组件,该组件可以对事件进行处理,也可以忽略事件而不进行处理。
    如果组件未对事件进行处理,则AWT事件处理系统会将事件对象继续向上
    传递给组件所在的容器。依此类推。
    所以层次模型是可以完成楼主的要求的,不过层次模型用java.awt.Event类
    和handleEvent()方法来完成事件处理,实现起来比委托模型要复杂的多
      

  6.   

    jPane1.getToolkit().getDefaultToolkit().addAWTEventListener(new AWTEventListener(){
            public void eventDispatched(AWTEvent e) {
              if (e instanceof KeyEvent) {
                KeyEvent key = (KeyEvent) e;
                System.err.println(key.getComponent());
                System.err.println(key.getSource());
                System.err.println(key.getKeyChar());
              }
            }
          }, AWTEvent.KEY_EVENT_MASK);
    呵呵,大家可以试试上面的方法,可以监听一个JPanel中所有的KEY事件,如果想监听其它事件,如Focus,只要将AWTEvent.KEY_EVENT_MASK 改为 FOCUS_EVENT_MASK有兴趣的朋友可以进来讨论一个它的原理。