GUI-鼠标监听
鼠标监听:使用鼠标监听的适配器(MouseAdapter),不用重写所有方法。
public class Application {
public static void main(String[] args) {
new MyFrame();
}
}
class MyFrame extends Frame{
public MyFrame(){
init();
}
public void init() {
// 设置窗口大小,坐标
setBounds(200, 200, 400, 400);
// 添加鼠标监听按钮
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
System.out.println("鼠标按下");
}
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("鼠标点击:鼠标按下和放开");
}
@Override
public void mouseReleased(MouseEvent e) {
System.out.println("鼠标放开");
}
});
// 关闭窗口
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
// 终止程序
System.exit(0);
}
});
// 设置窗口显示
setVisible(true);
}
}
鼠标监听和画笔的结合
实现点击显示一个点
public class Application {
public static void main(String[] args) {
new MyFrame();
}
}
class MyFrame extends Frame{
List points;
public MyFrame (){
init();
}
public void init() {
// 设置窗体的位置以及大小
setBounds(200, 200, 500, 600);
// 存储每个点
points = new ArrayList();
// 监听鼠标点击
addMouseListener(new MyMouseListener());
// 实现关闭按钮
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// 设置窗体可见
setVisible(true);
}
@Override
public void paint(Graphics g) {
// 设置画笔颜色
g.setColor(Color.BLUE);
// 获取点存储
Iterator it = points.iterator();
// 遍历点存储
while(it.hasNext()) {
// 获取点
Point point = (Point)it.next();
// 获取点坐标
int x = (int)point.getX();
int y = (int)point.getY();
// 画点
g.fillOval(x, y, 10, 10);
}
}
class MyMouseListener extends MouseAdapter{
@Override
public void mousePressed(MouseEvent e) {
// 获取当前窗口
MyFrame frame = (MyFrame)e.getSource();
// 获取鼠标点击的点
Point point = frame.getMousePosition();
// 把当前的点保存到存储点中
points.add(point);
// 重画,才能实现每个点都被画
frame.repaint();
}
}
}
注意:必须得重画,才能实现点击的每个点被画出来,否则不显示。