2010-08-04 3 views
2

나는 JButton (또는 실제로 컴포넌트)을 가지고 있는데, 클릭 한 것으로 간주하여 액션 수행 이벤트를 발생 시키려고합니다. 버튼을 넘어 일반화 된 솔루션을 만들기 위해 수행 된 작업 또는 doClick을 직접 호출하고 싶지 않고 이벤트를 게시하는 데 제약이 있습니다.마우스 이벤트를 사용하여 스윙 JButton을 어떻게 누르면됩니까?

나는 시스템 이벤트 대기열에 MousePressed 이벤트를 게시하면 그 일을 수행했을 것이라고 생각했을 것입니다. (적절한 위치, 클릭 수 등)

그런 다음 마우스 입력, 마우스 누름, 마우스 해제 및 마우스 클릭이 발생했다고 생각했습니다.

아무 것도 없기 때문에 JButton은 실제 클릭했을 때와 같은 동작을 수행합니다.

JButton이 마우스 이벤트로 이벤트를 실행하여 수행 한 이벤트를 침입하게 한 원인이 있습니까? 마우스 이벤트로 JSlider를 이동 했습니까? 트리 노드를 확장 했습니까?

도움 주셔서 감사합니다.

답변

1

fireActionPerformed 메소드를 사용해 보셨습니까? 나는 모든 구성 요소가 그것을 가지고 있는지 기억하고 있지만 지금 당장 기억해두면 모든 버튼과 메뉴 항목은 그것을 지녀야한다. 그냥 생각해 보면

+0

'fireActionPerformed'가'protected'이므로 서브 클래스에서 노출시켜야합니다. – akf

+0

동일한 패키지 또는 하위 클래스의 클래스 만 사용할 수 있기 때문에 사용자는이 작업을 수행해야합니다. 나머지를 구현하는 방법은 모두 당신에게 달려 있습니다. 그것의 일반적인 일이 아니라 내가 확실히 그것을 해본 적이 없어 난 그냥 javadocs 말을 기반으로 작동한다고 가정 – zcourts

관련 문제