Delphi | Сети | ПК | Маршрутизаторы | Моделирование | Протоколы | Экспертные системы | Удаленный доступ | Доменные имена
Аплеты | SQL | Надежность | Задачи | Информационные процессы | JAVA | Отказы изделия | Расчет надежности показателей | Инфсис

Основные компоненты в Java

Для работы с Java необходимы следующие программные средства: " JDK, " графическая оболочка, " справочная система. Базовая часть средств разработки программ на Java представлена в программном комплексе JDK (Java Developer Kit) от компании Sun. Не путайте JDK с JRE (Java Runtime Environment). Второй является составной частью первого и служит только для запуска Java-программ, но никак не для их создания.

Компоненты для ввода текста

В библиотеке AWT есть два компонента для ввода текста с клавиатуры: TextField, позволяющий ввести только одну строку, и И TextArea, в который можно ввести множество строк.

Оба класса расширяют класс Textcomponent, в котором собраны их общие методы, такие как выделение текста, позиционирование курсора, получение текста.

Класс TextComponent

В классе TextComponent нет конструктора, этот класс не используется самостоятельно.

Основной метод класса — метод getText () — возвращает текст, находящийся в поле ввода, в виде строки string.

Поле ввода может быть нередактируемым, в этом состоянии текст в поле нельзя изменить с клавиатуры или мышью. Узнать состояние поля можно логическим методом isEditabieo, изменить значения в нем — методом setEditable(boolean editable).

Текст, находящийся в поле, хранится как объект класса string, поэтому у каждого символа есть индекс (у первого — индекс 0). Индекс используется для определения позиции курсора (caret) методом getCaretPosition(), для установки позиции курсора методом setcaretpositionfint ind) и для выделения текста.

Текст выделяется, как обычно, мышью или клавишами со стрелками при нажатой клавише <Shift>, но можно выделить его из программы метбдом select tint begin, int end). При этом помечается текст от символа с индексом begin включительно, до символа с индексом end исключительно.

Весь текст выделяет метод selectAlK). Можно отметить начало выделения методом setseiectionstart (int ind) и конец выделения методом setSelectionEnd(int ind).

Важнее все-таки не задать, а получить выделенный текст. Его возвращает метод getSeiectedText (), а начальный и конечный индекс выделения возвращают методы getSelectionStart() и  getSelectionEnd().

События

Кроме событий класса Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent , при изменении текста пользователем происходит

Использование сервлетов для генерации GIF-изображений

Задача генерации изображений возникает достаточно часто в случае построения динамических рисунков, зависящих от тех или иных условий. Информация для построения картинок может выбираться из базы данных или задаваться пользователем с помощью HTML-форм. Типичным примером такой задачи является построение диаграмм.
Средствами языка Java можно создать изображение в рабочей области апплета (см. главу 3). Однако этот способ имеет один недостаток (общий для всех клиентских технологий) - зависимость от версии и настроек браузера. Есть только один способ преодолеть этот недостаток - возложить функции, выполняемые на стороне клиента, на сервер. Этот способ имеет и очевидное преимущество - генерация осуществляется в одном из стандартных форматов изображений, которые "понимают" все широко используемые браузеры (например, в формате gif).
Для создания изображения и отправки его в том или ином графическом формате в выходной поток разработаны различные пакеты классов. Мы будем использовать один из наиболее известных классов - GifEncoder (его автор Джеф Посканзер), который находится в пакете Acme (его можно найти на сайте http://www.acme.com).
Рассмотрим сервлет, генерирующий и отсылающий клиенту изображение.
// Пример сервлета, генерирующего gif-изображение "Колобок"

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.awt.*;
import Acme.JPM.Encoders.GifEncoder;

public class Kartinki extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{

// Создадим системный объект, играющий роль окна
// (поскольку сервер никаких окон не открывает)
Frame f=new Frame();
f.addNotify();
// Зададим параметры "окна"
int width=700;
int height=330;
// Создадим объект класса Image
Image img=f.createImage(width,height);
// Создадим объект канвы для работы с графикой
Graphics g=img.getGraphics();
// Рисуем в этом объекте, все, что захотим
// Например, рисуем колобка
g.setColor(Color.yellow);
g.fillOval(300,70,150,150); //лицо
g.setColor(Color.black);
g.fillOval(340,110,15,15); //левый глаз
g.fillOval(400,110,15,15); //правый глаз
g.drawArc(325,100,100,100,0,-180); // улыбка
// Укажем MIME-тип содержимого динамически
// создаваемого документа
response.setContentType("image/gif");
// Получим доступ к выходному потоку
// Так как мы выводим бинарные данные, используем
// метод getOutputStream класса HttpServletResponse
OutputStream out1=response.getOutputStream();
// Отправим наш объект класса Image
// в gif-формате в выходной поток.
// Изображение и поток вывода передаются в качесте
// параметров в конструктор класса GifEncoder
GifEncoder encoder;
encoder = new GifEncoder(img, out1);
encoder.encode();
}
}

Математический анализ, лекции по физике Компьютерные сети