I have this code and i can`t understand why I have to drag my mouse on one window (with name Test) and the shape to be printed on another (with no name), instead to drag my mouse on window with name "Test" and the shape to be printed on that window while the other window is useless.
Java:
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.MouseAdapter;
public class ME2 extends Frame{
int x,y,x1,y1;
public ME2(){
setSize(400, 400);
Frame f=new Frame("Test");
f.setSize(300,200);
f.setVisible(true);
f.addWindowListener(new WindowAdapter () {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
addWindowListener(new WindowAdapter () {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.addMouseMotionListener( new MouseMotionListener (){
@Override
public void mouseDragged(MouseEvent e) {
x1=e.getX(); y1=e.getY(); repaint();
}
@Override
public void mouseMoved(MouseEvent e) { }
} );
f.addMouseListener( new MouseAdapter () {
public void mousePressed(MouseEvent e) {
x=e.getX(); y=e.getY();
}
} );
setVisible(true);
}
public static void main(String[] args) {
new ME2();
}
public void paint(Graphics g){
g.drawRect(x,y,x1,y1);
}
class C implements MouseListener,MouseMotionListener {
@Override
public void mouseClicked(MouseEvent e) { }
@Override
public void mouseEntered(MouseEvent e) { }
@Override
public void mouseExited(MouseEvent e) { }
@Override
public void mousePressed(MouseEvent e) {
x=e.getX(); y=e.getY();
}
@Override
public void mouseReleased(MouseEvent e) {
x1=e.getX(); y1=e.getY(); repaint();
}//MouseMotionListener{
@Override
public void mouseDragged(MouseEvent e) { }
@Override
public void mouseMoved(MouseEvent e) {
System.out.println("x= "+e.getX()+" y= "+e.getY());
x=e.getX(); y=e.getY(); s=x+" "+y; repaint();
}
}
}