Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Java_Промышленное программирование1.doc
Скачиваний:
173
Добавлен:
13.04.2015
Размер:
5.58 Mб
Скачать

Вариант b

Для заданий варианта В главы 4 создать графический интерфейс для занесения информации при инициализации объекта класса, для выполнения действий, предусмотренных заданием, и для отправки сообщений другому пользователю системы.

Тестовые задания к главе 13

Вопрос 13.1.

Какой менеджер размещения использует таблицу с ячейками равного размера?

  1. FlowLayout;

  2. GridLayout;

  3. BorderLayout;

  4. CardLayout.

Вопрос 13.2.

Дан код:

import java.awt.*;

public class Quest2 extends Frame{

Quest2(){

Button yes = new Button("YES");

Button no = new Button("NO");

add(yes);

add(no);

setSize(100, 100);

setVisible(true);

}

public static void main(String[] args){

Quest2 q = new Quest2();

} }

В результате будет выведено:

  1. две кнопки, занимающие весь фрейм, YES – слева и NO – справа;

  2. одна кнопка YES, занимающая целый фрейм;

  3. одна кнопка NO, занимающая целый фрейм;

  4. две кнопки наверху фрейма – YES и NO.

Вопрос 13.3.

Какое выравнивание устанавливается по умолчанию для менеджера размещений FlowLayout?

  1. FlowLayout.RIGHT;

  2. FlowLayout.LEFT;

  3. FlowLayout.CENTER;

  4. FlowLayout.LEADING;

  5. указывается явно.

Вопрос 13.4.

Сколько кнопок будет размещено в приведенном ниже апплете?

importjava.awt.*;

public class Quest4 extends java.applet.Applet{

Button b = new Button("YES");

public void init(){

add(b);

add(b);

add(new Button("NO"));

add(new Button("NO"));

}}

  1. одна кнопка с YES и одна кнопка NO;

  2. одна кнопка с YES и две кнопки NO;

  3. две кнопки с YES и одна кнопка NO;

  4. две кнопки с YES и две кнопки NO.

Вопрос 13.5.

Объект JСheckBox объявлен следующим образом:

JCheckBox ob = new JCheckBox();

Какая из следующих команд зарегистрирует его в блоке прослушивания событий?

  1. ob.addItemListener();

  2. ob.addItemListener(this);

  3. addItemListener(this);

  4. addItemListener();

  5. ни одна из приведенных.»

Г

лава 14

ПОТОКИ ВЫПОЛНЕНИЯ

Класс Thread и интерфейс Runnable

К большинству современных распределенных приложений (Rich Client) и Web-приложений (Thin Client) выдвигаются требования одновременной поддержки многих пользователей, каждому из которых выделяется отдельный поток, а также разделения и параллельной обработки информационных ресурсов. Потоки – средство, которое помогает организовать одновременное выполнение нескольких задач, каждую в независимом потоке. Потоки представляют собой классы, каждый из которых запускается и функционирует самостоятельно, автономно (или относительно автономно) от главного потока выполнения программы. Существуют два способа создания и запуска потока: расширение класса Thread или реализация интерфейса Runnable.

// пример # 1 : расширение класса Thread: Talk.java

package chapt14;

public class Talk extends Thread {

public void run() {

for (int i = 0; i < 8; i++) {

System.out.println("Talking");

try {

// остановка на 400 миллисекунд

Thread.sleep(400);

} catch (InterruptedException e) {

System.err.print(e);

}

}

}

}

При реализации интерфейса Runnable необходимо определить его единственный абстрактный метод run(). Например:

/* пример # 2 : реализация интерфейса Runnable: Walk.java: WalkTalk.java */

package chapt14;

public class Walk implements Runnable {

public void run() {

for (int i = 0; i < 8; i++) {

System.out.println("Walking");

try {

Thread.sleep(400);

} catch (InterruptedException e) {

System.err.println(e);

}

}

}

}

package chapt14;

public class WalkTalk {

public static void main(String[] args) {

// новые объекты потоков

Talk talk = new Talk();

Thread walk = new Thread(new Walk());

// запуск потоков

talk.start();

walk.start();

//Walk w = new Walk(); // просто объект, не поток

// w.run(); //выполнится метод, но поток не запустится!

}

}

Использование двух потоков для объектов классов Talk и Walk приводит к выводу строк: Talking Walking. Порядок вывода, как правило, различен при нескольких запусках приложения.