Классы являются основными строительными блоками любой Java-программы. Пакеты содержат в себе наборы классов (а также исключения и интерфейсы).



Основное назначение пакетов - создание библиотек кода. Пакеты используются для организации и категоризации классов.

Импортирование пакетов. Существует ряд способов доступа к классам в пакетах, основным из которых является импортирование пакета в начале программ:

import ИмяПакета .*;

или

import ИмяПакета.ИмяКлассаПакета;

В этом случае импортирование просто должно предшествовать всем другим строкам программы. Например:

import java.applet.*; // импортируются все public классы пакета

import java.awt.*;

import java.net.URL ; // импортируется только указанный класс

Надо заметить, что импортируются всегда только классы, которые используютсяв программе. После этого классы можно использовать просто по именам, без указания на принадлежность тому или иному пакету, например:

ИмяКласса Obj =  new ИмяКласса(<Параметры>);

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

ИмяПакета.ИмяКласса Obj =                                                                                                             

                  new ИмяПакета.ИмяКласса(Параметры);

Создание пакетов. Для создания пакета (т.е. добавления класса в пакет) в первой строке программы указывается следующее предложение:

package ИмяПакета;

Содержимое пакета может храниться в одном или нескольких файлах. Каждый такой файл должен содержать только один общедоступный (public) класс. При компиляции этих файлов, получающиеся в результате файлы с расширением .class, будут помещены в каталог, с именем пакета.

Апплеты

 

Апплеты выполняются под управлением виртуальной машины Java, встроенной в браузер. Апплет встраивается в документ HTML и выглядит как окно заранее заданного размера. Он может рисовать в своем окне произвольные изображения или текст. Двоичный файл с исполняемым кодом Java располагается на Web-сервере. В документ HTML с помощью специального оператора организуется ссылка на этот двоичный файл. Когда пользователь загружает в браузер документ HTМL с апплетом, файл апплета переписывается с Web-сервера на локальный компьютер пользователя.

 

Настройка запуска апплета двойного назначения в NetBeans 7.0

1. Щелкаем правой кнопкой по названию проекта и выбираем Properties.

2. В появившемся окне выбираем вкладку Web Start (рис. 1.6).

 

Рис.1.6. Задание параметров апплета

 

Активируем Enable Web Start. Выбираем в списке Codebase «Local Execution». Выбираем опцию Applet descriptor. Кнопка «Applet Parameters…» открывает окно редактирования параметров.

Здесь можно настроить ширину и высоту окна апплета, а также задать любой набор параметров. Примечательно, что в данной версии NetBeans для того чтобы текстовый параметр сохранился, после ввода текста надо нажать Enter.

3. Для апплета двойного назначения важно наличие главного класса, т.е. класса содержащего метод public static void main(String[] args). Для настройки в окне Properties выбираем вкладку Run (рис.1.7).

Комбобокс Configuration определяет способ запуска. Web Start – для апплета, <default config> - обычный запуск.

В строке Main Class необходимо выбрать главный класс. Без этого приложение не сможет запуститься в десктопном режиме.

Поле Arguments задает параметры командной строки. Параметры передаются с метод main через массив строк String[] args.

 

Рис.1.7. Задание параметров апплета двойного назначения

 

Исходный текст Java-файла простейшего апплета выглядит следующим образом:

 

import java.applet.*;

import java.awt.*;

 

public class Hello extends Applet{

public void init() {

resize(150,150);

}

public void paint(Graphics g) {

g.drawString("Hello, WWW", 10, 20);

}

}

 

При первом запуске апплета в NetBeans в папке build проекта создается файл HTML-документа со ссылкой на апплет, например:

 

<html>

<head> <title>Hello</title> </head>

<body>

<applet codebase="classes" code="javaapplication1/Hello.class"

 height=200></applet>

</body>

</html>

 

Класс Hello определяется как public, а это значит, что он доступен для других объектов. Кроме того, явно установлен суперкласс Applet (java.applet.Applet). Этот класс должны расширять все апплеты.

Усовершенствованная программа Hello перерисовывает строчку текста в той точке, где пользователь щелкнул мышью.

 

Пример 1. 4. Файл Hello.java

import javax.swing.event.MouseInputAdapter;

import java.applet.*;

import java.awt.*;

import java.awt.event.MouseEvent;

 

public class Hello extends Applet {

  int curX=50, curY=50;

MouseInputAdapter p;

  public Hello() {

     // обработчик события

    p = new MouseInputAdapter(){

    public void mousePressed(MouseEvent e) {                   

          curX=e.getX(); curY=e.getY();

          repaint();

    }};

  this.addMouseListener(p);

}

public void init() {

resize(640,480);

}

public void paint(Graphics g) {

 g.drawString("Hello, WWW",curX,curY);

}

}

Обратите внимание, что в методе mousePressed вызывается метод repaint(). Этот метод сообщает оболочке времени выполнения, что необходимо обновить изображение в окне. В примере жирным шрифтом выделен код, связанный с обработкой события. В приведенном коде используется анонимный класс, созданный на основе класса MouseInputAdapter,в котором переопределен метод mousePressed.

 

Основные методы класса Applet. В первичном классе апплета необходимо определить как минимум два метода – init и paint. Метод init выполняет инициализацию апплета, а с помощью метода paint выполняется отрисовка апплета. Другие методы определяются в случае необходимости создания некоторых специальных эффектов.

В методе init() по умолчанию вызывается метод resize(), определенный в суперклассе. При помощи этого оператора изменяются размеры окна апплета, установленные в параметрах тега <APPLET>.

Перед удалением апплета из памяти вызывается метод destroy(), определенный в классе Applet как пустая заглушка. В методе destroyможно выполнить все необходимые операции перед удалением апплета.

Метод start() вызывается после метода init() в тот момент, когда пользователь начинает просматривать документ HTML со встроенным в него апплетом. Метод start()можно модифицировать, если при каждом посещении пользователем страницы с апплетом необходимо выполнять какую-либо инициализацию.

Обратным методу start() является метод stop(). Он вызывается, когда пользователь покидает страницу с апплетом и загружает в окно навигатора другую страницу. Этот метод вызывается перед вызовом метода destroy(). Метод stop() можно дополнить кодом, который должен работать при остановке апплета.

Метод paint() выполняет рисование в окне апплета. Определение этого метода находится в классе java.awt.Component.

 

Передача параметров апплету. Параметры апплетов следуют после открывающего HTML-тега <APPLET> и перед закрывающим тегом </APPLET>. Они определяются как пары, состоящие из двух опций - NAME (имя) и VALUE (значение), внутри тегов <PARAM>, например как в этом примере HTML-документа:

 

<applet code=Hello.class height=200>

<param name=first value="Hello!">

<param name=second value="How are you?">

<!-- Здесь можно расположить альтернативный текст,

выводящийся в окнах навигаторов, не поддерживающих работу апплетов -->

</applet>

 

Для того, чтобы получить значения этих параметров в апплете, необходимо использовать метод getParameter(), определенный в классе Applet, например:

String firstParam=getParameter("first");

String secondParam=getParameter("second");

Теперь переменные firstParam и secondParam содержат строки "Hello!" и "How are you?" соответственно.

Поскольку метод getParameter() всегда возвращает строки, то для получения численного значения параметра необходимо сделать преобразование в число, напрмер:

String loopString=getParameter("loop");

int loopInt=Integer.valueOf(loopString).intValue();

Создадим шаблон апплета AppletWithParam, который имеет возможность обрабатывать параметры.

 


Дата добавления: 2018-04-15; просмотров: 290; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!