IBM VisualAge for Java и сетевые вычисления

       

Можно ли обойтись без построителя?


Да! Причем ни одна из возможностей VisualAge не будет при этом потеряна. Более того, при написании апплетов руками белый человек применяет разные хитрости, например:

  • Все окна и поля ввода можно создать заранее и держать их скрытыми, так что как только они потребуются, их можно будет сразу же показать. Изображения и настройки также заранее загружаются с сервера. Это занимает некоторое время, но скачивать данные по сети можно одновременно с остальными действиями - например, пока пользователь наберет свое имя и пароль.
  • Все созданные заранее надписи, кнопки и поля ввода можно разместить в отдельном классе и обращаться к нему в любом месте программы, набирая что-то вроде: "InputFieldsForMyApplet.большаяНадпись.setForeground(Color.red);" Если точно так же поступить со всеми изображениями, цветами, строками и настройками, программа становится намного проще.
  • Действия, которые надо выполнять в ответ на возникающие события, можно перенести в потоки (Threads), чтобы не останавливать очередь событий. Если даже в потоке возникнет исключение, например, доступ по нулевому указателю, апплет все равно будет работать.
  • Для того, чтобы задать расположение окон построитель на самом деле и не нужен - в Яве достаточно средств для этого. В примерах к этой статье вы найдете класс GroupBox, это "Рамка, которая может содержать несколько полей ввода (а также кнопок, надписей и так далее)". При изменении размеров апплета рамка меняет свой размер и передвигает все поля, которые расположены внутри нее, так что апплет всегда будет выглядеть одинаково, независимо от того, на какой машине он выполняется.

Как видите, в работе без построителя тоже есть свои преимущества, так что если вы решили обходиться без него - это только к лучшему. Последовательность действий при разработке апплета в этом случае выглядит так:

  1. Вы пишете апплет, который рисует окна и поля ввода и больше ничего не делает и проверяете то, что получилось.
  2. Затем вы добавляете к нему методы для отслеживания событий от мыши, клавиатуры, действий пользователя и так далее.
  3. После этого вы создаете потоки, которые могут потребоваться для выполнения всех действий и их отлаживаете.



Содержание раздела