2011-06-23 152 views
0

當我嘗試爲此組件的構造函數KeyListener之後不回答的某個swing組件添加KeyListener對象時,爲什麼?例如:KeyAdapter does not does

public class ActionViewer extends SimpleViewer 
           implements ActionListener 

    { 
     public ActionViewer(Dimension __wndSize, String pgnPath, 
          PerspectiveProjection __persp) 
     { 
      super(__wndSize, pgnPath, __persp); 

      ... 
      cMng=null; 
      ... 
     } 
     /// 
     public void setCamera(double xMin, double xMax, 
           double yMin, double yMax, 
           double zMin, double zMax) 
     { 
      if(!isCameraInit()) 
      { 
       if(cMng==null) 
        cMng=new CameraControl(); 
       this.addKeyListener((KeyListener)cMng); 
       fCamInit=true; 
      } 
      setCameraBounds(xMin, xMax, yMin, yMax, zMin, zMax); 
     } 
    ... 
} 

當我在main中調用setCamera時,什麼也沒有發生。

... 
ActionViewer scene = new ActionViewer(wndSize, pgnPath, persp); 
scene.setCamera(xMin, xMax, yMin, yMax, zMin, zMax); 
... 
+0

你的問題非常模糊,至少對我來說很難回答。你能提供更多的上下文嗎?你能否將你的代碼提煉成一個能夠展示你的問題的小型可編譯單元,一個[SSCCE](http://sscce.org)?你知道具有關鍵偵聽器**的組件是否具有焦點**(因爲焦點是KeyListener工作的絕對要求)?通常你最好使用鍵綁定而不是KeyListener。你有沒有探索過這個選項? –

回答

2

我覺得這是初始化的一些問題,你能不能檢查的地方初始化監聽器只是try{}catch所有方法setCamera和打印所有的問題,它應該幫助你找到問題。