我想用 Java 更改 Matlab 按钮的外观。为此,我使用应用程序 Findjobj 。然而,由于我不懂Java,我很难正确使用Java类,我需要让我的按钮有圆角。根据查到的信息here ),我尝试使用 BorderFactory 类设置按钮:
hButton = uicontrol('string','click me!');
jButton = findjobj(hButton);
jButton.setCursor(java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jButton.setBorder(BorderFactory.createLineBorder(red,1,true));
但这不起作用。我收到以下错误消息:
??? Undefined function or variable 'red'.
Error in ==> de at 4
jButton.setBorder(BorderFactory.createLineBorder(red,1,true));
编辑:我意识到我忘记包含颜色和 LineBorder 的 Java 类。修复后,代码如下所示:
import java.awt.Color;
import javax.swing.border.LineBorder;
hButton = uicontrol('Style','pushbutton','String','click me!',...
'Units','normalized','Position',[0.156 0.64 0.688 0.1],'FontSize',9,...
'ForegroundColor','w','BackgroundColor','k');
jButton = findjobj(hButton);
jButton.setCursor(java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jButton.setBorder(LineBorder(Color.white,5,true));
但是,结果还是令我不满意。 Here是最后的样子。我可以把角弄圆。
最佳答案
如果您想要圆形按钮,则必须使用 Look & Feel其按钮 UI 委托(delegate)绘制圆形按钮。示例包括com.apple.laf.AquaButtonUI
,如图here ,和javax.swing.plaf.synth.SynthLookAndFeel
,如图 here 。您还可以实现自己的ButtonUI
和Border
,如图here ,但您将决定是否值得付出努力。
附录:看看这个相关的Matlab question和相关的 Swing tutorial ,请注意“如果您要设置 L&F,您应该将其作为应用程序中的第一步。”
关于java - 使用 Java 自定义 Matlab 按钮外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9242460/