문제

마우스를 클릭하면 jradiobutton이 '선택되지 않은'에서 '선택된'으로 변경 될 때 어떻게 감지 할 수 있습니까? 버튼에서 ActionListener를 사용해 보았지만 상태를 '선택된'상태로 변경할 때뿐만 아니라 Radiobutton이 클릭 할 때마다 발사됩니다.

버튼의 상태를 기억하는 부울 변수를 유지하고 ActionListener 내부에서 테스트하여 상태를 변경할지 여부를 확인하지만 훨씬 더 나은 솔루션이 있는지 궁금합니다.

도움이 되었습니까?

해결책

Jradiobutton을보십시오.AddItemListener()

편집 : 클릭당 여러 번 발사하므로 Changelistener를 사용하지 않을 것입니다. ItemListener는 클릭당 한 번만 발생합니다.여기를 봐

EDIT2 :이를 확장하기 위해, Jradiobutton의 ActionListener는 이미 선택된 경우에도 사용자가 클릭 할 때마다 발사됩니다. 그것이 당신이 원하는 것이라면 괜찮지 만 나는 그것이 성가신 것을 발견합니다. 선택하거나 선택 해제된다는 사실 만 알리고 싶습니다.

Changelistener는 모든 종류의 물건에 대해 발사되므로 청취자는 클릭당 5 회 이상의 이벤트를 받게됩니다. 안좋다.

ItemListener가 발사됩니다 선택된 상태 또는 제거 된 상태가 변경되는 경우. 즉, 사용자는 여러 번 클릭 할 수 있으며 변경되지 않으면 발사되지 않습니다. 핸들러 방법에는 if 블록 확인 SELECTED 또는 DESELECTED 상태를 유지하고 거기에서 무엇이든하십시오 :

@Override
public void itemStateChanged(ItemEvent e) {
    if (e.getStateChange() == ItemEvent.SELECTED) {
        // Your selected code here.
    }
    else if (e.getStateChange() == ItemEvent.DESELECTED) {
        // Your deselected code here.
    }
}

메소드에 있다면 라디오 버튼이 방금 선택되거나 선택 해제되었다는 것을 알기 때문에 더 잘 작동합니다. 사용자가 알려지지 않은 이유로 인터페이스를 두드리는 것이 아니라.

다른 팁

나는 당신이 추가하고 싶다고 생각합니다 ChangeListener 구현.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top