При добавлении к StringBuilder
происходит следующая логика:
if (newCount > value.length) {
expandCapacity(newCount);
}
, где newCount
- количество требуемых символов, а value.length
- текущий размер буфера.
expandCapacity
просто увеличивает размер резервной копии char[]
Метод ensureCapacity()
является общедоступным способом вызова expandCapacity()
, и его документы говорят:
Обеспечивает, чтобы емкость была как минимум равна указанному минимуму. Если текущая емкость меньше аргумента, то новый внутренний массив выделяется с большей пропускной способностью. Новая емкость больше:
- Аргумент minimumCapacity.
- Дважды старая емкость плюс 2.
Если Аргумент minimumCapacity неположителен, этот метод не принимает никаких действий и просто возвращает.
blockquote>
Я должен был найти тот же ответ. Лучший пример, который я нашел, http://www.cssplay.co.uk/menu/tablescroll.html - я нашел, что пример № 2 работал хорошо на меня. Необходимо будет установить высоту внутренней таблицы со Сценарием Java, остальное - CSS.
Вы попытались использовать thead и tbody, и установить закрепленную высоту на tbody с overflow:scroll?
, Каковы Ваши целевые браузеры?
РЕДАКТИРОВАНИЕ: Это работало хорошо (почти) в Firefox - добавление вертикальной полосы прокрутки вызвало потребность в горизонтальной полосе прокрутки также - фу. IE просто установил высоту каждого td к тому, чем у меня был specifed высота tbody, чтобы быть. Здесь является лучшим, я мог придумать:
<html>
<head>
<title>Blah</title>
<style type="text/css">
table { width:300px; }
tbody { height:10em; overflow:scroll;}
td { height:auto; }
</style>
</head>
<body>
<table>
<thead>
<tr>
<th>One</th><th>Two</th>
</td>
</tr>
</thead>
<tbody>
<tr><td>Data</td><td>Data</td></tr>
<tr><td>Data</td><td>Data</td></tr>
<tr><td>Data</td><td>Data</td></tr>
<tr><td>Data</td><td>Data</td></tr>
<tr><td>Data</td><td>Data</td></tr>
<tr><td>Data</td><td>Data</td></tr>
<tr><td>Data</td><td>Data</td></tr>
<tr><td>Data</td><td>Data</td></tr>
<tr><td>Data</td><td>Data</td></tr>
<tr><td>Data</td><td>Data</td></tr>
<tr><td>Data</td><td>Data</td></tr>
<tr><td>Data</td><td>Data</td></tr>
<tr><td>Data</td><td>Data</td></tr>
<tr><td>Data</td><td>Data</td></tr>
<tr><td>Data</td><td>Data</td></tr>
</tbody>
</table>
</body>
</html>
Это вызвало меня огромные головные боли, пытающиеся реализовать такую сетку для нашего приложения. Я попробовал все различные методы там, но у каждого из них были проблемы. Самое близкое я приехал, использовало плагин jQuery такой в качестве Flexigrid (взгляд http://www.ajaxrain.com для альтернатив), но это, кажется, не поддерживает таблицы 100% шириной, который является тем, в чем я нуждался.
то, Что я закончил тем, что делал, прокручивало мое собственное; Firefox поддерживает прокрутку tbody
элементы так я, браузер осуществил сниффинг и использовал соответствующий CSS (устанавливающий высоту, переполнение и т.д.... спрашивают, хотите ли Вы больше деталей) сделать ту прокрутку, и затем для других браузеров я использовал два отдельных набора таблиц для использования table-layout: fixed
, который использует алгоритм калибровки, который, как гарантируют, не переполнит установленного размера (нормальные таблицы расширятся, когда содержание будет слишком широко для установки). Путем предоставления обеим таблицам идентичных ширин я смог заставить их столбцы выстраиваться в линию. Я перенесся, второй в отделении установил на прокрутку, и с небольшим количеством jiggery pokery с полями и т.д. сумел получить стиль, который я хотел.
Жаль, если этот ответ звучит немного неопределенным в местах; я пишу быстро, поскольку у меня нет большого количества времени. Оставьте комментарий, если Вы хотите, чтобы я расширился дальше!
Not sure if anyone is still looking at this but they way I have done this previously is to use two tables to display the single original table - the first just the original table title line and no table body rows (or an empty body row to make it validate).
The second is in a separate div and has no title and just the original table body rows. The separate div is then made scrollable.
The second table in it's div is placed just below the first table in the HTML and it looks like a single table with a fixed header and a scrollable lower section. I have only tested this in Safari, Firefox and IE (latest versions of each in Spring 2010) but it worked in all of them.
The only issue it had was that the first table would not validate without a body (W3.org validator - XHTML 1.0 strict), and when I added one with no content it causes a blank row. Вы можете использовать CSS, чтобы сделать ее невидимой, но она все равно съедает место на странице.