Перевод на русский © Сергей Миссан, 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); } }
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
Назад | Содержание | Вперед