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

Базовые понятия языка Java Учебник

. Java имеет собственные характерные черты. Во-первых, в отличие от других языков программирования, в которых программы компилируются для конкретных типов процессоров, Java создает машинно-независимый промежуточный код, называемый "кодом виртуальной машины". И только при выполнении апплета или запуске автономной программы вызывается так называемая "виртуальная машина Java", которая переводит этот код в двоичный код конкретного процессора.

Литература по Java

Перечислим здесь только основные, официальные и почти официальные издания, более полное описание чрезвычайно многочисленной литературы дано в списке литературы в конце книги.

Полное и строгое описание языка изложено в книге The Java Language Specification, Second Edition. James Gosling, Bill Joy, Guy Steele, Gilad Bracha. Эта книга в электронном виде находится по адресу /books/jls/second_edition/html/j.title.doc.html и занимает в упакованном виде около 400 Кбайт.

Столь же полное и строгое описание виртуальной машины Java изложено в книге The Java Virtual Machine Specification, Second Edition. Tim Lindholm, Frank Yellin. В электронном виде она находится по адресу

Здесь же необходимо отметить книгу "отца" технологии Java Джеймса Гос-линга, написанную вместе с Кеном Арнольдом. Имеется русский перевод Гослинг Дж., Арнольд К. Язык программирования Java: Пер. с англ. — СПб.: Питер, 1997. — 304 с.: ил.

Компания SUN Microsystems содержит на своем сайте постоянно обновляемый электронный учебник Java Tutorial, размером уже более 14 Мбайт: . Время от времени появляется его печатное издание The Java Tutorial, Second Edition: Object-Oriented Programming for the Internet. Mary Campione, Kathy Walrath.

Полное описание Java API содержится в документации, но есть печатное издание The Java Application Programming Interface. James Gosling, Frank Yellin and the Java Team, Volume 1: Core Packages; Volume 2: Window Toolkit and Applets.

Обработка событий мыши

Для того чтобы уметь обрабатывать события мыши, апплет должен раскрывать интерфейсы
" MouseListener (содержит методы mouseClicked, mouseEntered, mouseExited, mousePressed, mouseReleased) и/или
" MouseMotionListener (содержит методы mouseDragged и mouseMoved),
например
public class mouseEvents extends Applet
implements MouseListener, MouseMotionListener

В функции init данного апплета нужно назначить слушателя для отслеживания событий мыши. Обычно в роли слушателя выступает сам апплет:

public void init()
{
addMouseListener( this );
addMouseMotionListener( this );
}

Мы рассматриваем апплет, который реагирует на следующие события: нажатие (Up) и отпускание (Down) левой кнопки мыши, простое перемещение мыши (Move) и перемещение мыши при нажатой левой кнопке (Drag). Информация о том, какое событие и с какими координатами произошло, записывается в следующие переменные:

String mouseEvent;
String mouseMoveEvent;
String mouseDragEvent;
String ctrl;

а затем выводится в окно апплета функцией paint.
Любой апплет, который раскрывает какой-либо интерфейс, должен предоставлять код для всех методов этого интерфейса, даже если какой-либо метод и не используется (в этом случае метод просто будет иметь пустое тело), например

public void mouseClicked(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
int x=e.getPoint().x;
int y=e.getPoint().y;
mouseEvent="mouse Up="+x+","+e.getPoint().y;
repaint();
}
public void mousePressed(MouseEvent e)
{
int x=e.getPoint().x;
int y=e.getPoint().y;
mouseEvent="mouse Down="+x+","+e.getPoint().y;
if (e.isControlDown())
ctrl="Control is down";
repaint();
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mouseMoved(MouseEvent e)
{
int x=e.getPoint().x;
int y=e.getPoint().y;
mouseMoveEvent="mouse Move="+x+","+y;
repaint();
}
public void mouseDragged(MouseEvent e)
{
int x=e.getPoint().x;
int y=e.getPoint().y;
mouseDragEvent="mouse Drag="+x+","+y;
repaint();
}
public void paint(Graphics g)
{
if (mouseEvent!=null)
{
g.drawString(mouseEvent, 5, 15);
mouseEvent=null;
}
if (mouseMoveEvent!=null)
{
g.drawString(mouseMoveEvent, 5, 35);
mouseMoveEvent=null;
}
if (mouseDragEvent!=null)
{
g.drawString(mouseDragEvent, 5, 55);
mouseDragEvent=null;
}
if (ctrl!=null)
{
g.drawString(ctrl, 5, 75);
ctrl=null;
}
}

 

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