js = new JSpinner();          
        js.addFocusListener(focusListener);         FocusListener focusListener = new FocusListener(){ 
        public void focusGained(FocusEvent e) { 
            try{ 
                Thread.currentThread().wait(); 
            }catch(InterruptedException n){              
            } 
            System.out.print("dkf"); 
            javax.swing.JOptionPane.showMessageDialog(null, "dlfjld"); 
        }         public void focusLost(FocusEvent e) { 
            timer.start(); 
        我写的价码如上所示,但在JS得到焦点时候并没有触发事件. 
另外我还用JText 和 JButton测试了下,都可以,但为什么这个就不行呢? 
JSpinner 怎么写获得焦点的事件? 
有知道的赐教.

解决方案 »

  1.   

    通常JSpinner的getEditor返回的是一个组件组,基本上是JPanel等容器。 
    通过JComponent的getComponents获取加载在上面的组件,基本上0就是Text,其他的是两个Button 通过下面的方法添加焦点监听:
    s.getEditor().getComponents()[0].addFocusListener(new FocusListener(){ public void focusGained(FocusEvent e) { 
    System.out.println("Focus Gained"); 
    } public void focusLost(FocusEvent e) { 
    System.out.println("Focus Lost"); 

    });