В этой статье я постараюсь максимально просто и понятно изложить основы
программирования на языке Delphi
Java для чайников. Урок 26. События в
Java. Класс Event.
С
событиями мы уже сталкивались на
уроке 6,
уроке 10,
уроке 11и
уроке 12. Сегодня рассмотрим их более подробно. В частности, если вы
заметили, для передачи информации о событии используется класс
Event.
И так,
давайте досконально изучим этот класс. Начнем с того, что у этого класса есть
константы, например, ALT_MASK обозначает константу
клавиши ALT. Кроме клавишных констант существуют так
же константы событий. Так же этот класс содержит поля и методы. До них мы еще
дойдем, но сначала рассмотрим пример:
import
java.awt.*;
import
java.applet.*;
public
class
MouseApplet
extends
Applet
{
int
X,Y;
public
void
init()
{
X=-1;
Y=-1;
Font font
=
new
Font("TimesRoman",Font.PLAIN,24);
setFont(font);
resize(400,300);
}
public
void
paint(Graphics
g)
{
if(X!=-1)
g.drawString("Вы
нажали сюда",X,Y);
}
public
boolean
mouseDown(Event
evt,
int
x,
int
y)
{
X=x;
Y=y;
repaint();
return
true;
}
} |
эта
программа выводит надпись в то место, куда вы кликнули мышкой:
Какую еще
информацию мы можем получить при обработке событий мыши? Давайте
поэкспериментируем, перепишем немного наш апплет:
import
java.awt.*;
import
java.applet.*;
public
class
MouseApplet
extends
Applet
{
int
X,Y;
String str;
public
void
init()
{
X=-1;
Y=-1;
str="";
Font font
=
new
Font("TimesRoman",Font.PLAIN,20);
setFont(font);
resize(400,300);
}
public
void
paint(Graphics
g)
{
if(X!=-1)
g.drawString(str,X,Y);
}
public
boolean
mouseDown(Event
evt,
int
x,
int
y)
{
X=x;
Y=y;
str=evt.toString();
repaint();
return
true;
}
} |
Запускаем
программу. Что мы видим? Полную информацию о событии:
Еще один
пример:
import
java.awt.*;
import
java.applet.*;
public
class
MyEvent
extends
Applet
{
String str;
public
void
init()
{
str="Вы
ничего не нажали";
resize(500,200);
}
public
void
paint(Graphics
g)
{
Font font
=
new
Font("TimesRoman",Font.PLAIN,24);
g.setFont(font);
g.drawString(str,70,150);
}
public
boolean
keyDown(Event
evt,
int
key)
{
if(evt.shiftDown())
{
str="Нажата
кнопка
SHIFT + "+(char)key;
}
else
{
str="";
}
repaint();
return
true;
}
} |
Он выводит
сообщение, если нажата клавиша с шифтом:
(С)
Шуравин Александр
|