2012-12-21 2 views
0

내 프로그램이 장식되어 있지 않기 때문에 제목 표시 줄없이 프로그램을 옮기고 싶습니다. 아래의 코드는 작동하지만 지연 또는 건너 뜀을 좋아합니다. 그것은 두 번째 건너 뜁니다 잘 작동, 잘 작동, 등 ... 등 현재 mousemoved에서 내 if 문을 가지고. 내 윈도우/프레임/프로그램을 이동하기 위해 mousedragged를 구현하는 더 좋은 방법이 있습니까?윈도우/프레임/프로그램 이동시 mousedragged lags/skip

addMouseMotionListener(new MouseMotionListener() {     

      @Override 
      public void mouseDragged(final MouseEvent e) { 
       // TODO Auto-generated method stub 
       Runnable runnable = new Runnable() { 
        public void run() { 
         int posX=0; 
         int posY=0; 
         int posx=e.getLocationOnScreen().x; 
         int posy=e.getLocationOnScreen().y; 
         setLocation (posx - posX, posy - posY); 
        }}; 
        SwingUtilities.invokeLater(runnable);          
       } 


       public void mouseMoved(MouseEvent e) { 
        // TODO Auto-generated method stub 
        if (SettingsIni.jmenuauto().equals("on")){ 
         getJMenuBar().setVisible(e.getY() < 50); 
        } 
       }   

      }); 

답변

1

invokeLater()없이 시도해보십시오.

더욱이 posX/Y은 클래스 필드 여야하며 으로 설정해야합니다. 그들은 여기에 서 있기 때문에 유용하지 않습니다 ...

+0

나는 호출하지 않고 나중에 시도했지만 더 좋지 않습니다. 나는 그것을 추천 한 다른 게시물에서 invokelater를 발견했습니다. – user1753429

+0

mousePressed에서 posX를 설정하는 것과 관련하여 다른 조언을 해 주셨습니까? 또한 어떤 Java 버전을 사용하고 있습니까? 어떤 플랫폼에서 이것을 테스트하고 있습니까? – PhiLho

+0

그래서 문제는 어떻게 든 실행중인 테이블 코드입니다. 나는 최근에 새로운 프로그램을 만들었고 언급 한 코드 조정을 사용했으며 지연없이 움직였습니다. 저에게 문제가되는 프로그램에서 업데이트하는 타이머가 있습니다. 내 테이블은 매초 30 건의 업데이트를하고, 각 업데이트는 네트워크에있는 ini4j를 사용하여 ini 파일에서 정보를 가져옵니다. 그래서 당신의 코드는 저를 구해주지 않을 것입니다. 다른 문제가 있습니다. :(도움을 주셔서 감사합니다!) 적어도 그것은 새로운 프로그램에서 작동합니다. – user1753429

관련 문제