以下代码来自b站“遇见狂神说”GUI教程
【狂神说Java】GUI编程入门到游戏实战
鼠标监听
实现一个简单的模拟画图工具
package com.cupk.lesson03;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Iterator;
/**
* @author LY
* @version 1.0
*/
public class TestMouseListener {
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);
//存鼠标点击的点
points = new ArrayList();
//鼠标监听器,正对这个窗口
this.addMouseListener(new MyMouseListener());
setVisible(true);
}
@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);
}
}
//添加一个点到界面上
public void addPaint(Point point){
points.add(point);
}
public class MyMouseListener extends MouseAdapter {
@Override
public void mousePressed(MouseEvent e) {
MyFrame frame = (MyFrame)e.getSource();
frame.addPaint(new Point(e.getX(),e.getY()));
frame.repaint();//刷新
}
}
}
窗口监听
package com.cupk.lesson03;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/**
* @author LY
* @version 1.0
*/
public class TestWindow {
public static void main(String[] args) {
new WindowFrame();
}
}
class WindowFrame extends Frame {
public WindowFrame() {
setBackground(Color.blue);
setBounds(100,100,200,200);
addWindowListener(new WindowAdapter() {
//窗口关闭
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
}
//激活窗口
@Override
public void windowActivated(WindowEvent e) {
super.windowActivated(e);
}
});
setVisible(true);
}
}
键盘监听
package com.cupk.lesson03;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
/**
* @author LY
* @version 1.0
*/
public class TestKeyListener {
public static void main(String[] args) {
new KeyFrame();
}
}
class KeyFrame extends Frame {
public KeyFrame() {
setBounds(1,2,300,400);
setVisible(true);
this.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
//获取键盘下的键是哪个,当前的码
if(e.getKeyCode() == KeyEvent.VK_UP){
System.out.println("你按下了上键");
}
}
});
}
}