2010-08-14 6 views
3

저는 Java에 익숙하지 않아 NetBeans에서 코딩하고 있습니다. 문제는 컨트롤을 사용하지 않을 때마다 즉 jmenu.setEnabled (false)는 여전히 이벤트를 발생시킵니다. 이런 세상에! 어때? : PJava 문제입니다. 비활성화 된 컨트롤은 여전히 ​​이벤트를 발생시킵니다!

어떻게 방지 할 수 있습니까? javadoc에서

+1

"something"? 그리고 무슨 제어? – bakkal

+0

지금까지 jmenu, jbutton – Arturo

+1

과 같은 이벤트를 사용하여 어떤 컨트롤을 사용 했습니까? 더 많은 코드를 게시 할 수 있습니까? –

답변

2

스윙에서 채택한 이벤트 모델에 맞추려면 가장 좋은 방법은 구성 요소가 비활성화되었을 때 실행하지 않으려는 핸들러에 isEnabled() 검사를 추가하는 것입니다.

+0

음침한도, 그렇게 생각, 잠시 나 걸렸어 .C#에서 프로그래밍 낮은 수준의 물건에 게으른있어 – Arturo

7

:

참고 : 경량 구성 요소를 비활성화하면 수신 MouseEvent는 것을 방지하지 않습니다.

참고 : 헤비급 컨테이너를 비활성화는 입력 이벤트를 수신 이 컨테이너를 모든 구성 요소를 방지 할 수 있습니다. 그러나 가벼운 컨테이너 을 사용 중지하면이 컨테이너에만 영향을줍니다 ( ).

disableEvents(long mask)을 확인하시기 바랍니다.

+0

고맙지만, 그때 내가 뭘 할 수있는 경량 컴 파트먼트가 비활성화 된 상태에서 이벤트 호출을 수신하고 헤비급 컨테이너가 여전히 호출을 수신하도록 허용합니까? – Arturo

+0

아아아 괜찮 아픈 확인 : D – Arturo

1

javax.swing.Action 제어 스윙 구성 요소 사용을 고려하십시오.

이렇게하면 Action.setEnabled으로 작업을 직접 비활성화 할 수 있습니다. 구성 요소는 자동으로 상태를 채택합니다. 이 방법으로 무효로하면 (자), 컴퍼넌트는 MouseEvent를받지 않습니다.

생성자 JButton(Action)의 문서를 참조하십시오.

관련 문제