2011-11-22 6 views
3

私の割り当てでは、JFrameのグリッドJPanelに2次元のJButtonが必要です。クリックすると、JButtonの色が変わる必要があります。私はそれらの色を保持することはできません。MacでのJButtonのルックアンドフィールのコントロール

Iはprevious threadに提案された解決策を実装のみ生成ボーダーカラーの周りに動作することが見出さ:

JButton button = new JButton("test"); 
button.setBackground(Color.RED); 
button.setOpaque(true); 

が境界をunpainting:

button.setBorderPainted(false); 

は単に全体のJFrameは、赤させます。

この問題は、MACコンピュータでのみ発生するものであり、割り当てに問題はありません。

どのような考えですか?

答えて

5

覚えていること:スイングツールキットは、システムの外観と感触を "ほぼ正しい"ものにするのにかなり良いです。しかし、実際にシステムの感じが必要な場合は、SWTのような他のオプションが適しています。

一貫性が必要な場合は、少し退屈ですがかなり信頼できる古い学校のアプレットの外観にスウィングすることができます。これは、この単純化されたguiツールキットにロールバックすると、プラットフォーム固有の癖が魔法のように消えるように見えるということです。

標準的なスイングスタイルのルックアンドフィールにルックアンドフィールを設定するだけで、あなたの問題は非常に簡単に解消されます。

ソリューション

私はあなたのアプリケーションを初期化する静的コードブロックで

UIManager.setLookAndFeel(
     UIManager.getCrossPlatformLookAndFeelClassName()); 

への呼び出しをお勧めします。

+2

これにはいくつかの問題がありましたが、もともと私のメインメソッドの最後に配置しました。それは最初に行く必要があった。助けてくれてありがとう! –