2012-12-06 1 views
2

문제는 :'비 구조 어레이의 필드를 참조하는 시도는 "

는 I가 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 

하고 울부 짖는 openningFunction I mtable에서

: findjobj이 실패 할 때

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

답변

1

아마도 jScroll가 비어 있습니다 에스. 그리고 은 글로벌 변수를 사용하기 때문에 발생할 수 있습니다!

제발, 좋고 거룩한 모든 것을 사랑하기 때문에 전역 변수를 사용하지 마십시오. 그들이 예방할 수없는 것보다 기하 급수적으로 더 많은 고통을줍니다.

어쨌든,이 라인

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 

(좋은 prcatice과 같이하여 회피 할 수 있습니까?

관련 문제