Java slider not Responding
2 ビュー (過去 30 日間)
古いコメントを表示
The slider is saved as S.sl1 and I convert it to sl1 and output it. I then convert it to a java slider in another function with :
jScrollBar = findjobj(sl1);
jScrollBar.AdjustmentValueChangedCallback = @updateplot;
Then the call back function is:
function updateplot(sl1,ht,funcNum)
x = get(sl1,'Value');
Beam.Location = x;
switch funcNum
case funcNum == 1
y = Cantilieverd_Point(Beam);
set(ht,'ydata',y);
drawnow;
case funcNum == 2
y = Simple_Point(Beam);
set(ht,'ydata',y);
drawnow;
end
end
Where ht is the plot that is being updated and the ' y = ' is another function which creates the y value. When I run this it does not return an error, but it also does absolutely nothing to the graph. I want it to continuously update the graph based off of the slider value.
5 件のコメント
Malcolm Lidierth
2012 年 12 月 12 日
編集済み: Malcolm Lidierth
2012 年 12 月 12 日
@Lawson That is a vital bit of info. The callback is evaluated once, throws an exception and gets removed by MATLAB. You need something like:
jScrollBar.AdjustmentValueChangedCallback = {@updateplot, ht, funcNum};
The callback should then be declared as:
function updateplot(sl1,EvenData, ht, funcNum)
sl1 and EventData are added automatically to the inputs by MATLAB>
回答 (1 件)
Jan
2012 年 12 月 12 日
There are several problems in your code:
1. Here the callback is defined with no inputs:
jScrollBar.AdjustmentValueChangedCallback = @updateplot;
But in the definition of the callback function, 3 inputs are required.
2. Look at the documentation of switch/case again. The term "funcNum==1" is evaluated to either true or false, but you want to switch for the value 1 or 2. Therefore you need:
switch funcNum
case 1 % Not "funcNum == 1"
...
I suggest not to use a Java slider, but the standard Matlab sliders. You cann attach a listener to them also: http://www.mathworks.com/support/solutions/en/data/1-3SR0YI/index.html?product=ML&solution=1-3SR0YI
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Java Package Integration についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!