这是一个RCP Eclipse APP, 你有一个对象的列表(名称,数量,图像),它是用FOR循环下载的。
下载此信息,对象的每个属性都显示在APP中,每个属性都有一个标签。
例如:
lblName[idx] = ComponentProvider.getLabel(composite, getObject().getName(), 8);
lblName[idx].setBounds(5, pos, 195, 20);
lblValue[idx] = ComponentProvider.getLabel(composite, getObject().getValue(), 8);
lblValue[idx].setBounds(205, pos, 73, 20);
lblStatus[idx] = ComponentProvider.getLabel(composite, "", 8);
lblStatus[idx].setBounds(280, pos, 39, 20);
lblStatus[idx].setImage(StateIconManager.getImageForState(getObject().getImg()));
这将对齐这三个属性并显示:[名称] [数量] [图像]
这样可行,这里的问题是:在APP运行一段时间之后,它会像这样错位:
有些想法让标签保持一致?
答案 0 :(得分:1)
您似乎对features(
maven()
.groupId("com.att.detsusl")
.artifactId("usl-servicefactory-impl")
.type("xml")
.classifier("features").versionAsInProject(), "usl-all"
)
使用包含这些控件的GridLayout
。您无法使用由布局管理的Composite
中的setBounds
。布局将使用它计算的边界覆盖边界。
由于您使用的是Composite
,因此您应在每个控件上设置GridLayout
版面数据。 GridData
有许多字段可以让你控制cntrol的位置和大小。