2015-09-07 78 views
0

我在Eclipse应用程序有一个简单的SWT GUI,它看起来像以下:添加帮助按钮SWT GUI

Ecllipse appication window

它的实现非常简单:

// 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); 

我会喜欢在标签和输入元素之间添加一个按钮,以便用户可以获得有关添加该字段内容的额外帮助。

它既可以是帮助按钮,也可以是一个显示鼠标悬停信息的图标。

我该如何实施?我将不胜感激任何帮助!

+1

注:它看起来像你想在这里重新使用的GridData对象 - 从来没有做到这一点,总是创建一个新的GridData为每个控件。 –

回答

5

这样做的很多方法之一是使用信息字段装饰。

喜欢的东西:

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); 
+0

这正是我期待的!非常感谢你! – John