java - 在滚动复合中使用 GridLayout

标签 java swt composite scrolledcomposite

我正在尝试创建一个滚动的复合 Material ,其中有一个内部有网格布局的复合 Material 。

但是,当我尝试设置滚动复合 Material 的内容时,没有任何加载。 这似乎只影响具有网格布局的复合 Material 。

我做错了什么?

我的代码:

    CTabItem tbtmNotes = new CTabItem(tabFolder, SWT.NONE);
    tbtmNotes.setText("Notes");
    ScrolledComposite scrollComposite = new ScrolledComposite(tabFolder, SWT.V_SCROLL | SWT.BORDER);
    tbtmNotes.setControl(scrollComposite);
    scrollComposite.setContent(new hm_Composites.Comp_Animal_Notes(tabFolder, SWT.None, a));

最佳答案

经过一系列摆弄后,我得到了以下工作希望它能帮助其他人。

    public Comp_Animal_Notes(Composite parent, int style, Animal a)
        throws Exception {
    super(parent, SWT.NONE);
    setLayout(new FillLayout(SWT.HORIZONTAL));
    ScrolledComposite scrolledComposite = new ScrolledComposite(this, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    scrolledComposite.setExpandHorizontal(true);
    scrolledComposite.setExpandVertical(true);

    Composite composite = new Composite(scrolledComposite, SWT.NONE);
    composite.setLayout(new GridLayout(2, false));

    ArrayList<Note> alNotes = a.getAnimalNotes();
    this.setRedraw(false);
    for (int i = 0; i < alNotes.size(); i++) {
        Note note = alNotes.get(i);

        CLabel lblNoteDate = new CLabel(composite, SWT.BORDER);
        lblNoteDate.setFont(SWTResourceManager.getFont("Tahoma", 8,
                SWT.BOLD));
        lblNoteDate.setText("Date:");
        lblNoteDate.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));

        CLabel lblNotedatetxt = new CLabel(composite, SWT.BORDER);
        lblNotedatetxt.setBackground(SWTResourceManager
                .getColor(SWT.COLOR_WHITE));
        lblNotedatetxt.setText(note.getUserDate());
        lblNotedatetxt.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));

        CLabel lblNoteTxt = new CLabel(composite, SWT.BORDER);
        lblNoteTxt.setBackground(SWTResourceManager
                .getColor(SWT.COLOR_WHITE));
        lblNoteTxt.setText(note.getStrNote());
        lblNoteTxt.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
    }

    scrolledComposite.setContent(composite);
    scrolledComposite.setMinSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));

    this.setRedraw(true);
}

关于java - 在滚动复合中使用 GridLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10338056/

相关文章:

c# - Silverlight 4 应用程序中的 MEF 和 Autofac

gradle - gradle复合构建:来自ant taskdef classpath中包含构建的jar

Java跨平台应用: Where to save external files?

java - 导出期间将完整的 jtextarea 内容显示到 Excel 文件的单个单元格中。

java - 如何在 java 中用 swt 显示图像?

java - SWT错误: Not implemented [multiple displays]

java - 复合、按钮和图标

java - 菜单项加速键仅在菜单项显示后才起作用

java - java中的tcp session

java - 将 ScrollableComposite 位置设置为位置