2012-02-11 63 views
2

我想用Java改變Matlab按鈕的外觀。對此,我使用應用程序Findjobj。但是,由於我不瞭解Java,因此我需要正確使用Java類,以便讓我的按鈕具有圓角。根據這些信息找到here),我試圖設置按鈕與類BorderFactory:用Java定製Matlab按鈕外觀

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)); 

編輯:我意識到我忘了,包括Java類的顏色和LineBorder。修復後,代碼如下所示:

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是最終的外觀。我可以讓角落四捨五入。

+1

請修改您的問題,以包含展示您描述的問題的_complete_ [sscce](http://sscce.org/)。 – trashgod 2012-02-11 19:19:01

+0

感謝您的評論。也許現在你會發現問題更加完整。 – julian 2012-02-11 20:34:54

回答

2

如果你想四捨五入按鈕,你將不得不使用Look & Feel其按鈕UI委託畫圓形按鈕。示例包括com.apple.laf.AquaButtonUI,圖示爲herejavax.swing.plaf.synth.SynthLookAndFeel,示出爲here。您也可以實施您自己的ButtonUIBorder,如here所示,但是您將決定是否值得付出努力。

附錄:縱觀本次關聯Matlab的question和相關搖擺tutorial,指出,「如果你要設定爲L &男,你應該這樣做是非常第一一步在您的應用程序。」

+0

非常感謝您的回答和附錄。 – julian 2012-02-12 18:10:52

2

這應該可能是Color.redColor.RED


注意,BorderFactory方法有使用Java中1.7(最近)才被引入。要使其與1.3版本兼容,請使用直接LineBorder(Color,int,boolean)構造函數。

+0

謝謝你的回答。我已經嘗試過,但都沒有工作。 – julian 2012-02-11 18:01:12

+0

謝謝你的回答。我剛剛編輯了我的問題,但結果不好。 – julian 2012-02-11 20:36:10