【问题标题】:Custom Matlab pushbutton appearance with Java使用 Java 自定义 Matlab 按钮外观
【发布时间】:2012-02-11 17:45:13
【问题描述】:

我想用 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 是最后的出场。我可以把角弄圆。

【问题讨论】:

  • 请编辑您的问题以包含一个完整 sscce,以展示您所描述的问题。
  • 感谢您的评论。也许现在您发现问题更完整了。

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


【解决方案1】:

如果您想要 圆形 按钮,则必须使用 Look & Feel 其按钮 UI 代表绘制圆形按钮。示例包括com.apple.laf.AquaButtonUI,图示为here,和javax.swing.plaf.synth.SynthLookAndFeel,图示为here。您也可以实现自己的ButtonUIBorder,如here 所示,但您将决定是否值得付出努力。

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

【讨论】:

  • 非常感谢您的回答和补充。
【解决方案2】:

应该是Color.redColor.RED


请注意,此处使用的BorderFactory 方法仅在Java 1.7(最近)中引入。要使其与回溯到 1.3 的版本兼容,请使用直接的 LineBorder(Color,int,boolean) 构造函数。

【讨论】:

  • 感谢您的回答。我都试过了,但都没有。
  • 感谢您的回答。我刚刚编辑了我的问题,但结果并不好。
猜你喜欢
  • 2021-11-15
  • 2016-09-25
  • 2017-05-02
  • 2014-02-15
  • 2013-08-22
  • 2020-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多