复合块的SWT GridLayout和GridData对齐



我知道我有布局,但我有设置成就的问题彼此相邻。我想做一些对齐或类似的事情。现在它们一个挨一个,我想把它们放在另一个旁边。

TabItem tbtmStudent = new TabItem(tabFolder_1, SWT.NONE);
tbtmStudent.setText("Student");
ScrolledComposite scrolledComposite_1 = new ScrolledComposite(tabFolder_1, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
scrolledComposite_1.addMouseWheelListener(new MouseWheelListener() {
    public void mouseScrolled(MouseEvent e) {
        scrolledComposite.setFocus();
    }   
});
tbtmStudent.setControl(scrolledComposite_1);
scrolledComposite_1.setExpandHorizontal(true);
scrolledComposite_1.setExpandVertical(true);

List<STUDENT> allSTUDENTNodes = currentData.getStudentNodes();
Composite studentChild = new Composite(scrolledComposite_1, SWT.NONE);
studentChild.setLayout(new GridLayout());
for(STUDENT studentNode: allSTUDENTNodes){
    new STUDENTNode(studentChild, SWT.NONE, studentNode);
    Composite achivementsChild = new Composite(scrolledComposite_1, SWT.DEFAULT);
    achivementsChild.setLayout(new GridLayout());
    for(Achivements achivementsNode: studentNode.getAchivements()){
        new AchivementsNode(mscbcChild, SWT.NONE, achivementsNode);
    }
}
scrolledComposite_1.setContent(studentChild);
scrolledComposite_1.setMinSize(studentChild.computeSize(SWT.DEFAULT, SWT.DEFAULT));

您可以在创建GridLayout时指定需要多少列:

new GridLayout(numberOfColumns, columnsEqual);

numberofColumns是您想要的列数。

如果columnsEqualtrue,所有列将有相同的宽度,如果它是false,他们将有他们的首选大小。

最新更新