Моя цель - отобразить таблицу с помощью синтаксического анализа XML-файла.
Я использую SAX Parser, и содержимое имеет multirows , и я хочу, чтобы таблица width была равнаустановите на дисплей.Конечно, прокрутка Y_AXIS будет в порядке.
Сейчас я использую HTMLTableModel src / com / sun / lwuit / html /, и это соответствует HTMLTable ,Для этого я объявил, что это общедоступные методы, чтобы я мог получить к ним доступ.Это работает отлично до сих пор.Это позволяет мне объявлять таблицы, не зная их размера преждевременно.
Чтобы разрешить множественные строки, я встраиваю TextAreas в ячейки.
Теперь проблема: HTMLTable t требуется t.setScrollableY(true)
, илииначе не все строки показаны.
Это приводит к тому, что таблица становится немного больше в направлении X, поэтому правая граница не отображается.Кроме того, нижняя граница не отображается постоянно.
Контейнер , в который встроена таблица, имеет BorderLayout.Y_AXIS .Вещи, которые я пробовал: t.setPreferredW(mainContainer.getLayoutWidth());
Это уменьшает размер таблицы, но тогда таблица не показывает все ее строки, как без t.setScrollableY(true).
t.setLayout(new BoxLayout(BoxLayout.Y_AXIS))
, это вызывает java/lang/ClassCastException
.
Есть идеи?Заранее спасибо.
Выдержка из моего кода:
} else if (qName.equalsIgnoreCase("td")) {
if (sb.length() > 0) {
String sbt = new String(sb);
sb.delete(0, sb.length());
TextArea c = new TextArea(sbt);
c.setEditable(false);
c.getStyle().setFont(smallFont);
table.addCell(c, false, null);
}
} else if (qName.equalsIgnoreCase("tr")) {
debugPrint("Row closed.");
table.commitRow();
} else if (qName.equalsIgnoreCase("table")) {
HTMLTable t = new HTMLTable(table);
//without scrollable Y not all table rows are shown
t.setScrollableY(true);
//t.setPreferredW(screenWidth);
//this is verboten.
t.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
mainContainer.addComponent(t);
tableBool = false;