IT • archiv

rus / eng | Логин | Добавить отзыв | Печать | Почта | Клуб




Инструменты


Создание графического web-приложения в VisualAge for Java 3.5. Часть 5

 
(Николай Зайкин)

Продолжаем создавать внешний вид главного окна приложения. Нам осталось только создать текстовую область (text area) для вывода перевода слова, и дизайн главного окна будет закончен.

Тестовая область в библиотеке Swing представлена классом, как и следовало ожидать, JTextArea. Но он, в отличие от своего коллеги из библиотеки AWT, не поддерживает полосы прокрутки (scrollbars), и для того, чтобы мы смогли пролистывать длинный текст, мы должны поместить этот бин в специальный контейнер, поддерживающий прокрутку для своего содержимого. Таким контейнером у нас будет бин JScrollPane.

Нажмите на иконке бина JScrollPane - JScrollPane, и поместите его на окно приложения. Установите размеры по оставшемуся свободному месту в окне.

Затем на новосозданную панель с прокрутокой поместите объект JTextArea.

Нажмите на иконке бина JTextArea - JTextArea, и щелкните на панели JScrollPane. Измените у объекта текстовой области следующие свойства:

  • beanName -> JTranslationTextArea;
  • editable -> false;

Теперь ваш экран визуального редактора должен выглядеть следующим образом (приблизительно):
Размещение элементов в визуальном редакторе
Добавим несколько переменных класса в невизуальном редакторе. Перейдите на закладку Members, и нажмите кнопку создания поля класса - Create Field. Заполните поля мастера (SmartGuide):

  • Field Name -> useProxy;
  • Field Type -> boolean;
  • Initial Value -> true;
  • Access Modifiers оставьте public, так как к этому полю класса мы будем в дальнейшем обращаться из другого класса.

Мастер создания поля класса
В результате вы получите следующее:
   public boolean useProxy   = true;


Закладка Members

Таким же способом добавьте остальные поля (смотри ниже). Если данный способ для вас слишком утомителен, нажмите в меню Edit -> Save, перейдите на закладку Source, скопируйте ниже приведенный фрагмент кода и вставте его сразу после

   public boolean useProxy   = true;

в окне редактора, после чего нажмите Ctrl-S для сохранения кода. Новые поля появятся в левом окне, и вы сможете нажимая на них мышкой, быстро перемещаться по коду класса.
   public String hostURL      = "http://web-develop.virtualave.net";
    public String proxyURL     = "proxy.de.ibm.com";
    public String proxyPort    = "80";
    private String wordDefault = "preacher";
    private String typeDefault = "1";

    private Properties prop;
    private FileInputStream fis;
    private FileOutputStream fos;

Если вы закроете окно редактора класса, и вернетесь в Workbench, VAJ сгенерирует новый код класса с учетом сделанных вами изменений и вы увидите ошибку: "Field type Properties is missing". VAJ выполнила компиляцию класса на лету и обнаружила, что мы пытаемся объявить переменную типа Properties, о котором VAJ ничего пока не знает. В данном приложении переменная типа Properties используется для хранения и сохранения на диск текущих настроек (например, вышеприведенных переменных). Более детально ознакомиться с классом Properties и его возможностями вы сможете в предыдущей статье или на сайте фирмы Sun. Для исправления ошибки надо либо подключить пакет java.util.*, либо указать полное название класса - java.util.Properties, но тогда при каждом использовании этого класса нам придется указывать его полное имя. Проще подключить пакет (package) java.util.*, для этого в самом начале класса найдите строки:

   import java.awt.*;
    import javax.swing.*;

    /**
     * This type was generated by a SmartGuide.
     */

и добавьте после первых двух третью строку:
   import java.util.*;

Нажмите Ctrl-S для сохранения изменений. VAJ выполнит снова компиляцию на лету и покажет ошибку: "Field type FileInputStream is missing". Для устранения ошибки таким же способом подключите пакет java.io.*.

   import java.io.*;

Нажмите Ctrl-S. Ошибок больше нет...

Перед завершением этой части статьи - один полезный хинт, то бишь совет. Если при размещении в визуальном редакторе вы попробуете подвигать текстовую область (text area), у вас это может не получиться. Дело в том, что, во-первых, JTranslationTextArea находится в контейнере - JScrollPane1, и перемещать JTranslationTextArea вы сможете только относительно контейнера, со всеми вытекающими последствиями , и, во-вторых, вы выбираете при нажатии мышкой на JTranslationTextArea именно JTranslationTextArea, а не его контейнер, так как редактор выбирает объект, находящийся в самом верхнем слое. Для выделения и последующего перемещения контейнера JScrollPane1 - нажмите кнопку Beans List - она откроет окно со списком бинов и соединений между ними:
Beans List
Теперь вы можете выбрать JScrollPane1 и перемещать вместе с ней текстовую область !

TOC | Часть 6 >




Справка | Условия Copyright © 1999 — 2010, IT • archiv.
В начало | Логин | Добавить отзыв | Поиск | Почта