gpt4 book ai didi

java - 如何填充 ScrolledComposite?

转载 作者:行者123 更新时间:2023-11-29 05:40:24 26 4
gpt4 key购买 nike

我有一个从 ScrolledComposite 扩展的类,在这个类中我创建了一个 Composite,它旨在填充父 ScrolledComposite。但是每当我将标签添加到内部复合 Material 时,它只会包装到右上角。我希望我的内部 Composite 完全填充外部 ScrolledComposite。有没有办法做到这一点?

    public class Container extends ScrolledComposite {

final Composite comp;
Label nameLabel, sizeLabel, dateLabel;
ArrayList<Label> entrySize, date;
ArrayList<SimpleEntry> entry;
Color white;
Font font;

public Container(Composite parent, int style) {
super(parent, style);
white = new Color(getDisplay(), 255, 255, 255);
font = new Font(getDisplay(), "Arial", 16, SWT.BOLD);
setBackground(white);
setLayout(new GridLayout(1, false));

comp = new Composite(this, SWT.BORDER);
GridData compData = new GridData(SWT.FILL, SWT.FILL, true, true);
comp.setLayoutData(compData);
setContent(comp);
comp.setBackground(white);
comp.setLayout(new GridLayout(3, false));

nameLabel = new Label(comp, SWT.BOLD);
sizeLabel = new Label(comp, SWT.BOLD);
dateLabel = new Label(comp, SWT.BOLD);

GridData d1 = new GridData(SWT.CENTER, SWT.CENTER, true, false);
nameLabel.setLayoutData(d1);

GridData d2 = new GridData(SWT.CENTER, SWT.CENTER, true, false);
sizeLabel.setLayoutData(d2);

GridData d3 = new GridData(SWT.CENTER, SWT.CENTER, true, false);
dateLabel.setLayoutData(d3);

nameLabel.setBackground(white);
sizeLabel.setBackground(white);
dateLabel.setBackground(white);

nameLabel.setText("Name");
sizeLabel.setText("Size");
dateLabel.setText("Last Modified");

nameLabel.setFont(font);
sizeLabel.setFont(font);
dateLabel.setFont(font);

comp.setSize(comp.computeSize(SWT.DEFAULT, SWT.DEFAULT));
comp.layout();

addDisposeListener(new DisposeListener() {
@Override
public void widgetDisposed(DisposeEvent e) {
Container.this.widgetDisposed(e);
}
});
}
}

最佳答案

只需在构造函数的末尾添加这些行:

this.setMinSize(comp.computeSize(SWT.DEFAULT, SWT.DEFAULT));
this.setExpandHorizontal(true);
this.setExpandVertical(true);

注意事项:

  • 请记住 dispose() 您自己创建的所有资源(ColorFont、...)
  • 考虑使用 display.getSystemColor(SWT.COLOR_WHITE)display.getSystemFont() 使用系统资源(无需释放)。

关于java - 如何填充 ScrolledComposite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17827535/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com