2016-08-23 92 views
3

我正在使用JAVA SWT爲我的JAVA應用程序的GUI。工具提示對於禁用不可見控件在JAVA SWT

現在我已設置複選框被禁用,但我想顯示相同的工具提示。

這可能嗎?

我的代碼是:

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

回答

3

正如greg-449在他的answer中指出的那樣,這是不可能的。

但是,如果你真的想要,你可以用相同的工具提示文本封裝你的複選框在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

如果您禁用的組件(按鈕,複選框,等...)創建一個特定的複合材料和複合添加工具提示,將當組件禁用顯示。

如果您還希望在啓用時顯示它,請不要忘記爲組件添加工具提示。