2014-01-29 5 views
0

내 (프로그래밍 방식) Matlab GUI에서 목록 상자가 uicontrol입니다.목록 상자 안에 체크 박스를 표시하십시오.

내가 원하는 것은 각 옵션 앞에 체크 박스를 표시하는 것입니다. 사용자가 체크 박스를 클릭하면 표시가되고 나중에 계산 중에 요소가 고려됩니다. 사용자가 레이블을 클릭하는 경우 선택한 옵션에 대한 설명이 텍스트로 표시되어 uicontrol으로 표시되어 옵션의 의미를 사용자에게 알립니다.

기본적으로 설치할 구성 요소를 선택할 수있는 설치 프로그램과 비슷한 기능을 원하며 해당 구성 요소를 클릭하여 해당 구성 요소에 대한 정보를 얻을 수 있습니다 (반드시 선택한 것으로 표시하지는 않음).

확인란을 사용하거나 이와 비슷한 방법이 있습니까?

답변

2

목록 상자는 일반 문자열 만 항목으로 사용하기 때문에 "준비"방법이 없습니다.

목록 상자 영역에 맞는 확인란을 "수동으로"그릴 수는 있지만 모든 작업을 수행하는 데는 많은 작업이 필요할 수 있습니다. 또 다른 대안은 자바 구성 요소로 이동하는 것입니다. MATLAB에서 사용할 수 jide 구성 요소를 사용하여. 예 : 몇 가지 예에 대한

http://undocumentedmatlab.com/blog/using-jide-combo-boxes/

.

  1. com.jidesoft.swing.CheckboxList
  2. com.mathworks.mwswing.checkboxlist.CheckBoxList

사용 예 (내 Matlab-Java book에서 자세한 내용) :

+0

아, 그게 내가 두려워했던 것입니다. (나는 시각적 인 해결 방법 (buttongroup/panel + checkboxes)으로 갈 것입니다. 자바를 사용하고 싶지는 않습니다 ... 어쨌든 고맙습니다. 적어도 지금은 가능하지 않다는 것을 알고 있습니다 : P – scenia

+0

문서화되지 않은'uigridcontainer'와'uiflowcontainer'를 살펴볼 수도 있습니다 - 레이아웃을 상당히 쉽게 처리 할 수 ​​있습니다. – sebastian

2

실제로이 내장 당신이 matlab에에서 사용할 수있는 컨트롤이 있습니다 jList = java.util.ArrayList; % any java.util.List will be ok jList.add(0,'First'); jList.add(1,'Second'); jList.add(2,'Third'); jList.add(3,'and last'); jCBList = com.mathworks.mwswing.checkboxlist.CheckBoxList(jList); jScrollPane = com.mathworks.mwswing.MJScrollPane(jCBList); [jhCBList,hContainer] = javacomponent(jScrollPane,[10,10,80,65],gcf); set(jCBList, 'ValueChangedCallback', @myMatlabCallbackFcn); jCBModel = jCBList.getCheckModel; jCBModel.checkAll; jCBModel.uncheckIndex(1); jCBModel.uncheckIndex(3);

com.mathworks.mwswing.checkboxlict.CheckBoxList example