0

私はJPanelsなどを使ってGUIを構築してきました。私が今働いている場所では、SWT を使用して GUI を構築しています。テンプレートのいくつかの属性に基づいてサッシを垂直または水平に分割するサッシを追加したコンポジットがあります。私の質問は、SWT で sashForm を分割し、分割の両側でスクロール可能にする方法です。したがって、sashForm を垂直に分割すると、分割の両側を個別にスクロールできるようになります。これはSWTで可能ですか?それがそうする方法の例であれば、大歓迎です。以下は、私が使用しているコードの一般的なアイデアです。仕事に関連しているため、レビューするすべてのコードを提供することはできません。このメソッドが属するクラスは、Composite を拡張します。

private void createContent() {
    this.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    this.setLayout(stackLayout);
    for (DVTemplate dvTemplate : loadableTemplates) {
        for (CompositeTemplate template : dvTemplate.templateList) {
            Composite templateComposite;
            Composite parentComposite = this;
            if (!isEmpty(template.parentComposite)) {
                parentComposite = compositeMap
                        .get(template.parentComposite);
            }
            if (isEmpty(template.sashStyle)) {
                templateComposite = new DataVisualizationComposite(
                        parentComposite, template.style, template.name,
                        DataVisualizationComposite.DataVisualization.EMPTY,
                        template.parentTemplate, true, false);
            } else {
                if ("HORIZONTAL".equals(template.sashStyle)) {
                    templateComposite = new SashForm(parentComposite,
                            SWT.HORIZONTAL);
                } else {
                    templateComposite = new SashForm(parentComposite,
                            SWT.VERTICAL);
                }
            }
       }
  }
}
4

1 に答える 1

4

ScrolledComposite (または、テーブルやツリーなどのスクロールをネイティブにサポートするウィジェット) を sash の子として追加します。

于 2013-05-14T17:14:05.677 に答える