2016-04-15 6 views
1

私の現在のJavaのバージョンは次のとおりです。ボタンを無効にすると文字がグレーになるのを防ぐ方法はありますか?

$java -version 
java version 1.8.0_40 

私はスイングと私の最初の掃海艇のアプリを作成しようとするのは非常に新しいです。さて、ボタンをクリックすると、ボタンを無効にして隣接する複数の鉱山を印刷する必要があります(数字に応じて適切な文字色を使用します:1 - 青、2 - 緑、3 - 赤など)。

JFrame frame = new JFrame("Hello swing"); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
JPanel panel = new JPanel(); 
JButton button = new JButton(); 
button.addActionListener((ActionEvent ev) -> { 
         button.setSelected(true); 
         button.setText("<html><font color = red>3</font></html>"); 
         button.setEnabled(false); }); 

しかし、無効にする場合、それはまだ灰色を行く:

enter image description here

enter image description here

しかし、有効なボタンは、私はそれをしたいだけのように見えるthis answerで提案されているように、私は次のように書いています

この問題はどうすればよいですか?ボタンを無効にしてこの問題を解決するには?

+0

は、あなたはそれを無効にした後、テキストを設定しようとしたことがありますか?ボタンを無効にすると、書式が無効になることがあります。 – CubeJockey

+0

@CubeJockeyちょうど試しましたが、結果は同じです... –

+0

[JButtonが無効のときに[テキストがグレー表示されています]](http://stackoverflow.com/questions/9008814/text-is-greyed-out-when -jbutton-is-disabled)皆さんが同じ教科書を使っているようです。 –

答えて

2

はたぶんあなたの代わりに、テキストの一部の回避策

使用のアイコンを知っています。

次に、あなたが使用することができます。

JButton button = new JButton(icon3); 
button.setDisabledIcon(icon3); 
+0

完璧に動作しますが、アイコンが正しく動作するためには 'setIcon(icon3)'も呼び出す必要があります。 –

+0

奇跡としてちょっと見えますが、なぜ 'setIcon(icon3)'がなければ動かないのですか? –

+0

@DmitriiBundin無効アイコンは、テキストではなく元のアイコンを置き換えるためのアイコンです。テキストとアイコンの両方を持っているのは理にかなっていません。なぜなら、それらは並んで描かれるからです。 – camickr

関連する問題