java - 使用 Java 自定义 Matlab 按钮外观

标签 java swing user-interface matlab look-and-feel

我想用 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 。您还可以实现自己的ButtonUIBorder ,如图here ,但您将决定是否值得付出努力。

附录:看看这个相关的Matlab question和相关的 Swing tutorial ,请注意“如果您要设置 L&F,您应该将其作为应用程序中的第一步。”

关于java - 使用 Java 自定义 Matlab 按钮外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9242460/

相关文章:

java - 为什么代码使用较小的列表实例化哈希集?

java - URLClassLoader 无法在 Linux 上加载依赖项

java - java中如何将多个对象合二为一?

Java Swing - 禁用 JCheckbox 时出现问题

c# - FolderBrowserDialog 是否有更新版本?

java - 为什么 onClick 不触发拖动监听器,但长按可以正常工作?[android]

java - 我可以创建没有 svg 文件的 JSVGCanvas 吗?

java - 如何获取从 JComboBox 中选择的项目的索引?

java - 更改 GUI 上的颜色

c++ - 设置背景颜色 CMDIFrameWnd