Создание графического web-приложения в VisualAge for Java 3.5. Часть 5
(Николай Зайкин)
Продолжаем создавать внешний вид главного окна приложения. Нам осталось только создать
текстовую область (text area) для вывода перевода слова, и дизайн главного окна будет
закончен.
Тестовая область в библиотеке Swing представлена классом, как и следовало ожидать,
JTextArea. Но он, в отличие от своего коллеги из библиотеки AWT, не
поддерживает полосы прокрутки (scrollbars), и для того, чтобы мы смогли пролистывать
длинный текст, мы должны поместить этот бин в специальный контейнер, поддерживающий
прокрутку для своего содержимого. Таким контейнером у нас будет бин
JScrollPane.
Нажмите на иконке бина JScrollPane - , и поместите его на окно приложения. Установите размеры по
оставшемуся свободному месту в окне.
Затем на новосозданную панель с прокрутокой поместите объект
JTextArea.
Нажмите на иконке бина JTextArea - , и щелкните на панели JScrollPane. Измените у объекта
текстовой области следующие свойства:
- beanName -> JTranslationTextArea;
- editable -> false;
Теперь ваш экран визуального редактора должен выглядеть следующим образом
(приблизительно):

Добавим несколько переменных класса в невизуальном редакторе. Перейдите на закладку
Members, и нажмите кнопку создания поля класса -
. Заполните поля мастера (SmartGuide):
- Field Name -> useProxy;
- Field Type -> boolean;
- Initial Value -> true;
- Access Modifiers оставьте
public, так как к этому полю класса мы будем в
дальнейшем обращаться из другого класса.
В результате вы получите следующее:
public boolean useProxy = true;

Таким же способом добавьте остальные поля (смотри ниже). Если данный способ для вас
слишком утомителен, нажмите в меню 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 - нажмите
кнопку - она откроет окно со списком бинов и
соединений между ними:

Теперь вы можете выбрать JScrollPane1 и перемещать вместе с ней текстовую
область !
TOC | Часть 6

|