Hallo,
ich habe ein Programm das beim Starten einen Kreis in der Mitte des Fensters zeigt. Wenn sich die Maus innerhalb des Fensters bewegt, soll der Kreis mitgehen.
Der Code wird ohne Fehler Compiliert, ich denke daher das ich einen logischen Fehler eingebaut habe. Ich hoffe das mir jemand den Fehler aufzeigen kann.
ich habe ein Programm das beim Starten einen Kreis in der Mitte des Fensters zeigt. Wenn sich die Maus innerhalb des Fensters bewegt, soll der Kreis mitgehen.
Der Code wird ohne Fehler Compiliert, ich denke daher das ich einen logischen Fehler eingebaut habe. Ich hoffe das mir jemand den Fehler aufzeigen kann.
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MouseMotion implements MouseMotionListener
{
int x;
int y;
MouseMotion()
{
JFrame wrapper = new JFrame("MouseMotion");
wrapper.setSize(400,300);
wrapper.setLocation(250,250);
wrapper.setResizable(true);
wrapper.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
x = (int) (wrapper.getWidth() / 2) - 40;
y = (int) (wrapper.getHeight() / 2) - 40;
Container content = wrapper.getContentPane();
OvalLabel paintOval = new OvalLabel();
paintOval.addMouseMotionListener(this);
content.add(paintOval);
content.setBackground(Color.gray);
wrapper.setVisible(true);
}
class OvalLabel extends JLabel
{
public void paintComponent(Graphics oval)
{
super.paintComponent(oval);
oval.setColor(new Color(255,0,0));
oval.fillOval( x,y,40,40);
}
}
public void mouseDragged(MouseEvent evt){}
public void mouseMoved(MouseEvent evt)
{
OvalLabel newOval = (OvalLabel)evt.getSource();
newOval.repaint(evt.getX(), evt.getY(), 40, 40);
}
public static void main(String[] args)
{
MouseMotion mm = new MouseMotion();
}
}