向 SWT GUI 添加帮助按钮
Adding help button to SWT GUI
我的 Eclipse 应用程序中有一个简单的 swt GUI,如下所示:
实现起来很简单:
// creating the label
Label label = new Label(composite, SWT.NONE);
label.setText("Label");
// creating the input field
Text text = new Text(composite, SWT.BORDER);
gridData.horizontalAlignment = SWT.FILL;
gridData.grabExcessHorizontalSpace = true;
text.setLayoutData(gridData);
我想在标签和输入元素之间添加一个按钮,以便用户可以获得关于在字段中添加什么的额外帮助。
它可以是一个帮助按钮,也可以只是一个在鼠标悬停时显示信息的图标。
我该如何实施?如果有任何帮助,我将不胜感激!
执行此操作的众多方法之一是使用信息字段装饰。
类似于:
Text text = new Text(composite, SWT.BORDER);
FieldDecorationRegistry decRegistry = FieldDecorationRegistry.getDefault();
FieldDecoration infoField = decRegistry.getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION);
ControlDecoration decoration = new ControlDecoration(text, SWT.TOP | SWT.LEFT);
decoration.setImage(infoField.getImage());
decoration.setDescriptionText("Info decoration text");
GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
// Space for decoration image
gridData.horizontalIndent = decRegistry.getMaximumDecorationWidth();
text.setLayoutData(gridData);
我的 Eclipse 应用程序中有一个简单的 swt GUI,如下所示:
实现起来很简单:
// creating the label
Label label = new Label(composite, SWT.NONE);
label.setText("Label");
// creating the input field
Text text = new Text(composite, SWT.BORDER);
gridData.horizontalAlignment = SWT.FILL;
gridData.grabExcessHorizontalSpace = true;
text.setLayoutData(gridData);
我想在标签和输入元素之间添加一个按钮,以便用户可以获得关于在字段中添加什么的额外帮助。
它可以是一个帮助按钮,也可以只是一个在鼠标悬停时显示信息的图标。
我该如何实施?如果有任何帮助,我将不胜感激!
执行此操作的众多方法之一是使用信息字段装饰。
类似于:
Text text = new Text(composite, SWT.BORDER);
FieldDecorationRegistry decRegistry = FieldDecorationRegistry.getDefault();
FieldDecoration infoField = decRegistry.getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION);
ControlDecoration decoration = new ControlDecoration(text, SWT.TOP | SWT.LEFT);
decoration.setImage(infoField.getImage());
decoration.setDescriptionText("Info decoration text");
GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
// Space for decoration image
gridData.horizontalIndent = decRegistry.getMaximumDecorationWidth();
text.setLayoutData(gridData);