Java 复合块的SWT GridLayout和GridData对齐
我知道我有布局,但我在设置相邻的achivementsChild时有问题。我想做一些调整或类似的事情。现在他们一个站在另一个下面,我想把一个放在另一个旁边Java 复合块的SWT GridLayout和GridData对齐,java,user-interface,swt,Java,User Interface,Swt,我知道我有布局,但我在设置相邻的achivementsChild时有问题。我想做一些调整或类似的事情。现在他们一个站在另一个下面,我想把一个放在另一个旁边 TabItem tbtmStudent = new TabItem(tabFolder_1, SWT.NONE); tbtmStudent.setText("Student"); ScrolledComposite scrolledComposite_1 = new ScrolledComposite(tabFolder_1, SWT.BO
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));
TabItem tbtmStudent=新的TabItem(tabFolder_1,SWT.NONE);
tbtmStudent.setText(“学生”);
ScrolledComposite ScrolledComposite_1=新的ScrolledComposite(选项卡文件夹_1,SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
scrolledComposite_1.addMouseWheelListener(新的MouseWheelListener(){
公共空鼠标滚动(MouseEvent e){
scrolledComposite.setFocus();
}
});
tbtmStudent.setControl(scrolledComposite_1);
scrolledComposite_1.setExpandHorizontal(真);
scrolledComposite_1.setExpandVertical(真);
列出allSTUDENTNodes=currentData.getStudentNodes();
复合studentChild=新复合(scrolledComposite_1,SWT.NONE);
setLayout(新的GridLayout());
for(学生节点:所有学生节点){
新建STUDENTNode(studentChild,SWT.NONE,STUDENTNode);
Composite achivementsChild=新组合(scrolled Composite_1,SWT.DEFAULT);
setLayout(新的GridLayout());
for(Achivements AchivesNode:studentNode.getAchivements()){
新成就节点(mscbcChild,SWT.NONE,成就节点);
}
}
scrolledComposite_1.设置内容(studentChild);
scrolledComposite_1.setMinSize(studentChild.computeSize(SWT.DEFAULT,SWT.DEFAULT));
您可以在创建网格布局时指定所需的列数:
new GridLayout(numberOfColumns, columnsEqual);
numberofColumns
是所需的列数
如果columnsEqual
为true
所有列将具有相同的宽度,如果false
它们将具有它们的首选大小。问题是对于成就,因为它们是小块,而学生因为数据而更大,我的问题是如何在学生块下面对成就进行排序