現在、次のコードを使用してカーソルを描画しています(サイズが大きくなっています)。
Cursor emptyCursor = Toolkit.getDefaultToolkit().createCustomCursor(new BufferedImage(12, 12, BufferedImage.TYPE_INT_ARGB), new Point(0, 0), "empty");
setCursor(emptyCursor);
Toolkit toolkit = Toolkit.getDefaultToolkit();
final long eventMask = AWTEvent.MOUSE_MOTION_EVENT_MASK + AWTEvent.MOUSE_EVENT_MASK + AWTEvent.KEY_EVENT_MASK;
final ImageIcon icon = createImageIcon("images/cursor.png");
cursorLabel = new JLabel(icon);
toolkit.addAWTEventListener(new AWTEventListener() {
public void eventDispatched(AWTEvent e) {
MouseEvent me=(MouseEvent)e;
cursorLabel.setLocation(me.getLocationOnScreen().x, me.getLocationOnScreen().y);
}
}, eventMask);
layeredPane = this.getLayeredPane();
if (icon != null) {
cursorLabel.setBounds(15, 225, icon.getIconWidth(), icon.getIconHeight());
} else {
System.err.println("Cursor Icon not found!");
}
layeredPane.add(cursorLabel);
その後、ボタンに次のコードを使用しました。
button.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent arg0) {
}
public void mouseEntered(MouseEvent arg0) {
button.setBackground(Color.yellow);
}
public void mouseExited(MouseEvent arg0) {
button.setBackground(Color.white);
}
public void mousePressed(MouseEvent arg0) {
}
public void mouseReleased(MouseEvent arg0) {
}
});
カーソルは正常に機能しますが、ボタンの下に描画されているため、ボタンを押さない場合にのみ..何が問題ですか?