GUI listbox
5 次查看(过去 30 天)
显示 更早的评论
I try to get selected value(string) from listbox in MATLAB.
Is this code OK?? Here is my code:
mousePos = java.awt.Point(jEventData.getX, jEventData.getY);
clickedIndex = jListbox.locationToIndex(mousePos) + 1;
listValues = get(hListbox,'string');
clickedValue = listValues{clickedIndex};
msgbox(clickedValue);
How to use JAVA in matlab we have in java jList.getSelectedIndex();
2 个评论
Robert Cumming
2011-12-19
Is there any reason why you are not using the matlab commands set and get?
采纳的回答
Walter Roberson
2011-12-19
strings = get(hObject, 'string');
curval = get(hObject, 'value');
if iscell(strings)
curstring = strings{curval};
else
curstring = strings(curval, :); %char array
end
Whether the string parameter is a cell array of strings, or a char array, depends on exactly how the listbox was initialized. If it was initialized to a single string that did not have any '|' characters, or initialized to a char array, then a char array will be the result, but if it was initialized to a cell array of strings, or to a single string that had on or more '|' characters, then a cell array will be the result.
5 个评论
更多回答(1 个)
Sean de Wolski
2011-12-19
No reason to access java directly. Use get() with the handle to the listbox to recieve the value property. E.g:
figure; %new fig
h = uicontrol('units','norm','style','listbox',...
'string',{'hello';'world';'eww monday'},'position',[.2 .2 .4 .4]); %a listbox
Select 'world'.
Now at the command line:
get(h,'value')
Addendum:
So:
figure;
names = {'Aldin';'Sean';'John'};
h = uicontrol('units','norm','style','listbox',...
'string',names,'position',[.2 .2 .4 .4]);
h(2) = uicontrol('style','push','callback',@(src,evt)disp(names{get(h(1),'value')}));
Select my name then push the button
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Call Java from MATLAB 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!