2

问题是:

我需要点击一个Pushbottom时,会选择下一行,相关代码是:

function pushbutton11_Callback(hObject, eventdata, handles)
   global mtable;
   jScroll = findjobj(mtable);
   jtable=jScroll.getViewport.getView;
   row = jtable.getSelectedRow ;
   jtable.setRowSelectionInterval(row+1,row+1);
   jtable.setColumnSelectionInterval(0,99); %the number of mtable columns is 100

openningFunctionmtable如下:

mtable = uitable('parent',gcf,'Units','normalized','Data',data);
set(mtable,'columnName',cname);
set(mtable,'Position',[0.17 0.2 0.75 0.75]);
4

1 回答 1

1

失败时很可能jScroll是空的。findjobj可能会发生,因为您使用的是全局变量!

拜托,拜托,为了所有美好和神圣的事物,不要使用全局变量;他们造成的痛苦比他们所能预防的要多得多。

无论如何,请尝试删除此行末尾的分号

jScroll = findjobj(mtable)

并查看发生错误时的输出。如果我说的是真的,你可以通过类似

jScroll = findjobj(mtable);
if ishandle(jScroll) %// <-- add this line
   jtable=jScroll.getViewport.getView;
   row = jtable.getSelectedRow ;
   jtable.setRowSelectionInterval(row+1,row+1);
   jtable.setColumnSelectionInterval(0,99);
end %// <-- and this one

(无论如何,这对于任何应该是句柄的东西都是一个很好的做法

这些帮助有用?

于 2012-12-06T13:51:44.753 回答