Ich habe Probleme beim Zeichnen von Rechtecken an der Mausposition. Das gemalte Rechteck liegt hinter dem Mauszeiger, wenn die Maus bewegt wird. Gibt es eine Möglichkeit sicherzustellen, dass sich das Rechteck genau auf der Maus bewegt und nicht hinterherhinkt?Verzögerung beim Zeichnen von Objekten zum Bewegen mit der Maus
Hier ist ein kleines Beispiel, obwohl, da dies nur ein einzelnes Rechteck ist, die Verzögerung sehr gering ist, aber es ist da. In dem größeren Programm male ich eine Menge von ihnen auf einmal, obwohl ich nur die eine bewege.
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.*;
public class MouseTest {
JFrame window;
DrawPanel content;
public MouseTest(){
window = new JFrame("Test");
content = new DrawPanel();
window.setContentPane(content);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setVisible(true);
window.pack();
}
public static void main (String[] args){
MouseTest test = new MouseTest();
}
private class DrawPanel extends JPanel implements MouseMotionListener {
int mouseX;
int mouseY;
private DrawPanel(){
setBackground(Color.BLUE);
setPreferredSize(new Dimension(400,400));
addMouseMotionListener(this);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.RED);
g.fillRect(mouseX, mouseY, 20, 20);
}
@Override
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent e) {
mouseX = e.getX();
mouseY = e.getY();
repaint();
}
}
}
ist die Option "doppelt gepuffert" Standard? ... nur dies auf einmal zu beweisen –
konnte nicht Ihre Verzögerung reproduzieren. – Favonius