[an error occurred while processing this directive] IT • archiv :: Print

IT • archiv


[an error occurred while processing this directive]

[an error occurred while processing this directive]

Небылицы?

[an error occurred while processing this directive](none) [an error occurred while processing this directive](none)[an error occurred while processing this directive] ::
[an error occurred while processing this directive](none)
[an error occurred while processing this directive]([an error occurred while processing this directive](none)[an error occurred while processing this directive])

[an error occurred while processing this directive](none)
Java Q&A
PDF versionPDF версия

Я видел веб-сайт, на котором курсор мыши превратился в рыбу с 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/

Ну а теперь, как и обещано, полный код апплета:

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 November 1999 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

[an error occurred while processing this directive]
[an error occurred while processing this directive] Перевод на русский © Сергей Миссан, 2000
< Вернуться на caйт :: Copyright © 1999 — 2010, IT • archiv.