SWT-дерево в ScrolledComposite
Некоторое время я пытался создать диалог, содержащий композит. Композитный имеет возможность добавлять горизонтальные и вертикальные полосы прокрутки, если он становится слишком маленьким, чтобы показать его содержимое. Внутри композита есть виджет дерева. Этот виджет дерева должен обеспечивать аналогичные полосы прокрутки, если столбцы или строки не могут быть отображены в данной области.
Отличным примером того, что я пытаюсь сделать, является параметр "Проверка" в диалоговом окне "Окно"> "Настройки" в Eclipse. У него есть таблица, которая предоставляет полосы прокрутки, если размер столбца увеличивается. В то же время, если размер диалога уменьшается, он предоставляет полосу прокрутки для композита.
То, что я пытался сделать, это создать ScrolledComposite, поместить в него еще один Composite с GridLayout. После этого я поместил дерево и кучу меток и кнопок внутри композита. Однако, если поместить слишком много TreeColumns или TreeItems внутри дерева просто увеличивается в размере вместо отображения полос прокрутки.
Есть идеи, что я делаю неправильно и как это нужно делать правильно? Заранее спасибо.
1 ответ
Попробуйте установить подсказку ширины на дереве, используя что-то вроде ниже:
Tree tree = ...
GridData gd = new GridData();
gd.widthHint = XX;
gd.heightHint = XX;
tree.setLayoutData(gd);