필터 지우기
필터 지우기

java.awt.Robot command and msgbox incompatability?

조회 수: 1 (최근 30일)
Ryan
Ryan 2012년 4월 2일
I had a function script that was working great. Part of it includes a little java.awt.Robot command that creates a custom mouse cursor. The script works exactly as I intended it to, without any bugs/errors so far as I can tell through repeated runnings.
However, I decided to add a msgbox command into the script, which gives the user running the program a couple instructions about what to do to run the program. Adding the msgbox command in seems to deactivate the java.awt.Robot command, even if I use various uiwait related workarounds.
Any idea what the problem is here? msgbox is overriding the Robot command I gave earlier in the function. Is the best option to:
-override msgbox? how do I do this? -use something besides msgbox for a pop-up text window, that won't interfere with java.awt.Robot? what's another option in MATLAB without going into a complicated route with subfigures and uicontrol text boxes?
For the record, here is the function in question (I put asterisks around the relevant parts of the code, that being the java.awt.Robot command and msgbox command for emphasis, they are obviously not part of the real function):
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
  댓글 수: 1
Jan
Jan 2012년 4월 2일
Please explain, what "seems to deactivate the java.awt.Robot command" exactly mean. I cannot guess this important detail.
It is recommended to post a small program only, which reproduces the problem. Posting unnecessary information discourage users from answering.

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Dialog Boxes에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by