【发布时间】:2015-06-26 17:27:58
【问题描述】:
我想在鼠标单击或沿滑块拖动时获取 eventData。我已经尝试过博客文章 (http://undocumentedmatlab.com/blog/uicontrol-callbacks) 和相应书籍的建议。在我看来,我错过了一些东西。代码如下:
function testMouse
hFig = figure('Position',[450 100 700 850]);
jSlider = javax.swing.JSlider;
[jSlider,~] = javacomponent(jSlider,[100,20,500,50]);
jbh = handle(jSlider,'CallbackProperties');
set (jbh, 'MouseDraggedCallbackData', @myCallbackFcn)
guidata(hFig, handles);
function myCallbackFcn
get (jbh, 'MouseDraggedCallbackData')
guidata(hFig, handles);
这是我在 MATLAB 中运行代码时遇到的错误:
使用 javahandle_withcallbacks.javax.swing.JSlider/set 时出错 不允许更改 javahandle_withcallbacks.javax.swing.JSlider 的“MouseDraggedCallbackData”属性。
testMouse 中的错误(第 8 行) 设置(jbh,'MouseDraggedCallbackData',@myCallbackFcn)
如果有任何建议,我将不胜感激。
【问题讨论】:
-
不确定如何从 Matlab 处理摇摆,但我很惊讶地看到您收听的事件是
MouseDragged。通常这个事件属于MouseListener。也许尝试将事件更改为StateChanged,因为它是监视JSlider更改的标准事件,如here 所示。 -
感谢@EricLeibenguth。我看了一下页面,但我不确定如何在 Matlab 中实现该代码。
-
也许看看你用
StateChangedCallbackData替换MouseDraggedCallbackData会发生什么 -
看起来不止这些。类似的错误。