Читать «Java: руководство для начинающих» онлайн - страница 370

Герберт Шилдт

Что обозначают угловые скобки (< >)? Угловые скобки обозначают ромбовидный оператор.

Как упростить приведенную ниже строку кода в версии JDK 7? MyClass obj = new MyClass(1.1,"Hi"); Эту строку кода можно упростить, используя ромбовидный оператор следующим образом: MyClass obj = new MyClasso(1.1,"Hi"); Глава 14. Апплеты, события и прочее

Какой метод вызывается первым в начале выполнения апплета? Какой метод вызывается, когда апплет должен быть удален из системы? Выполнение апплета начинается с вызова метода init (). А перед удалением апплета вызывается метод destroy ()..

Почему в апплете, который должен работать постоянно, следует организовать многопоточный режим? Многопоточный режим необходим в постоянно выполняющемся апплете, потому что апплет — это управляемая событиями прикладная программа, в которой не предусмотрены длительные операции. Например, метод paint () не будет вызван до тех пор, пока метод start () не возвратит управление.

Видоизмените апплет, созданный в примере для опробования 14.1, таким образом, чтобы в нем отображалась символьная строка, передаваемая ему в качестве параметра. Добавьте еще один параметр, чтобы задавать время задержки (в миллисекундах) между последовательными сдвигами символов строки. / Простой апплет, отображающий крупный заголовок с использованием параметров. / import java.awt.; import java.applet.; / / public class ParamBanner extends Applet implements Runnable { String msg; int delay; Thread t; boolean stopFlag; // инициализировать переменную t пустым значением null public void init() { String temp; 592 Java /.'руководство для начинающих, 5-е издание msg = getParameter("message"); if(msg == null) msg = " Java Rules the Web "; temp = getParameter("delay"); try { if(temp != null) delay = Integer.parselnt(temp); else delay =250; // Если параметр не задан, // используется значение по умолчанию. } catch(NumberFormatException exc) { delay = 250 ; // Если допущена ошибка, используется // значение по умолчанию. } t = null; } // запустить поток public void start() { t = new Thread(this); stopFlag = false; t. start(); } // Точка входа в поток, манипулирующий крупным заголовком, public void run() { char ch; // отобразить крупный заголовок снова for( ; ; ) { try { repaint(); Thread.sleep(delay); * ch = msg.charAt(0); msg = msg.substring(1, msg.length()); msg += ch; if (stopFlag) break; } catch(InterruptedException exc) {} } } // остановить отображение крупного заголовка public void stop() { stopFlag = true; t = null; } // отобразить крупный заголовок public void paint(Graphics g) { g.drawString(msg, 50, 30); Приложение А. Ответы на вопросы для самопроверки 593. } }