Электронный магазин на Java и XML

         

Класс для создания таблиц - часть 4


Чтобы объединить всю статистическую информацию, полученную классом TallyQues, используется вектор ordered, в котором для каждого вопроса отведен свой элемент, причем эти элементы следуют в том же порядке, в котором расположены вопросы в исходном XML-сценарии анкеты Каждый такой элемент сам по себе также является вектором, в котором содержится идентификатор вопроса id (строка), а затем следуют объекты класса Counter для каждого из вариантов ответа В хэш-таблице qtext указан текст каждого вопроса, ключом к которому является идентификатор данного вопроса

Форматирование полученных результатов

Рассмотрим теперь, каким образом отображается полученная совокупность данных Метод formatAlly, приведенный в листинге 7 29, выводит для каждого вопроса HTML-таблицу, придерживаясь исходного порядка расположения элементов На рис 7 2 показана одна из таблиц, сформированная в результате опроса, который мы недавно проводили на нашем web-сайте в связи с экзаменом на получение сертификата программиста на Java

Листинг 7.29. Метод formatTally создает таблицу HTML (TallyQues.java)

// assumes that tallyAns was just run public void formatTally(PrintWriter out ){ out.println("<center><h2>" + ordered.size() + " Questions " + resultCt + " Responses</h2></center>"); Enumeration e = ordered.elements(); while( e.hasMoreElements() ){ Vector v = (Vector) e.nextElement(); String id = (String)v.firstElement(); out.println("<center><h2>Question: " + id + "</h2>"); out.println("<p>" + qtext.get(id) + "</p>" ) ; out.println("<table cols=\"3\"" + tableStyle + " >"); out.print("<tr>"); out.print("<th>Val</th><th>Count</th><th>Short Option Text</th>"); out.println("</tr>"); for( int i = 1 ; i < v.size(); i++ ){ Counter c = (Counter) v.elementAt(i); out.print("<tr><td>" + c.val + "</td>"); out.print("<td>" + c.count + "</td>" ); out.println("<td>" + c.text + "</td></tr>"); } out.println("</table></center><br><hr>"); } }




Содержание  Назад  Вперед