2012-01-05 14 views
4

私はOSX上でJava Swingアプリケーションを開発しており、可能な限りMac風に見せたいと思っています。私は希望の外観のほとんどを達成しましたが、1つはまだ私を逃しています。Java Swing Mac OSXタイトルバー

タイトルバーです。多くのネイティブのOSXアプリケーションには、「ツールバーボタン」が付いた「ハイ」タイトルバーと、右上の「ツールバーボタン」の表示/非表示を切り替える小さなボタンがあります(JavaのFeedForAllアプリケーションのイメージを参照してください) 。

Top of FeedForAll application window showing Mac-Like title bar

これを実現する方法任意のアイデア?どのような助けや指針をいただければ幸いです。

+0

Mmmmmmmm、私はそれがJavaだと思った... – Lyndon

答えて

2

スイングでは、ネイティブOSコンポーネントは実際には使用されません。 Mac上のデフォルトの「Aqua」ルックアンドフィールでは、ネイティブの外観と可能な限り一致するようにしようとしていますが、実際にはJava2Dでペイントするだけです。たとえば、デフォルトボタンのパルスグローは実装されていません。

ありますが、その外観に影響を与えるために、ウィンドウ上で設定することができますいくつかのクライアントのプロパティがありますが、「タイトルのツールバーは、」オプションではないようです:

http://developer.apple.com/library/mac/#technotes/tn2007/tn2196.html#//apple_ref/doc/uid/DTS10004439

一つのオプション

に切り替えることであろうQuaquaのルックアンドフィールを使用しています。私はそれを自分で使ったことはありませんが、おそらくMacの方がAquaよりも忠実であると思われます。それはあなたがしたいツールバーの外観を取得するように設定することができますプロパティがあります。

http://www.randelshofer.ch/quaqua/guide/client_properties.html#JToolBar

+0

ありがとうございました。それは確かによく見え、実際に私が持っていた他のいくつかの問題に対処します。唯一の問題は、Eclipse IndigoのWidowBuilder Proで動作するかどうかです。私は調査します... – Lyndon

+0

素晴らしい!これはWindowBuilderで動作し、1つのjarと数行の追加コードしか必要としません。小さなトグルボタンはありませんが、タイトルバーとツールバーは融合します。今、私は非常にマックのようなJavaアプリケーションを持っています... – Lyndon

+0

@RussellZahniser _ "しかし、タイトルツールバーはオプションではないようです:" _ - 私はそれだけかもしれない::) - ( "apple.awt.brushMetalLook"、Boolean.TRUE); 'すべてのフレームで動作するように見えます。 'JFrame frame = new JFrame();' -'JRootPane root = frame.getRootPane(); ' -'root.putClientPropertyダイアログには適用されません。私は 'Quaqua'が_Mac_の古いバージョンのように見えると思います。 – Igor

1

申し訳ありませんが、私はあなたがスイングを使用して、ツールバーコントロールボタンを得ることができるとは思いません。あなたのためにそれを描くappl-esqeシステムプロパティはありません。 "apple.awt.brushMetalLook"プロパティを試してください。しかし、私が知っている限り、ツールバーとタイトルバーは統一されています。 SWTがあなたの唯一の選択肢のようです。

また、このUI要素について心配する必要はありません。 このボタンは削除されました。10.7(Lion)以降のすべてのOS Xユーザーインターフェイス要素から

ほとんどのアプリケーションでは、右上にフルスクリーンアイコンが表示されます。 OS XのプログラミングのためにSwingを使うときは、あなたの探求のどこかで線を描き、絶対にネイティブに見えるようにする必要があると思います。

これに加えて、私はMozillaクライアントがObjective C/C++で開発されていると考えています。

2

Mac Widgets for Javaで利用可能なユニファイドツールバーを調べることができます。

+2

ありがとうございますが、私は今かなりスイングに専念しています... – Lyndon

関連する問題