2017-01-29 10 views
0
button[currRow][currCol].setBackground(Color.RED); 
button[currRow][currCol].setContentAreaFilled(true); 
button[currRow][currCol].setOpaque(true); 

これは、私が接続している4つのゲームが赤いプレーヤーの動きを示すために今持っているものです。現時点で Javaの実際のJButtonの色を変更するにはどうすればよいですか?背景ではなく、テキストである

https://i.stack.imgur.com/E12ZI.png

、それだけで色の背景と私はボタン[currRow] [currCol] .setForeground(Color.RED)に自分のコードを変更した場合、その後全体のことだけで変更しないように見えます。どうすればこの問題を解決できますか?

+1

'setContentAreaFilled(false) 'を使ってみてください。 [もう少し高度な例として](http://stackoverflow.com/questions/14635952/java-layout-proportions-creating-a-scalable-square-panel/14636828#14636828) – MadProgrammer

答えて

1

これは簡単には達成できません。問題は、プラグイン可能なルックアンドフィールがボタンの内容をペイントすることであり、それがどのような方法であってもフィットすることです。たとえば、いくつかのL & Fは、背景色を使用しないグラデーションを塗りつぶすことがあります。

カスタム画像(JButton.setIcon())を使用し、コンテンツエリア(JButton.setContentAreaFilled(false))を使用しない場合があります。

また、JComponent.paintComponent()を上書きして、要素自体を描画するカスタムコンポーネントを作成することもできます。

関連する問題