很简单,我正在尝试在 MATLAB GUI 中创建一个无边框按钮。原因主要是美学,所以没有必要争论为什么它应该是无边界的。
我已经知道这不能单独使用内置的 MATLAB uicontrol 来完成,因为按钮的边框在 MATLAB 中不是可访问的属性。因此,必须访问底层 JAVA 代码(在其上编写 MATLAB)才能操作边框。这就是我迷路的地方,因为我只在 MATLAB 中编程过。
我从这里遵循了一个例子:http: //undocumentedmatlab.com/blog/borderless-button-used-for-plot-properties
但我仍然没有得到无边框按钮。
这是一个简单的代码示例(注意使用 Yair Altman 的 findjobj,它可在 MATLAB 文件交换中找到):
f=figure('Menubar','none', 'Position',[200 200 300 200]);
p=uipanel(f, 'BackgroundColor', [0 0 1]);
h = uicontrol('parent', p, ...
'Style','pushbutton', ...
'String','click', ...
'TooltipString', 'you should click this' ...
'Units','normalized', ...
'Position',[0.3 0.3 0.5 0.5], ...
'BackgroundColor', [0 0 1]);
jh = findjobj(h);
jh.setBorder(javax.swing.BorderFactory.createEmptyBorder());
%attempt 1 does not remove border
jh.border=[];
%attempt 2 does not remove border
jh.setBorder([]);
%attempt 3 does not remove border
jh.border=javax.swing.BorderFactory.createEmptyBorder();
%attempt 4 does not remove border
关于我哪里出错了有什么想法吗?谢谢!