Java中三种监听-鼠标监听-键盘监听-窗口监听

该文章展示了如何使用JavaAWT库进行图形绘制,包括创建窗口、绘制实心圆、矩形,以及添加鼠标监听来实现画图功能。同时,文章还涵盖了窗口关闭监听和键盘事件监听,例如检测上箭头键的按下。
摘要由CSDN通过智能技术生成
package lesson03;

import java.awt.*;

public class PaintTest {
    public static void main(String[] args) {
    new MyPaint().loadFrame();
    }
}
class MyPaint extends Frame{
    public void loadFrame(){
        setBounds(100,100,700,400);
        setVisible(true);
    }

    @Override
    public void paint(Graphics g) {
        //super.paint(g);
        //画笔
        g.setColor(Color.red);
        //g.drawOval(100,100,100,100);//画一个空心圆
        g.fillOval(100,100,100,100);//画一个实心圆
        g.setColor(Color.GREEN);
        g.fillRect(200,100,100,100);
        //画笔用完还原为最初的颜色。

    }
}

鼠标监听

目的:使用鼠标实现画图功能

package lesson03;

import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Iterator;

public class MouseListenerTest {
    public static void main(String[] args) {
    new MyFrame("画笔");
    }
}
class MyFrame extends Frame{
    ArrayList points;
    public MyFrame(String title)  {
        super(title);
        setBounds(200,200,400,300);
        setVisible(true);
        this.addMouseListener(new MyMouseListener());
        points=new ArrayList<>();
    }

    @Override
    public void paint(Graphics g) {

       Iterator iterator =points.iterator();
       while(iterator.hasNext()){
          Point point =(Point)iterator.next();
          g.setColor(Color.blue);
          g.fillOval(point.x,point.y,10,10);
       }
    }
    void addPoint(Point point){
        points.add(point);
    }

    private class MyMouseListener extends MouseAdapter{
        @Override
        public void mousePressed(MouseEvent e) {
            MyFrame myFrame=(MyFrame)e.getSource();
            myFrame.addPoint(new Point(e.getX(),e.getY()));
            repaint();
        }
    }
}

窗口监听

package lesson03;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class WindowTest {
    public static void main(String[] args) {
    new WindowFrame();
    }
}
class WindowFrame extends Frame{
    public WindowFrame()  {
        setBounds(100,100,200,200);
        setBackground(new Color(36, 34, 151));
        setVisible(true);
        addWindowListener(new MyWindow());
    }
    class MyWindow extends WindowAdapter{
        @Override
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    }
}

键盘监听

package lesson03;

import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.security.Key;

public class KeyTest {
    public static void main(String[] args) {
    new KeyListener();
    }
}
class KeyListener extends Frame{
    public KeyListener()  {
        setBounds(100,100,200,400);
        setVisible(true);
        this.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                int code=e.getKeyCode();
                System.out.println(code);
                if (code== KeyEvent.VK_UP){
                    System.out.println("上键被点击了");
                }
            }
        });
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值