2011-06-24 32 views
2

私は多くのボタンを持つスイングGUIに取り組んでいます。私は、ボタンを無効にしたり有効にしたりする多くのアクションを持っています。私は、有効になっているボタンだけのツールチップを設定したい。ボタンが無効になると、そのボタンのヒントは必要ありません。無効なボタンのツールチップを無効にする

答えて

5

私はButtonクラスを拡張し、getTooltip()をオーバーロードしようとします。次のようなものがあります:

public class MyButton extends JButton { 
    public String getTooltip() { 
    if (this.isEnabled()) { 
     return super.getTooltip(); 
    } 
    return null; 
    } 
} 

もちろん、これはgetTooltipを使ってボタンを描画するための情報を取得するSwingに依存します。とにかく私はそれを試してみるだろう。

+0

結果はどれですか?コンストラクタが定義されていないことを覚えておいて、必要なコンストラクタを定義する必要があります。 – SJuan76

2

は、拡張JButtonクラス追加:

import javax.swing.*; 

public class MyButton extends JButton 
{ 
    private String toolTip; 

    @Override 
    public void setToolTipText(String text) 
    { 
    super.setToolTipText(text); 
    if (null != text) toolTip = text; 
    } 

    @Override 
    public void setEnabled(boolean b) 
    { 
    super.setEnabled(b); 
    super.setToolTipText(b ? toolTip : null); 
    } 
} 

をし、代わりにそれを使用しています。

+0

私はボリスの答えが良いと思います。 https://docs / – AliCan

1

ツールチップのテキストを削除する必要があります。

有効/無効のオーバーライド方法を使用して独自のクラスを作成し、自動的に実行することもできます。

関連する問題