📄 testcanvas.java
字号:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class TestCanvas extends Applet
{
CanvasDraw cd;
public void init()
{
cd = new CanvasDraw(new Dimension(200,180),this);
cd.setBackground(Color.pink);
add(cd);
cd.requestFocus();
}
}
class CanvasDraw extends Canvas implements KeyListener
{
Applet m_Parent;
boolean m_bFlag = false;
int currentX=0,currentY=0,startX=0,startY=0;
StringBuffer sb = new StringBuffer();
CanvasDraw(Dimension d,Applet p)
{
m_Parent = p;
setSize(d);
setBackground(Color.gray);
addKeyListener(this);
addMouseListener(new MouseAdpt(this));
addMouseMotionListener(new MouseMotionAdpt(this));
}
void setStart(int x,int y)
{
startX = x;
startY = y;
}
void setCurrent(int x,int y)
{
currentX = x;
currentY = y;
}
void setMouseDragged(boolean b)
{
m_bFlag = b;
}
void showMeg(String s)
{
m_Parent.showStatus(s);
}
void clearAll()
{
startX = 0;
startY = 0;
currentX = 0;
currentY = 0;
repaint();
}
public void keyTyped(KeyEvent e)
{
char ch = e.getKeyChar();
sb.append(ch);
showMeg ("击键"+sb.toString());
repaint();
}
public void keyPressed(KeyEvent e){}
public void keyReleased(KeyEvent e){}
public void paint(Graphics g)
{
g.drawString("("+currentX+","+currentY+") "+sb,10,20);
if(m_bFlag)
g.drawLine(startX,startY,currentX,currentY);
}
}
class MouseAdpt extends MouseAdapter
{
CanvasDraw m_Parent;
MouseAdpt(CanvasDraw p)
{
m_Parent = p;
}
public void mousePressed(MouseEvent e)
{
m_Parent.setStart(e.getX(),e.getY());
m_Parent.showMeg("您开始画线");
}
public void mouseReleased(MouseEvent e)
{
m_Parent.showMeg("您画出了一条直线");
}
public void mouseEntered(MouseEvent e)
{
m_Parent.showMeg("鼠标进入画布");
}
public void mouseExited(MouseEvent e)
{
m_Parent.showMeg("鼠标移出画布");
}
}
class MouseMotionAdpt extends MouseMotionAdapter
{
CanvasDraw m_Parent;
MouseMotionAdpt(CanvasDraw p)
{
m_Parent = p;
}
public void mouseMoved(MouseEvent e)
{
m_Parent.setCurrent(e.getX(),e.getY());
m_Parent.setMouseDragged(false);
m_Parent.repaint(10,0,60,30);
}
public void mouseDragged(MouseEvent e)
{
m_Parent.setCurrent(e.getX(),e.getY());
m_Parent.setMouseDragged(true);
m_Parent.repaint();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -