2011-10-19 3 views
0

특정 빌드하려고합니다. JMenu. 내가 JMenuItemJMenu 기능으로 사용하고 싶습니다. I.E. 그것을 클릭하면 항목이 뭔가를해야합니다 (예 : 대화 상자 열기). 그러나 JMenuItem에는 버튼 (또는 다른 구성 요소)도 포함되어야합니다. 버튼을 클릭하면 몇 가지 옵션이있는 팝업이 열립니다.JButton inside JMenuItem

그래서, 지금은 이런 일이까지 :

내가 전에 화살표를 클릭 한 것입니다

Desired UI

.

내 문제는 내가 단추 (화살표)를 누르면 실제로 하위 메뉴가 열리지 만 해당 단추가 들어있는 메뉴 항목이 포커스를 잃어 버리기 때문에 닫힙니다. 화살표 버튼에 클릭 한 후 결과이다

Broken UI

.

관리 방법이 있습니까? 또는이 동작을하는 더 좋은 방법은?

+1

하나의 메뉴 항목 (메뉴의 한 줄)에서 두 가지 동작을 사용하려면 텍스트를 클릭 할 때 어떤 동작을 수행하고 단추를 클릭 할 때 하위 메뉴를여시겠습니까? 그다지 사용자 친화적이지는 않을 것입니다. 서브 메뉴를위한 menugroup, 즉 새로운 (하위)'JMenu '를 사용하십시오. – Thomas

+0

내 질문에 왜 JMenuItem으로 JMenu에 JButton을 넣었습니까? 기본 구현에 만족하지 않으셨습니까? – mKorbel

+0

@ 토마스 : 네, 그게 내가 원했던 것입니다 : 텍스트를 클릭 할 때 액션을 수행하고 단추. –

답변

0

실제로이 특정 문제에 대한 해결책을 찾을 수 없습니다. 임시 해결책으로, 새로운 팝업을 여는 단추 (화살표) 대신 옵션 1과 옵션 2 사이를 토글하는 단순한 단추를 사용했습니다. 도움을 주셔서 감사합니다.

1

대신 간단한 중첩 된 JMenuItem을 사용하지 않는 이유는 무엇입니까? this (맨 위의 첫 번째 화면)과 같은 것입니다.

반면에 here과 유사한 솔루션을 사용하면 도움이됩니다.

2

구현하고자하는 것을 정확히 알면 안내해 드릴 수 있습니다. 옵션을 선택하기 만하면 JRadioButtonMenuItem을 사용하여 더 좋은 방법으로 구현할 수 있으므로 버튼을 구현 한 다음 옵션을 선택해야 할 필요가 없습니다.하지만 실제로 원하는 것에 달려 있습니다.

+0

나는 Thomas가 언급 한 것을 정확히 원합니다. 사용자 친화적이지는 않지만이 시점에서 어떻게해야하는지 알 수 있습니다. –

2

메뉴가 의도 한 것과 다릅니다. 대신 ribbon을 사용하면 쉽고 자연 스러울 것입니다.

+1

꽤 반 직관적 인 메뉴를 사용하여 동의합니다. 리본은 더 나은 대안으로 보입니다. – Thomas