2

簡単に言えば、MATLAB GUI でボーダレス ボタンを作成しようとしています。その理由は主に美学にあるので、なぜボーダレスであるべきかについて議論する必要はありません。

ボタンの境界線は MATLAB でアクセス可能なプロパティではないため、組み込みの MATLAB uicontrol だけを使用してこれを実行できないことは既にわかっています。したがって、境界を操作するには、(MATLAB が記述されている) 下層の Java コードにアクセスする必要があります。私は MATLAB でしかプログラミングしたことがないので、ここで迷ってしまいます。

私はここから例に従いました: http://undocumentedmatlab.com/blog/borderless-button-used-for-plot-properties

しかし、私はまだボーダレスボタンを取得していません.

簡単なコード例を次に示します (MATLAB ファイル交換で利用できる Yair Altman の findjobj の使用に注意してください)。

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

私が間違っていた場所について何か考えはありますか?ありがとう!

4

3 に答える 3