我正在使用JAVA SWT爲我的JAVA應用程序的GUI。工具提示對於禁用不可見控件在JAVA SWT
現在我已設置複選框被禁用,但我想顯示相同的工具提示。
這可能嗎?
我的代碼是:
myCheckbox.setSelection(false);
myCheckbox.setEnabled(false);
myCheckbox.setToolTipText("Tooltip message");
我正在使用JAVA SWT爲我的JAVA應用程序的GUI。工具提示對於禁用不可見控件在JAVA SWT
現在我已設置複選框被禁用,但我想顯示相同的工具提示。
這可能嗎?
我的代碼是:
myCheckbox.setSelection(false);
myCheckbox.setEnabled(false);
myCheckbox.setToolTipText("Tooltip message");
正如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();
}
不,這是不可能的。
禁用的控件不會生成顯示工具提示所必需的事件。
嗨格雷格,謝謝你的迴應。 你能提一下你的參考嗎? 我們需要知道,如果它是在SWT –
的限制,我不知道副手的參考,但它無疑是一個SWT不產生對禁用的控件事件的情況。 –
如果您禁用的組件(按鈕,複選框,等...)創建一個特定的複合材料和複合添加工具提示,將當組件禁用顯示。
如果您還希望在啓用時顯示它,請不要忘記爲組件添加工具提示。
嗨Loris,我在別處遇到了這個解決方案,發現它很有用。雖然不是一個完美的解決方案,但它似乎是一種有效的解決方法 –