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