代码之家  ›  专栏  ›  技术社区  ›  Sandeep T D S

对于JAVA SWT中禁用的控件,工具提示不可见

  •  4
  • Sandeep T D S  · 技术社区  · 8 年前

    我正在使用JAVA SWT作为我的JAVA应用程序的GUI。

    现在我已经将复选框设置为禁用,但我想显示相同的工具提示。

    这可能吗?

    myCheckbox.setSelection(false);
    myCheckbox.setEnabled(false);
    myCheckbox.setToolTipText("Tooltip message");
    
    3 回复  |  直到 8 年前
        1
  •  7
  •   Community CDub    7 年前

    正如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();
    }
    
        2
  •  1
  •   greg-449    8 年前

    不,这是不可能的。

    禁用的控件不会生成显示工具提示所需的事件。

        3
  •  -1
  •   anup r    8 年前

    如果为禁用的组件(按钮、复选框等…)创建特定的组合,并在组合上添加工具提示,则在禁用组件时将显示该组合。

    如果您还希望在启用该组件时显示它,请不要忘记为其添加工具提示。