Небылицы?
Перевод на русский © Сергей Миссан, 2000
Оригинал статьи опубликован на сайте Javable.com
Java Q&A
Я видел веб-сайт, на котором курсор мыши превратился в рыбу с 5-ю слоями. Это вдохновило меня на то, чтобы превратить курсор на моей домашней страничке в музыкальную ноту с использованием 3-х слоев. Как мне это сделать?
В Java есть возможность создания курсоров мыши из любого изображения. Для этого нужно встроить Java апплет с измененным курсором в ваш HTML.
Создание курсора выполняется методом в java.awt.Toolkit из API:
public Cursor createCustomCursor
(Image cursor, Point hotSpot, String name)
throws IndexOutOfBoundsException
Toolkit-- это абстрактный класс, поэтому сначала нужно получить нативную реализацию:
Toolkit tk = panel.getToolkit();
Потом создать курсор:
Cursor cursor =
tk.createCustomCursor
(img, hotSpot, name);
И установить курсор для панели:
panel.setCursor(cursor);
(Полный код апплета показан ниже.)
К сожалению, создание курсоров возможно только в JDK 1.2 и выше. Это означает, что большинство веб-броузеров не будет их поддерживать, так как они используют только JDK 1.1. Один из выходов -- это использование Java Plug-in для JDK 1.2, который работает, как и любой другой plug-in броузера. Тут вы можете найти дополнительную информацию:
http://www.javasoft.com/ products/plugin/index.html
Ну а теперь, как и обещано, полный код апплета:
import java.awt.*;
import java.applet.*;
public class CursorApplet
extends Applet {
public void init() {
//загрузить изображение через Media Tracker
MediaTracker tracker = new MediaTracker(this);
Image cursor = getImage
(getCodeBase(), "music_note.gif");
tracker.addImage(cursor, 0);
try
{
tracker.waitForID(0);
} catch
(InterruptedException ie)
{
ie.printStackTrace();
}
Cursor cr = null;
//получить toolkit
Toolkit tk = getToolkit();
try
{
//это x,y координаты изображения
//которые действительно "щелкают"
Point hotSpot = new Point(1, 1);
//создаем наш курсор
cr = tk.createCustomCursor(
cursor, hotSpot, "music_note");
} catch (IndexOutOfBoundsException e) {
e.printStackTrace();
}
//устанавливаем курсор для апплета
setCursor(cr);
}
}
Об авторе
Random Walk Computing это наибольшая консалтинговая фирма в Нью Йорке, специализирующаяся на Java/CORBA решениях для предприятий. Известные своим выдающимся знанием Java, консультанты Random Walk публикуются и выступают на самых престижных форумах мира. Для связи с Random Walk используйте
javaqa@javaworld.com.
Reprinted with permission from the March 2000 edition of JavaWorld magazine.
Copyright © ITworld.com, Inc., an IDG Communications company.
View the original article at: http://www.javaworld.com/javaworld/javaqa/1999-11/01-qa-fish_p.html
Назад |
Содержание |
Вперед