2013-11-11 3 views
0

Я искал здесь несколько потоков, но ни один из них не помог.Использование пользовательского курсора

У меня есть несколько JFrames, и каждый JFrame должен иметь свой собственный индивидуальный указатель, символизирующий, какую версию программы использует пользователь. Эти файлы находятся в/AndroidToolkit/resources. Файлы - это файлы .cur, поэтому они на самом деле являются правильными курсорами, а не только изображениями.

Я пробовал несколько способов сделать это, но я преуспел. Я попытался с помощью ImageIO, Toolkit, и моя последняя попытка была:

Cursor cCur = Toolkit.getDefaultToolkit().createCustomCursor(getClass().getResource("../resources/ImpressionCursor.cur").getFile()., null, null); 

Как я могу сделать это в легком пути, который легко для других людей, чтобы понять, без меня, всегда прокомментирует с 10k линии?

Спасибо заранее, Удары

+1

'getResource (" ../ resources/ImpressionCursor.cur "). getFile()' - плохая идея (часть 'getFile'),' getResource 'возвращает' URL', поэтому он должен использоваться с 'ImageIcon'. 'createCustomCursor' не принимает файл' .cur', это концепция, зависящая от ОС, поэтому вам также необходимо предоставить точку доступа и имя для курсора. – MadProgrammer

+1

@AndrewThompson Только один кадр загружается в любой момент времени. – SimonC

+0

* «Только один кадр загружается в любой момент». * Кажется, вы используете компоненты GUI для создания своего рода «мастера» API, который лучше подходит для одного кадра и «CardLayout». –

ответ

0

Это то, что вам нужно, попробуйте этот код 100% работает для меня на Ubuntu 12.04 LTS, он должен работать для вас тоже:

public static void main(String[] args) { 

     Toolkit toolKit = Toolkit.getDefaultToolkit(); 
     Image pencil = toolKit.getImage("pencil.gif"); 
     Cursor cursor = toolKit.createCustomCursor(pencil, new Point(0, 0), "Pencil"); 

     JFrame frame = new JFrame("Cursor Test"); 
     frame.setSize(300, 300); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setLocationRelativeTo(null); 

     frame.setCursor(cursor); 
     frame.setVisible(true); 

    } 

это ссылка на файл gif click here, Я надеюсь, что это поможет, Salam

+0

Спасибо. Я попробую :) – SimonC

+0

Добро пожаловать;) – BilalDja

Смежные вопросы