Недавно я купил новый компьютер и перенес свои проекты со старого на новый. Я сделал компиляцию всех своих проектов, и все они работали нормально, и большинство из них все еще работают на моем новом компьютере, но в одном проекте, в частности, не отображался пользовательский курсор, который я переместил. Я убедился, что переместил изображение с проектом, чтобы исключить это. Я переписал исходный код, чтобы он соответствовал новому местоположению на моем новом компьютере, но он по-прежнему не отображается. Это дает мне сообщение об ошибке:
Exception in thread "main" java.lang.IndexOutOfBoundsException: invalid hotSpot
at sun.awt.CustomCursor.<init>(Unknown Source)
at sun.awt.windows.WCustomCursor.<init>(Unknown Source)
at sun.awt.windows.WToolkit.createCustomCursor(Unknown Source)
at wtalfvn.Window.<init>(Window.java:32)
at wtalfvn.Main.main(Main.java:9)
Мой старый компьютер 32-битный, а мой новый 64-битный, оба работают на Windows 7, я использую eclipse Kepler, но имеет ли это значение при использовании Cursor и Toolkit?
Вот мой код, который я использовал для создания своего курсора
Image cursor = Toolkit.getDefaultToolkit().getImage("graphx/PNG/cursor.png");
Cursor c = Toolkit.getDefaultToolkit().createCustomCursor(cursor,new Point(this.getX(),this.getY()), "cursor");
this.setCursor(c);
РЕДАКТИРОВАТЬ: Вот весь код для тех, кто хочет его увидеть.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Window extends JFrame{
Image ico= Toolkit.getDefaultToolkit().getImage("graphx/ico/icon.PNG");
TextBox tb=new TextBox();
public Window(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(800,600);
setVisible(true);
setFocusable(true);
getContentPane().setBackground(Color.BLACK);
setIconImage(ico);
setLocationRelativeTo(null);
setResizable(false);
setTitle("MYTITLE");
addKeyListener(new KeyAdapter(){
public void keyTyped(KeyEvent e) {
if (e.getKeyChar()==KeyEvent.VK_ESCAPE){
System.exit(0);
}
}
});
Image cursor = Toolkit.getDefaultToolkit().getImage( getClass().getResource("/graphx/PNG/cursor.png"));
Cursor c = Toolkit.getDefaultToolkit().createCustomCursor(cursor,new Point(this.getX(),this.getY()), "cursor");
setCursor(c);
}
}
this.getX
иthis.getY
, для меня они означают расположение компонентов, но это может быть не так. - person MadProgrammer   schedule 28.05.2014getX
иgetY
не являются подходящими методами для активной точки курсора в этом контексте. - person MadProgrammer   schedule 28.05.2014