Java 在组内布置SWT文本控件的难度
我在让SWT文本控件按照我希望它们在组中的方式进行布局时遇到问题。具体来说,我很难将Java 在组内布置SWT文本控件的难度,java,swt,Java,Swt,我在让SWT文本控件按照我希望它们在组中的方式进行布局时遇到问题。具体来说,我很难将verticalSpan传递到GridData以反映在GUI资产中。在下面的示例中,我无法正确显示的3个控件是descriptionText、defaultActionText和defaultReportActionText,但translationText显示正确。我不确定我在这里做错了什么,所以我感谢您的反馈 组: paramsFieldComposite = new Group( upperRigh
verticalSpan
传递到GridData
以反映在GUI资产中。在下面的示例中,我无法正确显示的3个控件是descriptionText
、defaultActionText
和defaultReportActionText
,但translationText
显示正确。我不确定我在这里做错了什么,所以我感谢您的反馈
组:
paramsFieldComposite = new Group( upperRightComposite, SWT.BORDER );
// TODO: Change group to composite and remove .setText()
paramsFieldComposite.setText( "paramsFieldComposite" );
paramsFieldComposite.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true, 1, 1 ) );
paramsFieldComposite.setLayout( new GridLayout( 2, true ) );
翻译控件(宽度为1,高度为3,与我预期的一样工作):
描述/操作控件(未按预期工作,我希望它们的高度均为3,而不是1):
以下是GUI的外观
很容易解释
translationText
和defaultActionText
的行为之间的区别
你让他们两个都跨3排。然而,尽管这三行translationText
的高度是由其他小部件定义的(hostnameText
,instanceLabel
,instanceText
),但defaultActionText
的情况并非如此。这三行中没有其他小部件(除了defaultReportActionText
)。因此,高度将设置为必要的高度
您可以通过设置GridData
的heightHint
手动增加此高度:
GridData data = new GridData( SWT.FILL, SWT.FILL, true, false, 1, 3 );
data.heightHint = 80;
defaultActionText.setLayoutData(data);
defaultReportActionText.setLayoutData(data);
结果如下所示:
要获得更精确的高度结果,可以使用:
data.heightHint = hostnameText.computeSize(SWT.DEFAULT, SWT.DEFAULT).y
+ instanceLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT).y
+ instanceText.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
GridData data = new GridData( SWT.FILL, SWT.FILL, true, false, 1, 3 );
data.heightHint = 80;
defaultActionText.setLayoutData(data);
defaultReportActionText.setLayoutData(data);
data.heightHint = hostnameText.computeSize(SWT.DEFAULT, SWT.DEFAULT).y
+ instanceLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT).y
+ instanceText.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;