У меня был функциональный скрипт, который работал отлично.Часть этого включает небольшую команду java.awt.Robot, которая создает пользовательский курсор мыши.Скрипт работает точно так, как я и предполагал, без каких-либо ошибок / ошибок, насколько я могу судить по повторным запускам.
Однако я решил добавить в скрипт команду msgbox, которая дает пользователю, запускающему программу, пару инструкций о том, что делать для запуска программы.Добавление команды msgbox в, кажется, деактивирует команду java.awt.Robot, даже если я использую различные обходные пути, связанные с uiwait.
Есть идеи, в чем здесь проблема?msgbox переопределяет команду Robot, которую я дал ранее в функции.Наилучший вариант:
- переопределить msgbox?Как мне это сделать?-использовать что-то кроме msgbox для всплывающего текстового окна, что не помешает java.awt.Robot?Какой еще вариант в MATLAB, не вдаваясь в сложный маршрут с подфигурами и текстовыми полями uicontrol?
Для записи вот эта функция (я поставил звездочки вокруг соответствующих частей кода, которые являются javaКоманда .awt.Robot и команда msgbox для акцента, они явно не являются частью реальной функции):
function START_Callback(a,b)
delete(gcf);
nRep = 1;
files = dir(fullfile(matlabroot,'toolbox','semjudge',bpic,'*.png'));
nFiles = numel(files);
combos = nchoosek(1:nFiles, 2);
index = combos(randperm(size(combos, 1)), :);
picture1 = files(index(nRep,1)).name;
picture2 = files(index(nRep,2)).name;
image1 = fullfile(matlabroot,'toolbox','semjudge',bpic,picture1);
image2 = fullfile(matlabroot,'toolbox','semjudge',bpic,picture2);
subplot(1,2,1); imshow(image1);
subplot(1,2,2); imshow(image2);
set(gcf,'Color',[1 1 1]);
uicontrol('Style', 'text',...
'Position', [200 375 200 20],...
'String','How related are these pictures?');
uicontrol('Style', 'text',...
'Position', [50 375 100 20],...
'String','Unrelated');
uicontrol('Style', 'text',...
'Position', [450 375 100 20],...
'String','Closely related');
nxt = uicontrol('Style','pushbutton','String','Next Trial',...
'Position', [250 45 100 20],...
'Callback',{@NextTrial});
set(nxt,'Enable','off');
**P = ones(16);
P(2:16,2:16) = NaN;
set(gcf, 'Pointer', 'custom','PointerShapeCData',P);
jRobot=java.awt.Robot;
x=928;
y=457;
jRobot.mouseMove(x,y);**
h = uicontrol(gcf,...
'Style','slider',...
'Min' ,0,'Max',100, ...
'Position',[100 350 400 20], ...
'Value', 50,...
'SliderStep',[0.02 0.1], ...
'BackgroundColor',[0.8,0.8,0.8],...
'Callback', @SliderCallBackFcn);
set(gcf, 'WindowButtonMotionFcn', @point);
set(gcf, 'WindowScrollWheelFcn', @cb);
**msgbox('INSTRUCTIONS GO HERE');**
lastVal = get(h, 'Value');
end