两个旋钮滑块for gui或app

77意见(过去30天)
饶恕
饶恕 2018年1月26日
回答: Marek Svoboda2020年2月10日
你好,
为了排序时序事件,我需要一个带有两个旋钮的滑块,请参阅从互联网拍摄的图片。任何建议或技巧如何在Matlab UI或App中实现这一(UISPACE)。现在它用两个滑块实现:一个用于最小值的滑块,一个用于最大值的滑块。当您需要10个滑块对时,这不是那么空间。
谢谢,
帕特里克
1条评论
亚当
亚当 2018年1月26日
如果你想稍微“偏离赛道”,你可以使用Java范围滑块,正如Yair Altman的博客文章中所详述的那样:
我已经使用了这几次。我创建了一个课程来处理它,但您可以轻松地将原始代码放入单一的用途。

登录评论。

接受答案

饶恕
饶恕 2018年1月28日
谢谢亚当和彼得的建议。我构建了以下代码,有一些麻烦找到位置属性的RangeSlider。所以这就是我需要的…
帕特里克
函数tryoutrangeslider2.
标签= {“1月”“2”“3”'四月''可能'};
mins = [1 1 1 1 1];
Maxs = [31 28 31 30 31];
hf =数字;
为了i = 1:长度(标签)
%直接实例化
% jRS = com.jidesoft. swingrangeslider (0,100,20,70);%最小,最大,低,高
%[jrangeslider {i},hrangeslider {i}] = javacomponent(JRS,[0,0,200,80],HF);%posx,posy,宽度,高度
JRS = com.jideoft.swing.rangeslider;
[jRS,[], hRangeSlider{i}] = javaccomponent (jRS,[],hF);
%修改范围位置
集(hRangeSlider {},“位置”(100年11 +(张)* 80200,80])
%修改范围滑块属性
set(jrangeslider {i},'最大值',maxs(i),......
'最低限度'分钟(我),......
“LowValue”10,......
'高价值'20,......
'姓名',标签{i},......
'MajortickSpacing'5,......
'minortickspacing',1,......
'painticks',真的,......
'paintlabels',真的,......
'statechangedcallback', {@jRangeSlider_Callback,我});
%添加文本标签
UICONTROL(HF,'风格'“文本”“位置”,[5,53+(I-1)* 80,100,15],'细绳',标签{i})
结尾
结尾
函数jRangeSlider_Callback (jRangeSlider事件,我)
disp ([jRangeSlider。的名字',额外的参数='num2str(i)])
结尾
1条评论
罗伊航空
罗伊航空 2018年7月27日
有没有办法创建像那样的3个旋钮滑块?

登录评论。

更多答案(2)

彼得烹饪
彼得烹饪 2018年1月26日
编辑:彼得烹饪 2018年1月26日
我自己也尝试过几次。正如Adam提到的,你可以使用范围滑块,但如果你想要多个拇指呢?你有选择。
1.使用多个拇指。这里有一个我之前沙盒的例子:
hFig1 =图('pos',[64,64,768,128]);
hfig1.toolbar =.'没有任何';
hfig1.menubar ='没有任何';
hfig1.name =.“以Hz选择频率范围”;
hfig1.numbertitle =“关闭”;
sliderwidth = 32;
为了k = 1:20
jSlider {k} = javax.swing.JSlider;
jslider {k} .setopaque(false);
JavaComponent(JSLIDER {K},[SliderWidth *(K-1),32,1.5 * SliderWidth,45]);
Slidermin = 2 *(K-1);
Slidervalue = 2 * K-1;
slidermax = 2 * k;
集(jSlider {k},'价值',溜友,......
'MajortickSpacing',1,......
'paintlabels',真的,......
'painticks',真的,......
'最低限度',slidermin,......
'最大值', sliderMax);
hjSlider {k} =处理(jSlider {k},'CallbackProperties');
hjslider {k} .statechangedcallback = @(hjslider,eventdata)disp(get(hjslider,'价值'));
labeltable = java.util.hashtable();
Slidervaluelabel = Sprintf(' 10 %0.1f ', sliderValue / 10);
jlabel = javax.swing.jlabel(slidervaluelabel);
jlabel.setfont(java.awt.font(“Tahona”,0,8));
labelTable.put (int32 (sliderValue) jLabel);
jslider {k} .setlabeltable(kabeltable);
结尾
2.如果你精通编程和诸如此类的东西,你可以扩展这个对象(colormapeditor)来满足你的需要:
com.mathworks.page.cmapeditor.CMEditView
3.为预先构建的类进行GitHub搜索MultiSlider.java。
1条评论
罗伊航空
罗伊航空 2018年7月27日
您的代码创建多个滑块,而不是具有多个旋钮的滑块。

登录评论。


Marek Svoboda
Marek Svoboda 2020年2月10日
如果您试图实现这一目标 程序设计师 (不支持Java),参见万博1manbetx 我对类似的问题的回答

标签

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!