📄 example18_7.java.bak
字号:
import java.awt.*;import java.awt.event.*;import java.applet.*;
import javax.swing.SwingUtilities;
public class Example18_6 extends Frame implements MouseListener,MouseMotionListener
{ Button button;
int x,y;
boolean move=false;
Example18_6()
{ button=new Button("按钮");
button.addMouseListener(this);
button.addMouseMotionListener(this);
addMouseMotionListener(this);
setLayout(new FlowLayout());
add(button);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
});
setBounds(10,10,200,180);
setVisible(true); validate();
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e)
{ move=false;
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseClicked(MouseEvent e){}
public void mouseMoved(MouseEvent e){}
public void mouseDragged(MouseEvent e)
{ Button b=null;
if(e.getSource() instanceof Button) //在按钮上拖动鼠标导致按钮上发生鼠标事件。
{ b=(Button)e.getSource();
move=true;
//将鼠标拖动事件转移到棋盘,导致棋盘上发生鼠标拖动事件:
e=SwingUtilities.convertMouseEvent(button,e,this);
//并将从按钮转移得到的鼠标事件e传递给mouseDragged方法的参数。
}
if(e.getSource()==this)
{ if(move&&b!=null)
{ x=e.getX(); y=e.getY();
int w=b.getSize().width,h=b.getSize().height;
b.setLocation(x-w/2,y-h/2);
}
}
}
public static void main(String args[])
{ new Example18_6();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -