2012-02-11 4 views
2

JavaでMatlabプッシュボタンの外観を変更したいと思います。そのために、私はアプリケーションFindjobjを使用します。しかし、私はJavaを知らないため、Javaクラスを正しく使用することができず、ボタンを丸くする必要があります。カスタムMatlabプッシュボタンとJavaの表示

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

をしかし、これは動作しません。)hereを発見した情報に基づいて、私はクラスBorderFactoryにボタンを設定することを試みました。私は色とのLineBorderのためのJavaクラスを含めるのを忘れて実現:

??? Undefined function or variable 'red'. 

    Error in ==> de at 4 
    jButton.setBorder(BorderFactory.createLineBorder(red,1,true)); 

はEDIT:私は、次のエラーメッセージが表示されました。それを修正した後、コードは次のようになります。

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

+0

ご意見ありがとうございます。たぶん今、あなたはより完全な質問を見つけます。 – julian

答えて

2

を丸めたボタンを使用する場合は、Look & FeelボタンのUIデリゲートが丸いボタンを描画する必要があります。例は、com.apple.laf.AquaButtonUIhere、およびjavax.swing.plaf.synth.SynthLookAndFeelを示し、hereと示される。また、hereのように自分自身のButtonUIBorderを実装することもできますが、努力する価値があるかどうかは決めることになります。

補遺:この関連のMatlab questionと関連するスイングtutorialを見ると、「あなたはL & Fを設定しようとしている場合は、あなたがあなたのアプリケーションでは非常に最初ステップとしてそれを行う必要があります。」ということに注意してください

+0

お返事ありがとうございました。 – julian

2

おそらくColor.redまたはColor.REDであるはずです。


BorderFactory方法のみ(最近)は、Java 1.7で導入されたが、そこに使用したことに注意してください。バージョン1.3に互換性を持たせるには、直接LineBorder(Color,int,boolean)コンストラクタを使用してください。

+0

ありがとうございます。私は両方を試みましたが、どれもうまくいきません。 – julian

+0

ありがとうございました。私はちょうど私の質問を編集しましたが、結果はうまくありません。 – julian

関連する問題