Установить ширину заголовка CTabItem

Можно ли установить ширину заголовка вкладки CTabItem произвольно?

Спасибо заранее!

С уважением, Маркус

3 ответа

Решение

Нет, ты не можешь этого сделать. По крайней мере, с помощью какого-либо открытого API (читайте public methods). Возможное решение - расширить код CTabFolder а также CTabItem,

Вы можете попробовать переопределить CTabItem, но это решение не выглядит хорошим решением (тем не менее, я его использую):

CTabItem tabItem;

final int tabWidth = 90;

tabItem = new CTabItem( tabFolder, SWT.NONE ) {
    @Override
    public Rectangle getBounds( ) {
        Rectangle bounds = super.getBounds();
        bounds.x = 0 * tabWidth;
        bounds.width = tabWidth;
        return bounds;
    }
};
tabItem.setText( __lang.str( this, "Tab Item I" ) );

tabItem = new CTabItem( tabFolder, SWT.NONE ) {
    @Override
    public Rectangle getBounds( ) {
        Rectangle bounds = super.getBounds();
        bounds.x = 1 * tabWidth;
        bounds.width = tabWidth;
        return bounds;
    }
};
tabItem.setText( __lang.str( this, "Tab Item II" ) );

tabItem = new CTabItem( tabFolder, SWT.NONE ) {
    @Override
    public Rectangle getBounds( ) {
        Rectangle bounds = super.getBounds();
        bounds.x = 2 * tabWidth;
        bounds.width = tabWidth;
        return bounds;
    }
};
tabItem.setText( __lang.str( this, "Tab Item III" ) );

В качестве обходного пути вы можете дополнить заголовок дополнительными пробелами, используя String.format нравиться:

      cTabItem.setText(String.format("%-15s", orgTitle));

Это добавит лишние пробелы в конец строки, если ее длина меньше 15 символов.

Проверьте это для получения дополнительной информации:https://docs.oracle.com/javase/tutorial/essential/io/formatting.html

Другие вопросы по тегам