2011-06-24 58 views
2

我正在使用許多按鈕的鞦韆上。我有許多操作,其中按鈕有時會禁用和啓用。我想爲僅啓用的按鈕設置工具提示。當按鈕禁用時,我不需要該按鈕的任何工具提示。禁用停用按鈕的工具提示

回答

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.oracle.com/javase/8/docs/api/javax/swing/JComponent.html#setToolTipText-java.lang.String- – AliCan

1

你必須刪除工具提示文字。

您也可以使用overriden方法創建自己的類,以啓用/禁用並自動執行。