[英]Can't get mouse callback to work with java swing
當鼠標單擊或沿滑塊拖動時,我想獲取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)
我將不勝感激任何建議。
感謝我的同事分享了一種從滑塊獲取最終價值的簡單方法。 這是代碼:
function jSlider = testMouse2
hFig = figure('Position',[450 100 700 850]);
jSlider = javax.swing.JSlider;
jSlider.setMinimum(0);
jSlider.setMaximum(20);
jSlider.setMajorTickSpacing(5);
jSlider.setMinorTickSpacing(1);
jSlider.setPaintTicks(true);
jSlider.setPaintLabels(true);
jSlider.setSnapToTicks(true);
javacomponent(jSlider,[10,70,600,45]);
end
您可以調用該函數,然后簡單地使用java調用以這種方式獲取滑塊的最終值:
slider = testMouse2;
slider.getValue
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.