2016-10-17 3 views
0

나는 chromotagram 뷰어의 아주 기본적인 인터페이스를 가지고 있습니다. 메뉴에서 사용자가 JCheckboxMenuItem을 사용하여 뷰어를 뒤집을 수 있습니다. 기능적으로, 그것은 정확히 무엇을 해야하는지 않습니다. 나의 인터페이스는 여러 크로마토 그램을 한번에 열어 볼 수있게합니다. 나는 내 질문에 대한 몇 가지 예시 사진을 게시 할 것이다. 나는 하나 개의 탭이 열리고 크로마토 그램을 반대로 아직 한보다도탭을 전환 할 때 JCheckBoxMenuItem이 계속 표시됩니다.

enter image description here

. 내가 옵션을 클릭하고이 일을 위

enter image description here

.

enter image description here

여기 내 문제입니다. 다른 탭을 열어 해당 탭으로 이동하면 아직 해당 버튼을 클릭하지 않아도 옵션이 계속 선택됩니다. 쉬운 방법은 그냥 정상적인 버튼으로 만들 것입니다. 그러나 각 탭이 아직 반전되었는지 추적 할 수있는 방법이 있는지 알고 싶습니다. 이 버튼의 여러 인스턴스가 필요합니까? 아무도 제안이 없으면 알려주세요. 고맙습니다.

+1

메뉴 항목 상태를 전환하고 업데이트하는 탭에 대한 수신기를 추가해 보았습니까? 이 경우 메뉴 항목의 인스턴스 하나만 있으면됩니다. – jenglert

+0

이 문제는 jcheckboxmenuitem이 탭과 연결되어 있지 않고 최상위 창과 연결되어 있고이 창과 함께 하나만 있다고 생각합니다. 탭에 고유 한 것이 필요한 경우에는 탭에 표시된 구성 요소에 JMenuBar를 추가해야합니다. 각 탭에 고유 한 jcheckboxmenuitem 항목이있을 수 있습니다. –

+0

이렇게하려면 BorderLayout.CENTER 위치에 그래픽 디스플레이를 유지하고 BorderLayout.PAGE_START 위치에 새 JMenuBar를 유지하는 BorderLayout을 사용하는 JPanels를 만들어야합니다. –

답변

0
if(centralPara.getNumOpen() > 1){ 
    centralPanel = centralList.get(centralPara.getCurrentFrame()); 
    JCheckBoxMenuItem reverseItem = centralPara.getReverseItem(); 
    boolean reversed = centralPanel.getReversed(); 
    reverseItem.setSelected(reversed); 
} 

내 탭 변경 리스너 적어도 하나 이상의 탭이 열려 있는지 확인합니다. 그렇다면 현재보고있는 프레임과 최상위 메뉴 항목을 가져옵니다. 현재보기 프레임이 선택되면 강제로 선택하거나 강제로 선택 취소하십시오.

관련 문제