SWT TabFolder: как автоматически сжимать TabItems, когда их слишком много - PullRequest
0 голосов
/ 10 октября 2018

У меня есть TabFolder, в котором TabItems могут быть созданы динамически.Я ожидал, что вкладки будут сжиматься так же, как и в браузере, когда их больше, чем уместится на экране, но они просто будут расширяться вправо, пока я не добавлю горизонтальную прокрутку.Есть ли способ сделать так, чтобы они автоматически сжимались таким образом?

TabFolder tabsComposite = new TabFolder(builder, SWT.NONE);
tabsComposite.setLayout(new GridLayout(1, false));
GridData tabsLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
tabsComposite.setLayoutData(tabsLayoutData);

Они создаются с помощью нажатия кнопки другим способом, и может быть создано любое их число

TabItem item = new TabItem(tabsComposite, SWT.NONE);
tableComposite = new Composite(parent, SWT.BORDER);
GridData tableLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
tableComposite.setLayoutData(tableLayoutData);
GridLayout tableLayout = new GridLayout(1, false);
tableComposite.setLayout(tableLayout);
item.setText(nameText.getText());

1 Ответ

0 голосов
/ 11 октября 2018

Как упоминалось @ greg-449, вы можете сделать это с помощью CTabFolder.По умолчанию CTabFolder будет отображать не менее 20 символов при сжатии, поэтому вы, возможно, не заметили это поведение по умолчанию, если заголовок вкладки был недостаточно длинным.

Вы можете вызватьCTabFolder.setMinimumCharacters(int), если вы хотите изменить это значение.

Поведение по умолчанию:

enter image description here

С новымминимальный набор:

enter image description here

...