2016-08-23 16 views
3

私のJAVAアプリケーションのGUIにJAVA SWTを使用しています。JAVA SWTの無効なコントロールのツールチップが表示されない

今、私は無効にするチェックボックスを設定しましたが、同じもののツールチップを表示したいと思います。

これは可能ですか?

私のコードは次のとおりです。

myCheckbox.setSelection(false); 
myCheckbox.setEnabled(false); 
myCheckbox.setToolTipText("Tooltip message"); 

答えて

3

彼のanswerでgreg-449によって指摘されているように、それはできません。

本当にしたいのであれば、同じツールチップのテキストを使ってチェックボックスをCompositeにカプセル化することで、この制限を回避することができます。

この方法はAndrzej Witeckiによってthis Eclipse forum topicに提案されました。

例:あなたが使用不可になったコンポーネント(ボタン、チェックボックスなど)のために、特定の複合体を作成し、複合にツールチップを追加した場合のコンポーネントが無効になっているとき

public static void main(String[] args) { 

    Display display = new Display(); 
    Shell shell = new Shell(display); 
    shell.setLayout(new GridLayout()); 

    Composite c = new Composite(shell, SWT.NONE); 
    c.setLayoutData(new GridData()); // default values so it doesn't grab excess space 
    c.setLayout(new FillLayout()); 

    Button myCheckbox = new Button(c, SWT.CHECK); 
    myCheckbox.setText("Checkbox text"); 
    myCheckbox.setToolTipText("Tooltip message"); 
    myCheckbox.setEnabled(false); 

    // assign the same tooltip to the encapsulating composite 
    myCheckbox.getParent().setToolTipText(myCheckbox.getToolTipText()); 

    shell.setSize(200, 200); 
    shell.open(); 

    while (!shell.isDisposed()) { 
     if (!display.readAndDispatch()) { 
      display.sleep(); 
     } 
    } 
    display.dispose(); 
} 
+0

こんにちはLoris、私はこのソリューションを他の場所に見つけ、それが有用であることがわかりました。完璧な解決策ではありませんが、効果的な回避策のようです –

1

いいえ、これは不可能です。

無効になっているコントロールは、ツールチップを表示するのに必要なイベントを生成しません。

+0

こんにちはグレッグ、応答のために感謝します。 あなたのご意見をお聞かせください。 私はそれがSWTの制限であるかどうかを知る必要があります –

+0

私は参考にならないと分かりませんが、SWTが無効なコントロールでイベントを生成しないことは間違いありません。 –

-1

、それが表示されます。 。

有効になっているときに表示する場合は、コンポーネントのツールチップを追加することを忘れないでください。

関連する問題