2013-12-14 7 views
0

마우스가 JButton을 입력하는 동안 웨이브 파일의 피치를 변경하려고합니다. 문제는 JButton 개체가 SAMPLE_RATE 컨트롤을 지원하지 않는다는 것입니다. 피치를 변경하려면 어떻게해야합니까? 그들은 단지 않고하는 JButton에게 관련된 개념을 이해할 수 있고, 그것이 있어야로이다 - 물론JFrame 객체가 피치 변경을 지원합니까?

(FloatControl.Type.SAMPLE_RATE) 

답변

1

JButton의는 것과 같은 임의의 기능을 지원하지 않습니다. 그러나 모든 것이 사라지지 않습니다. JButton의 ButtonModel에 ChangeListener를 부여 할 수 있습니다. 그러면 마우스가 버튼 호출 위로 마우스를 가져 가면 샘플 속도를 제어하는 ​​객체에 상관없이 샘플 속도가 변경됩니다. ChangeListener에서 isRollover() 메소드를 점검하여 호버링을 확인하십시오. 당신이 스윙의 이벤트 스레드 떨어져 백그라운드 스레드에서 피치 수정을해야 할 수도

예를 들어,

button.getModel().addChangeListener(new ChangeListener() { 

    @Override 
    public void stateChanged(ChangeEvent cEvt) { 
     ButtonModel model = (ButtonModel) cEvt.getSource(); 
     if (model.isRollover()) { 
      // do something with pitch 
     } else { 
      // undo something with pitch 
     } 
    } 
    }); 

참고.