📄 mycanvas.java
字号:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
//MyCanvas是一个带有画布对象名的双重监听器
//画布组件相当于VB中的Picture控件,可以进行各种绘画操作
//画布组件可以监听各种鼠标与键盘事件
//系统为画布组件内置了一个Graphcis对象(通过getGraphics()方法获得)
//Graphcis对象可以完成各种图形绘制
public class MyCanvas implements KeyListener,MouseListener{
Canvas c;
String s="";
public static void main (String[] args)
{
Frame f=new Frame("Canvas");
MyCanvas mc=new MyCanvas();
mc.c=new Canvas();
f.add("Center",mc.c);
f.setSize(150,150);
mc.c.addMouseListener(mc);
mc.c.addKeyListener(mc);
f.setVisible(true);
}
public void mouseClicked(MouseEvent ev){
System.out.println("MouseClicked");
c.requestFocus();
Graphics gp=c.getGraphics();
gp.clearRect(0,0,150,150);
int x=ev.getX();
int y=ev.getY();
gp.setColor(Color.green);
//gp.drawRect(x,y,20,20);//第二组参数为第一组参数的相对值
//gp.fillOval(x,y,30,20);
int posx[]=new int[3];
int posy[]=new int[3];
posx[0]=x;posx[1]=x-30;posx[2]=x+30;
posy[0]=y;posy[1]=y+30;posy[2]=y+30;
gp.drawPolygon(posx,posy,3);
}
public void keyTyped(KeyEvent ev){
System.out.println("keyTyped");
s+=ev.getKeyChar();
c.getGraphics().drawString(s,0,20);
}
public void keyPressed(KeyEvent ev){
System.out.println("KeyPressed");
}
public void keyReleased(KeyEvent ev){
System.out.println("KeyReleased");
}
public void mousePressed(MouseEvent ev){
System.out.println("MousePressed");
}
public void mouseReleased(MouseEvent ev){
System.out.println("MouseReleased");
}
public void mouseEntered(MouseEvent ev){
System.out.println("MouseEntered");
}
public void mouseExited(MouseEvent ev){
System.out.println("MouseExited");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -