请帮助我解决问题。当lblCur输入lblBnt时,Mousemouse事件无法正常工作。它看起来像滞后的,差的FPS或类似的东西。在jLabel中使用mousemove事件创建自定义光标
如果我删除lblBtn.addMouseListener(...),lblBg.addMouseMotionListener(...)工作正常!但我不能让事件,当我在lblBnt点击...
代码:http://pastebin.com/ZBJySGEq
public myjFrame()
{
setCursor(Toolkit.getDefaultToolkit().createCustomCursor(new ImageIcon(UrlImg("cur_empty.png")).getImage(),new Point(0,0),"cursor_default"));
this.setLayout(new BorderLayout());
lblBg= new JLabel();
lblBg.setIcon(new ImageIcon(UrlImg("main_menu_bg.png")));
lblBg.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseDragged(java.awt.event.MouseEvent evt) {
cMouseDragged(evt);
}
public void mouseMoved(java.awt.event.MouseEvent evt) {
cMouseMoved(evt);
}
});
this.add(lblBg);
lblBg.setLayout(null);`
lblBtn= new JLabel();
lblBtn.setIcon(new ImageIcon(UrlImg("choi.png")));
lblBtn.setBounds(120, 310, 345, 132);
lblBtn.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
lblChoiMouseClicked(evt);
}
public void mouseEntered(java.awt.event.MouseEvent evt) {
lblChoiMouseEntered(evt);
}
public void mouseExited(java.awt.event.MouseEvent evt) {
lblChoiMouseExited(evt);
}
});
lblBg.add(lblBtn);
lblCur= new JLabel();
lblCur.setIcon(new ImageIcon(UrlImg("cur_def.png")));
lblCur.setBounds(200, 200, 155, 155);
lblCur.setText("");
lblBg.add(lblCur);
}
private void cMouseMoved(java.awt.event.MouseEvent evt) {
lblBg.add(lblBtn);
lblCur.setLocation(evt.getX()-40,evt.getY()-40);
}
private void cMouseDragged(java.awt.event.MouseEvent evt) {
lblCur.setLocation(evt.getX()-40,evt.getY()-40);
}
private void lblChoiMouseEntered(java.awt.event.MouseEvent evt) {
lblBtn.setIcon(new ImageIcon(UrlImg("choi_hover.png")));
}
private void lblChoiMouseExited(java.awt.event.MouseEvent evt) {
lblBtn.setIcon(new ImageIcon(UrlImg("choi.png")));
}
private void lblChoiMouseClicked(java.awt.event.MouseEvent evt) {
this.dispose();
}
public static void main(String[] args) {
myjFrame main= new myjFrame();
main.setBounds(100, 100, 769,892);
main.setVisible(true);
}
}
项目:https://drive.google.com/open?id=0Bw0by9qPYJ8TTWoydGtGbHZMbU0
提前感谢!
你在哪里渲染?读完代码后,我找不到重绘() – user7185318
在论坛中发布适当的[mcve]问题,而不是在外部网站上。 – camickr
请在此处发布可疑代码,而不是其他链接 – HenryM