измерение размера заполнения заголовка столбца SWT / JFace

#swt #eclipse-rcp #jface

#swt #eclipse-rcp #jface

Вопрос:

У меня есть несколько таблиц в приложении eclipse SWT. Они представляют собой таблицы Table / TableViewer и состоят из заголовка, строки слева с текстом и ряда графических элементов. Помимо текстового столбца имеется 32 столбца, пронумерованных от 0 до 31. В Windows 7 и XP в классическом режиме текст в порядке, но в обычном режиме XP они усекаются, поэтому кажется, что они исчезают 0 1 2 3 4 5 6 7 8 9 1. 1. 1. 1. 1. и т.д. В любом случае для текста явно достаточно места.

Если я просто установлю ширину по умолчанию на 28 вместо 25, как я нашел, тогда они будут в порядке, но, очевидно, это не очень хорошо, так как тогда мне нужно больше места для интерфейса в Windows 7 и XP Classic, где он уже был в порядке. Я попытался получить среднюю ширину из fontmetrics, но текст возвращается как 5 во всех режимах. Я не могу найти какой-либо способ либо уменьшить отступ (что было бы лучшим способом), либо выяснить, сколько там отступов (что было бы достаточно). Нужно ли мне рисовать заголовки столбцов вручную?

ps: Извините за JFace / SWT, я только начал с этого и еще не понял различий!

Ответ №1:

Вызов TableColumn#pack() должен дать столбцу именно ту ширину, которая необходима для отображения его содержимого, без потери места или усечения его содержимого. Сюда входит текст заголовка столбца.

Комментарии:

1. Необходимо сохранить самый большой столбец, поскольку очевидно (хотя и не на win7), что столбцы с одной цифрой меньше, но после перерисовки теперь он может изменять размер между XP и XP в классическом режиме. Как ни странно, в Win7 он возвращается больше, чем был раньше, хотя при этом он не усекался, поэтому интерфейс вырос, но, по крайней мере, он последовательный, спасибо

Ответ №2:

Вы должны использовать TableLayout для более динамического вычисления размера заголовков вашей таблицы. Хорошей отправной точкой является следующая статья в блоге: http://eclipsenuggets.blogspot.com/2007/11/one-of-less-prominent-novelties-in.html

Комментарии:

1. Спасибо, но я не уверен, что следую. Столбцы не могут быть изменены отдельно от метки и не имеют никакого отношения к размеру окна. В идеальном мире они должны быть как можно меньше, не обрезая текст. В TableLayout, похоже, нет ничего, что могло бы дать мне наименьшее возможное пространство