Variable amount of checkboxes in listbox (programmatic GUI)

10 Ansichten (letzte 30 Tage)
I have in my programmatic GUI the following listbox:
h.listbox = uicontrol('style','listbox','units','pixels',...
'position',[10,175,200,200],...
'string',components_index);
The entire program gives me the following output:
What I now want, is that in front of every stock, I have a checkbox. Keep in mind that the amount of stocks is variable.
Can anyone point towards a solution?
Thanks in advance,
Jonathan

Akzeptierte Antwort

Adam
Adam am 26 Aug. 2014
I don't think that is possible with Matlab UI controls. However, if you don't mind doing some experimentation with undocumented controls, the following information on Yair Altman's excellent blog may help:
  2 Kommentare
Jonathan
Jonathan am 27 Aug. 2014
I eventually went for uitable. YIDE combo boxes is a bit difficult for my programming skills :P. But thanks!
If anyone is interested, using the following code will give want I wanted.
components_index = {'one1','two2','three3'};
h.table = uitable('units', 'pixels', 'position', [10, 100, 200, 200], ...
'columnname', {'Yes/No'},...
'columnformat',{'logical'},...
'ColumnEditable', true,...
'rowname',components_index,...
'data',false(numel(components_index),1));
Adam
Adam am 27 Aug. 2014
Yeah, I've shied away from the hardcore Jide UI programming too for now and have also been using uitable of late. I don't like it at all and it took me probably as long to get right as Jide would, but it does a job so glad you got that to work for you.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Yair Altman
Yair Altman am 4 Sep. 2014
There are actually 2 built-in controls that you could use within Matlab:
  1. com.jidesoft.swing.CheckboxList
  2. com.mathworks.mwswing.checkboxlict.CheckBoxList
Usage example (more details in my Matlab-Java book):
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)
  2 Kommentare
Sarfudeen
Sarfudeen am 7 Jan. 2015
how to loop over multiple files selection in this....
André Luiz Lourenço
André Luiz Lourenço am 8 Mai 2019
How can I put this listbox into a panel control?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Environment and Settings finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by