TableWrapData:小部件不会正确左对齐
TableWrapData: widgets won't left align properly
我的程序使用 TableWrapLayout 并将 numColumns 设置为 2。然后我有以下代码:(背景颜色设置为向您显示小部件未使用空白 space)。
Label label = toolkit.createLabel(container, "Resource Type":);
label.setLayoutData(new TableWrapData(TableWrapData.LEFT,TableWrapData.MIDDLE));
label.setBackground(DiagramSettings.NODE_BACKGROUND_COLOR);
resourceComboMenu = new Combo(container, SWT.READ_ONLY);
resourceComboMenu.setBackground(DiagramSettings.NODE_BACKGROUND_COLOR);
resourceComboMenu.setLayoutData(new TableWrapData(TableWrapData.LEFT,TableWrapData.MIDDLE));
但是,正如您在图片中看到的那样,组合框无法正确左对齐。但我的意思是我希望它在标签之后立即开始,而不是一堆空白 space。
一种解决方法是将行放在它自己的组合中,就像我做资源图标和地理定位一样。但我觉得我不需要这样做,因为这一行的小部件等于布局设置的列数。我现在已经创建了这个解决方法,但我想在未来了解这个 TableWrapData 行为。
任何见解都会有所帮助,谢谢。
我在问题中差不多回答了我的问题。包含图片中所有内容的组合具有列设置为 2 的 TableWrapData。TableWrapData 实质上在每列之间绘制一条垂直直线,然后确保来自一列的小部件不会穿过它。
因此,要解决此问题(就像我在问题中提到的那样),您只需制作另一个带有嵌套小部件的组合(在本例中为资源类型标签和 resourceComboMenu)。我只是没有意识到这是你应该做的。
我的程序使用 TableWrapLayout 并将 numColumns 设置为 2。然后我有以下代码:(背景颜色设置为向您显示小部件未使用空白 space)。
Label label = toolkit.createLabel(container, "Resource Type":);
label.setLayoutData(new TableWrapData(TableWrapData.LEFT,TableWrapData.MIDDLE));
label.setBackground(DiagramSettings.NODE_BACKGROUND_COLOR);
resourceComboMenu = new Combo(container, SWT.READ_ONLY);
resourceComboMenu.setBackground(DiagramSettings.NODE_BACKGROUND_COLOR);
resourceComboMenu.setLayoutData(new TableWrapData(TableWrapData.LEFT,TableWrapData.MIDDLE));
但是,正如您在图片中看到的那样,组合框无法正确左对齐。但我的意思是我希望它在标签之后立即开始,而不是一堆空白 space。
一种解决方法是将行放在它自己的组合中,就像我做资源图标和地理定位一样。但我觉得我不需要这样做,因为这一行的小部件等于布局设置的列数。我现在已经创建了这个解决方法,但我想在未来了解这个 TableWrapData 行为。
任何见解都会有所帮助,谢谢。
我在问题中差不多回答了我的问题。包含图片中所有内容的组合具有列设置为 2 的 TableWrapData。TableWrapData 实质上在每列之间绘制一条垂直直线,然后确保来自一列的小部件不会穿过它。
因此,要解决此问题(就像我在问题中提到的那样),您只需制作另一个带有嵌套小部件的组合(在本例中为资源类型标签和 resourceComboMenu)。我只是没有意识到这是你应该做的。