Установить ширину заголовка 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