簡體   English   中英

無法使鼠標回調與Java swing一起使用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM